linux 常用命令
sort命令——对文件进行排序
sort # 按照字典序排序 sort -n # 以数值来排序,避免10比2小的情况 sort -k # 如果文件有多列,指定排序的列,1表示第一列 sort -t # 制定分割符号,默认是空格和'\t',如果单独指定'\t',需要使用$'\t'才能能正确使用tab分隔符 sort -r # 逆序排列
uniq 命令——一般结合sort命令,出去文件中重复的行
sort testfile | uniq # 删除文件中重复出现的行 sort testfile | uniq -c # 删除文件中重复出现的行,并在行首显示该行重复出现的次数。
awk 命令——常用来处理某一列数据
NF 浏览记录的域的个数,亦统计的是每行列的总数
NR 已读的记录数,亦有多少行
$0变量是指整条记录。$1表示当前行的第一个域,$2表示当前行的第二个域,......以此类推。
$NF是number finally,表示最后一列的信息
# 输出包含"re" 的行 $ awk '/re/ ' log.txt # 输出第二列包含 "th",并打印第二列与第四列 $ awk '$2 ~ /th/ {print $2,$4}' log.txt $ awk '$1==2 {print $1,$3}' log.txt #输出第一列等于2,并打印第一 和第三列 取出某一列中包含_的列 $ awk 'BEGIN{FS = " "}{for (f=1; f <= NF; f+=1) {if ($f ~ /_/) {print NR,$f}}}' pride.txt >output $ awk -F ' ' '{for (f=1; f <= NF; f+=1) {if ($f ~ /_/) {print $f}}}' result1 > file.out
head 命令
当-n
参数后指定的数字为负数时,用于反选,显示后几行之前的文件内容。
[one@one ~]$ cat test 1 2 3 4 5 [one@one ~]$ head -n 2 test 1 2 [one@one ~]$ head -n -2 test 1 2
3
tail 命令
当-n
参数后指定的数字为带+号的数字时,用于反选,显示从第几行开始后的文件内容。
[one@one ~]$ cat test 1 2 3 4 5 [one@one ~]$ tail -n 3 test 3 4 5 [one@one ~]$ tail -n +2 test 2 3 4 5
grep 命令——查找文件中的指定值,可以是正则匹配
grep表达式的格式:grep [选项] ”模式“ [文件]
grep key file.txt #输出file.txt包含key的行
grep -o key file.txt #只输出匹配的内容,不输出行
sed 命令——一种在线编辑器
它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。
[antonio@fd ~]# sed [-nefr] [动作] 选项与参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e :直接在命令列模式上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作; -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法) -i :直接修改读取的文件内容,而不是输出到终端。 function: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
sed的一些命令示例
cat file|sed 's/要被取代的字串/新的字串/g' #替换字符串 cat file|sed '2,5d' #删除第2-5行的内容 cat file|sed '2d' #删除第2行的内容 cat file|sed '/^\s*$/d' file #删除空行 cat file|sed '2i drink tea' #在第二行前插入 cat file|sed '2a Drink tea ' #在第二行后插入 cat file|sed '/root/p' #查找含有root的行
tr 命令
用于转换或删除文件中的字符。
tr -d '\t' #删除文件中'\t'字符
tr -s ' ' '\n':缩减连续的空格为换行符 cat testfile |tr a-z A-Z #将文件中的小写字符转化为大写字符
wc命令
一般是统计行数或者是字数
-c 只显示Bytes数。 -l 只显示行数。 -w 只显示字数。
文件拷贝命令
scp [可选参数] 源文件 目标文件 scp -r /home/steve/music/ antonio@172.168.13.34:/home/antonio/file 将本地文件夹music拷贝到远程file路径下 scp -r antonio@172.168.13.34:/home/antonio/file /home/steve/music/ 将远程文件file拷贝到本地文件夹music下 cp -r source target
查看目录相关操作
du -sh * #查看当前目录下各个文件及各目录占用空间大小 du -sh #查看当前文件夹占用大小 df -f #查看硬盘大小及使用情况 ll |wc -l #计算文件的数量
其他命令
wget link #下载文件 ps -ef| grep get_mp3.py #打印get_mp3.py进程的信息
解压
*.tar 用 tar –xvf 解压 *.tar.gz和*.tgz 用 tar –xzf 解压 *.tar.bz2用tar –xjf 解压 *.tar.Z 用tar –xZf 解压 *.rar 用 unrar e解压 *.zip 用 unzip 解压
压缩
zip -r 1.zip *to #压缩以to结尾的文件,压缩文件名为1.zip,递归压缩当前目录下的文件
命令行的常见格式解释
2>&1 把 标准错误输出 重定向到 标准输出.
&>file 把标准输出 和 标准错误输出 都重定向到文件file中
& 可以让命令在后台运行
&& (命令1)&&(命令2),只有命令1成功执行,才执行命令2 ,逻辑与的关系
|| (命令1)||(命令2),命令1返回假,才执行右边的命令,逻辑或关系