Linux 命令 总结
2016-04-02 08:53
579 查看
sort 命令:
-b 忽略每行前面开始出现的空格字符
-c 检查文件是否已经按照顺序排序
-f 排序时,忽略大小写字母
-n 按照数值的大小排序
-r 以相反的顺序来排序
sort 将文件的每一行作为一个单位,相互比较,比较原则是从首字母向后,依次按照ASXII码值进行比较,最后将它们按升序输出。
sort的-t选项和-k选项:
假如一个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。那么我想以水果数量来排序,也就是第二列来排序,如何利用sort实现。sort提供了-t选项,后面可以设定间隔符,指定了间隔符之后,就可以用-k来指定列数了。
sort -n -k 2 -t ':' facebook.txt
uniq:
-c 显示输出中,在每行行首加上本行在文件中出现的次数。
-d 只显示重复行
-u 只显示文件中不重复的各行
tr:
从标准输入设备读取数据,经过字符串转译后。
awk:
文件列之间用逗号分隔,读取第一列
awk -F "," '{print $1}'
awk "/name/ {print $1}" filename
find:
find . -name "*.txt" -o -name "*.pdf"
find . ! -name "*.txt"
指定搜索深度
find . -maxdepth 1 -type f (打印出当前目录的文件)
find . -type d -print (只列出所有目录 -type f:文件 -type:l 符号链接)
删除:删除当前目录下所有的swp文件
find . -type f -name "*.swp" -delete
find . -type f -user root -exec chown weber {} \;
注:{} 是一个特殊的字符串,对于每一个匹配的文件,{}会被替换成相应的文件名。
find . -type f -mtime +10 -name "*.txt" - exec cp {} OLD \;
-exec ./command.sh {} \;
grep:
常用参数:
-o 只输出匹配的行
-v 只输出没有匹配的行
-c 统计文件中包含文件的次数
-n 打印匹配的行号
-i 搜索时忽略大小写
-l 只打印文件名
grep -r 'energywise' * //在当前目录及其子目录下搜索'energywise'行的文件
grep -l -r 'energywise' * //在当前目录及其子目录下搜索‘energywise’行的文件,但不显示匹配行,只显示匹配的文件
扩展 grep(grep -E 或者 egrep)
使用扩展grep的主要好处是增加了额外的正则表达式元字符集
egrep 'NW|NA' testfile
grep 'NW\|NA' testfile //对于标注grep,如果在扩展元字符前面加\,grep会自动启用扩展选项-E
grep -E 'NW|NA' testfile
不使用正则表达式
fgrep查询速度比grep命令快,但是不够灵活:它只能查找固定的文本,而不是规则正则表达式
xargs:
能够将输入数据转化为特定命令的命令行参数。
将多行输出转化为单行输出
cat file.txt | xargs //\n是多行文件间的定界符
将单行转换为多行输出:
cat single.txt | xargs -n 3 //-n指定每行显示的字段数
tr:
echo 12345 | tr '0-9' '9876543210' 加密转化,替换对应字符
cat text | tr '\t' ' ' //制表符转空格
删除字符:
cat file | tr -d '0-9' //删除所有数字
将Tab转换为空格
expand test.txt > test1.txt
将文件按行并列显示
paste test.txt test1.txt
默认的定界符是制表符,可以使用-d指定明确定界符
paste file1 file2 -d ","
wc -l //统计行数
wc -w //统计单词数
wc -c //统计字符数
获取test.txt文件中第50-60行内容
< test.txt sed -n '50,60p'
显示剩余内存
free -m | grep cache | awk '/[0-9]/{print $4" MB"}'
输入多行文字(ctrl+d退出):
cat > test.txt
cut 按列切分文本
cut -f2,4 filename 截取文件的第2列和第4列
cut -f3 --complement filename 去除文件第3列的所有列
cut -f2 -d ":" filename -d指定定界符
sed 文本替换:
sed ‘s/text/replace_text/’ file //替换每一行的第一处匹配的text
sed 's/text/replace_text/g' file //全局替换
sed -i 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i
移除空白行
sed '/^$/d' file
变量替换:已匹配的字符串通过标记&来引用
echo this is an example | sed 's/'
cat -n 编号文件内容再输出
cat -E 在结束行提示$
nl 将输出内容自动加上行号
nl -b a 不论是否有空行,都列出行号
nl -b t 空行则不显示行号
diff [参数] [文件1或目录1] [文件2或目录2] 比较单个文件或目录内容
diff -b 不检查空格字符的不同
diff -B 不检查空白行的不同
diff -i 不检查大小写
diff -q 仅显示差异而不显示信息信息
awk:将外部变量传递给awk
VAR=10000
echo | awk - v VARIABLE=$VAR ‘{print VARIABLE}’
另一种传递外部变量方法:
var1="aaa"
var2="bbb"
echo | awk '{print v1,v2}' v1=$var1 v2=$var2
当输入来自文件时使用:
awk '{print v1, v2}' v1=$var1 v2=$var2 filename
awk 'BEGIN{a="100testa"; if(a ~ /^100*/{print "ok";})}'
awk中next语句使用:在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。net语句一般用于多行合并
cat text.txt
a
b
c
d
e
awk 'NR%2==1{next}{print NR, $0}' text.txt
当行号除以2余1,就跳过当前行。下面的{print NR, $0} 页不会执行。
sed:
常见选项:
-n 使用安静模式。在一般sed的用法中,所有来自STDIN的资料一般会被列出到屏幕上。但如果加上-n参数后,则只有sed特殊处理那一行才会被列出来。
-e 直接在指令模式上进行sed的动作编辑
-i 直接修改读取的内容,而不是由屏幕输出
常用命令:
a 新增 a的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
c 取代 c的后面可以接字串,这些字串可以取代n1,b2之间的行
d 删除 因为是删除,所以d后面通常不接任何东西
i 插入 i的后面可以接字串,这些字串会在新的一行出现(目前的上一行)
p 列印 将某个选择的资料印出。通常p会与参数sed -n 一起运作
s 取代 可以直接进行取代。通常这个s的动作可以搭配正则表示法,例如1,20s/old/new/g
删除某行 假设有个文件叫ab
sed '1d' ab //删除第一行
sed '$d' ab //删除最后一行
sed '1,2d' ab //删除第一行到第二行
sed '2,$d' ab //删除第二行到最后一行
显示某一行:
sed -n '1p' ab //显示第一行
sed -n '$p' ab //显示最后一行
sed -n '1,2p' ab //显示第一行到第二行
sed -n '2,$d' ab //显示第2行到最后一行
使用模式进行查询:
sed -n '/ruby/p' 'ab'
sed '1a drink tea ' ab //第一行后增加字符串"drink tea "
sed '1,3a drink tea' ab //第一行到第三行后增加字符串“drink tea ”
sed '1a drink tea\nor coffee ' ab //第一行后增加多行,使用换行符\n
替换一行后多行
sed '1c Hi' ab //第一行替换为Hi
sed '1,2c Hi' ab //第一行到第二行替换为Hi
替换一行中的某部分
格式:sed 's/要替换的字符串/新的字符串/g' (要替换的字符串可以用正则表达式)
sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替换ruby为bird
sed -n '/ruby/p' ab | sed 's/ruby//g' 删除ruby
插入:
sed -i '$a bye' ab #在文件ab中最后一行直接输入“bye”
awk调用shell,并将变量传递给shell:
在awk中,如果需要调用shell脚本/ 命令,则需要使用system()函数,如果需要将变量传递给被调用的shell,则写为system("sh my.sh " $var)。注意第二个引号前有一个空格。
Linux上删除空行的方法:
grep . data.txt
grep -v '^$' data.txt
grep '[^$]' data.txt
sed '/^$/d' data.txt
sed '/^\s*$/d' data.txt 这个命令还可将完全空格,tab等组成的空行删掉
awk NF data.txt #这个也可以将完全空格,tab等组成的空行删掉。awk '!/^$/' data.txt
tr -s '\n' < data.txt
这些删除空行的命令里,grep . data.txt 的效率貌似比较高的。
for i in *.html
do
mv $i ${i%.html}.htm
done
快速的将目录中所有的.html扩展名修改为.htm
-b 忽略每行前面开始出现的空格字符
-c 检查文件是否已经按照顺序排序
-f 排序时,忽略大小写字母
-n 按照数值的大小排序
-r 以相反的顺序来排序
sort 将文件的每一行作为一个单位,相互比较,比较原则是从首字母向后,依次按照ASXII码值进行比较,最后将它们按升序输出。
sort的-t选项和-k选项:
假如一个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。那么我想以水果数量来排序,也就是第二列来排序,如何利用sort实现。sort提供了-t选项,后面可以设定间隔符,指定了间隔符之后,就可以用-k来指定列数了。
sort -n -k 2 -t ':' facebook.txt
uniq:
-c 显示输出中,在每行行首加上本行在文件中出现的次数。
-d 只显示重复行
-u 只显示文件中不重复的各行
tr:
从标准输入设备读取数据,经过字符串转译后。
awk:
文件列之间用逗号分隔,读取第一列
awk -F "," '{print $1}'
awk "/name/ {print $1}" filename
find:
find . -name "*.txt" -o -name "*.pdf"
find . ! -name "*.txt"
指定搜索深度
find . -maxdepth 1 -type f (打印出当前目录的文件)
find . -type d -print (只列出所有目录 -type f:文件 -type:l 符号链接)
删除:删除当前目录下所有的swp文件
find . -type f -name "*.swp" -delete
find . -type f -user root -exec chown weber {} \;
注:{} 是一个特殊的字符串,对于每一个匹配的文件,{}会被替换成相应的文件名。
find . -type f -mtime +10 -name "*.txt" - exec cp {} OLD \;
-exec ./command.sh {} \;
grep:
常用参数:
-o 只输出匹配的行
-v 只输出没有匹配的行
-c 统计文件中包含文件的次数
-n 打印匹配的行号
-i 搜索时忽略大小写
-l 只打印文件名
grep -r 'energywise' * //在当前目录及其子目录下搜索'energywise'行的文件
grep -l -r 'energywise' * //在当前目录及其子目录下搜索‘energywise’行的文件,但不显示匹配行,只显示匹配的文件
扩展 grep(grep -E 或者 egrep)
使用扩展grep的主要好处是增加了额外的正则表达式元字符集
egrep 'NW|NA' testfile
grep 'NW\|NA' testfile //对于标注grep,如果在扩展元字符前面加\,grep会自动启用扩展选项-E
grep -E 'NW|NA' testfile
不使用正则表达式
fgrep查询速度比grep命令快,但是不够灵活:它只能查找固定的文本,而不是规则正则表达式
xargs:
能够将输入数据转化为特定命令的命令行参数。
将多行输出转化为单行输出
cat file.txt | xargs //\n是多行文件间的定界符
将单行转换为多行输出:
cat single.txt | xargs -n 3 //-n指定每行显示的字段数
tr:
echo 12345 | tr '0-9' '9876543210' 加密转化,替换对应字符
cat text | tr '\t' ' ' //制表符转空格
删除字符:
cat file | tr -d '0-9' //删除所有数字
将Tab转换为空格
expand test.txt > test1.txt
将文件按行并列显示
paste test.txt test1.txt
默认的定界符是制表符,可以使用-d指定明确定界符
paste file1 file2 -d ","
wc -l //统计行数
wc -w //统计单词数
wc -c //统计字符数
获取test.txt文件中第50-60行内容
< test.txt sed -n '50,60p'
显示剩余内存
free -m | grep cache | awk '/[0-9]/{print $4" MB"}'
输入多行文字(ctrl+d退出):
cat > test.txt
cut 按列切分文本
cut -f2,4 filename 截取文件的第2列和第4列
cut -f3 --complement filename 去除文件第3列的所有列
cut -f2 -d ":" filename -d指定定界符
sed 文本替换:
sed ‘s/text/replace_text/’ file //替换每一行的第一处匹配的text
sed 's/text/replace_text/g' file //全局替换
sed -i 's/text/replace_text/g' file 默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i
移除空白行
sed '/^$/d' file
变量替换:已匹配的字符串通过标记&来引用
echo this is an example | sed 's/'
cat -n 编号文件内容再输出
cat -E 在结束行提示$
nl 将输出内容自动加上行号
nl -b a 不论是否有空行,都列出行号
nl -b t 空行则不显示行号
diff [参数] [文件1或目录1] [文件2或目录2] 比较单个文件或目录内容
diff -b 不检查空格字符的不同
diff -B 不检查空白行的不同
diff -i 不检查大小写
diff -q 仅显示差异而不显示信息信息
awk:将外部变量传递给awk
VAR=10000
echo | awk - v VARIABLE=$VAR ‘{print VARIABLE}’
另一种传递外部变量方法:
var1="aaa"
var2="bbb"
echo | awk '{print v1,v2}' v1=$var1 v2=$var2
当输入来自文件时使用:
awk '{print v1, v2}' v1=$var1 v2=$var2 filename
awk 'BEGIN{a="100testa"; if(a ~ /^100*/{print "ok";})}'
awk中next语句使用:在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。net语句一般用于多行合并
cat text.txt
a
b
c
d
e
awk 'NR%2==1{next}{print NR, $0}' text.txt
当行号除以2余1,就跳过当前行。下面的{print NR, $0} 页不会执行。
sed:
常见选项:
-n 使用安静模式。在一般sed的用法中,所有来自STDIN的资料一般会被列出到屏幕上。但如果加上-n参数后,则只有sed特殊处理那一行才会被列出来。
-e 直接在指令模式上进行sed的动作编辑
-i 直接修改读取的内容,而不是由屏幕输出
常用命令:
a 新增 a的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
c 取代 c的后面可以接字串,这些字串可以取代n1,b2之间的行
d 删除 因为是删除,所以d后面通常不接任何东西
i 插入 i的后面可以接字串,这些字串会在新的一行出现(目前的上一行)
p 列印 将某个选择的资料印出。通常p会与参数sed -n 一起运作
s 取代 可以直接进行取代。通常这个s的动作可以搭配正则表示法,例如1,20s/old/new/g
删除某行 假设有个文件叫ab
sed '1d' ab //删除第一行
sed '$d' ab //删除最后一行
sed '1,2d' ab //删除第一行到第二行
sed '2,$d' ab //删除第二行到最后一行
显示某一行:
sed -n '1p' ab //显示第一行
sed -n '$p' ab //显示最后一行
sed -n '1,2p' ab //显示第一行到第二行
sed -n '2,$d' ab //显示第2行到最后一行
使用模式进行查询:
sed -n '/ruby/p' 'ab'
sed '1a drink tea ' ab //第一行后增加字符串"drink tea "
sed '1,3a drink tea' ab //第一行到第三行后增加字符串“drink tea ”
sed '1a drink tea\nor coffee ' ab //第一行后增加多行,使用换行符\n
替换一行后多行
sed '1c Hi' ab //第一行替换为Hi
sed '1,2c Hi' ab //第一行到第二行替换为Hi
替换一行中的某部分
格式:sed 's/要替换的字符串/新的字符串/g' (要替换的字符串可以用正则表达式)
sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #替换ruby为bird
sed -n '/ruby/p' ab | sed 's/ruby//g' 删除ruby
插入:
sed -i '$a bye' ab #在文件ab中最后一行直接输入“bye”
awk调用shell,并将变量传递给shell:
在awk中,如果需要调用shell脚本/ 命令,则需要使用system()函数,如果需要将变量传递给被调用的shell,则写为system("sh my.sh " $var)。注意第二个引号前有一个空格。
Linux上删除空行的方法:
grep . data.txt
grep -v '^$' data.txt
grep '[^$]' data.txt
sed '/^$/d' data.txt
sed '/^\s*$/d' data.txt 这个命令还可将完全空格,tab等组成的空行删掉
awk NF data.txt #这个也可以将完全空格,tab等组成的空行删掉。awk '!/^$/' data.txt
tr -s '\n' < data.txt
这些删除空行的命令里,grep . data.txt 的效率貌似比较高的。
for i in *.html
do
mv $i ${i%.html}.htm
done
快速的将目录中所有的.html扩展名修改为.htm
相关文章推荐
- (OK) cBPM-CentOS—wrapped by fastcgi—files—executing commands
- [转] CentOS---网络配置详解
- (OK) 在CentOS7—编译OpenSSL 静态库—for—Android
- (OK) cBPM-CentOS——Criteria.xml——create-database
- 在CentOS7上安装使用Ansibel(自动化工具)Install and use Ansible (Automation Tool) in CentOS 7
- (OK) centos7 编译 php-7.0.0RC5
- 基于CentOS6.7的DRBD安装配置过程详解
- Linux _pthread 属性的控制
- Linux_ pthread 线程的取消
- Linux _条件变量
- linux 安装Python 包
- Linux用户和用户组管理
- Linux中Shutdown命令实现定时自动关机 ---fwqlzz love is for ever
- 如何用LINUX命令格式化U盘 ---fwqlzz love is for ever
- linux kernel current宏
- linux的ACL
- Linux中搭建SVN服务器
- cmake记坑帖
- Linux中export导入环境变量的几种方式
- CentOS6.7网卡配置及常见问题(linux ip配置)