Linux sed命令
sed
sed(stream editor)是linux下的一个强大的文本处理工具。
它根据用户指定的地址(ADDRESS)匹配到相应的行,并且逐行对文本进行用户指定的动作(删除,更新,插入,打印)。
sed [OPTION] 'ADDRESS&&ACTION' FILE_NAME
OPTION:
# OPTION
-i 直接更新文件,而不是只把修改后的内容输出到终端
-n 只打印被sed处理过的行
-f 读取文件内到sed动作并执行
-r 支持扩展到正则表达式
ADDRESS格式:
# ADDRESS
n //第n行
n1,n2 //n1到n2行
first~step //从f...
Linux Shell脚本攻略 -- 系统管理
ps
ps命令默认只显示当前终端开启的进程。
使用-e或者-A可以列出其他终端的进程。
使用-f可以列出更多列的信息。
使用-o可以指定显示哪些数据。
ps -eo comm,pcpu | head -5
pcpu --> cpu占用率
pid --> 进程ID
ppid --> 父进程ID
pmem --> 内存使用率
comm --> 可执行文件名
cmd --> 简单命令
user --> 启动进程的用户
nice --> 优先级
time --> 累计cpu时间
etime --> 进程启动后运行的时长
tty --> 所关联的TTY设备
euid -->...
Linux Shell脚本攻略 -- 系统监控
du (disk usage)
du可以查看文件或目录占用的磁盘空间
du file1 file2
du -a directory //递归输出目录统计结果
du -h //以KB MB为单位显示磁盘使用情况
du -c file1 file2 //给出两个文件的和
du -s dir //给出当前目录下所有文件的磁盘使用和
du -b //以字节为单位
du -k //以KB为单位
du -m //以MB为单位
du -B BLOCK_SIZE //以BLOCK_SIZE为单位
du --exclude "WILDCARD" dir
du --exclude-fr...
Linux Shell脚本攻略 -- 网络
DNS
host命令可以列出某个域名的所有ip
nslookup可以指定查询的类型,可以查到DNS记录的生存时间,还可以指定使用哪个DNS服务器进行解释。
可以通过向/etc/hosts中加入条目来实现名字自解析
echo 192.168.0.2 server2 >> /etc/hosts
并行ping
# method 1
for ip in 192.168.0.{1..255};
do
(
ping $ip -c 2 &> /dev/null;
if [ $? -eq 0 ];then
echo $ip is alive
fi
)&
done
wait
# method 2: fping
-a显示出所有活动主机的ip
...
Linux Shell脚本攻略 -- 归档
tar
# 归档
tar -cf output.tar [SOURCES]
# -t列出归档文件中包含的文件
tar -tf archive.tar
# -r追加
tar -rvf original.tar new_file
# 提取
tar -xf archive.tar
tar -xf archive.tar -C /path/to/extraction_directory
# 指定stdout为输出文件
tar -cvf - files | ssh user@hostname "tar -xv -C /path/to/extraction_directory"
# 合并两个归档文件
tar -Af file1.tar file2.tar
# 当文件比归档文件中的同名...
Linux Shell脚本攻略 -- Git
配置
配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中:
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@github.com:michaelliao/learngit.git
fetch = +...
Linux Shell脚本攻略 -- 让文本飞
regexper
# position marker anchor 位置标记锚点
# 标志符
A
.
[]
[^]
# 数量修饰符
?
+
*
{n}
{n,m}
{n,}
# other
() 将括号中的内容视为一个整体
|
\
# -c统计匹配的行树
# -n打印行号
# -b打印出匹配内容出现在行中的偏移
# -l打印出匹配该模式的文件名
# -L打印出不匹配该模式的文件名
# -E -v -o
# -R is eqaul to -r
# -e指定多个模式
grep -e "patten1" -e "patten2"
# 打印匹配的数量
echo -e "1 2 3 4\nhello\n 5 6" | ...
Linux Shell脚本攻略 -- 以文件之名
dd
dd if=/dev/zero of=junk.data bs=1M count=1
1B = C
2B = w
512b = B
1024B = K
1024KB = M
1024MB = G
# 利用dd命令可以测试内存操作速度
dd if=/dev/zero of=/dev/null bs=1G count=10
comm命令作用于两个排序过的文件,显示两个文件的差异
# A.txt
apple
orange
gold
silver
steel
iron
# B.txt
orange
gold
cookies
carrot
$comm A.txt B.txt
apple
carrot
cookie...
共计 109 篇文章,14 页。