NO9 25个命令整理4-25-2018


25个命令总结:4//25/2018
1   mkdir          # 创建目录 -p递归
2   touch          # 创建文件
3   ls                # 查看列表目录
4   cd               # 切换目录
5   echo           # 打印
6   cp               # 拷贝目录 -r递归  -a(dpr)
7   vi                # 记事本
8   head          # 头部。查看前N行,默认前10,-n数字
9   rm              # rm -f force  -r 目录
10  cat            # 查文件内容
11  remdir      # 删除空目录
12  grep         # 过滤 -v 排除
13  find          # 查找 -type f   -name "名字"  -mtime =7,7 -7
14  sed          # 增删改查  -i修改  -n取消默认输出  -e多项编辑
                        p  s  g
15  alias         # 修改和设置别名,查看
16  unlias       # 取消别名
17  xargs        # 从标准输出读入创建执行命令 -n 输入数字:分组
18  awk          # -F 指定分隔符  NR行号  {print $1 $2}
19  seq          # sequence 打印序列 
                         -s指定分隔符
                         seq 10 默认每个数字后键入回车,就是竖着排
                          [root@localhost oldboy]# seq -s "=" 10
                          1=2=3=4=5=6=7=8=9=10
20  pwd         # 打印当前目录
21  tree          # 显示目录树。安装:yum install tree -y
22  tr        
23  tail           # 尾部 查看后N行,默认后10,-n数字
24  vim          # 复杂编辑器,一般用于开发(写shell,python)
25  mv           # 移动目录或文件名,改名

必须掌握的命令:
man,touch,ls,mkdir,cp cd,rm,mv,echo,pwd,cat,alias,unalias,head,tail,tree,rmdir,find,xargs,awk,sed,grep,vi,vim,seq。。。


·总结:
1  mkdir       make directorys #创建目录:mkdir /data,在根/下创建data目录
                     -p #递归创建目录,一般第一级目录不存在时使用-p。否则报错。

2  ls             list 列表  列表目录文件:ls ,列根/目录下的目录和文件
                   -l(long)长格式,
                    -d(directorys)查看目录

3  cd             change directory 改变目录路径:cd /etc

4  pwd          print working directory 打印/显示当前所在目录

扫描二维码关注公众号,回复: 65952 查看本文章

5  touch        创建问价或更新文件的时间戳,如果文件不存在就建立新文件,如果在就改变文件的访问时间atime等时间戳信息。

6  vi              windows记事本,简单。例子:vi oldboy.txt

7  vim           复杂编辑器(功能复杂:高亮,自动缩进,shell/python脚本用。做运维要用vim,vi会出问题),老师用EmEditor,

8  echo          打印输出内容,配合>或>>,即为文件覆盖或追加内容。还有一个较复杂不常用的类似命令printf。

9  cat             #查看文件内容        eg:cat oldboy.txt

10 xargs        #从标准输入获取内容创建和执行命令
                     -n 加数字:分组

11 cp           copy  #拷贝文件或目录,默认不能拷贝目录。
                    -r   #递归,用于复制目录
                    -a   #相当于-pdr,p 连同档案的属性一起复制过去,而非使用默认属性。

12 mv           move     #移动文件或目录。

13 rm            remove   #删除目录和文件。-r:递归,用于删除目录
                      rm [-irf] [文件/目录]:删除文件/目录。
                      -i:询问用户是否确认删除,用y或n来回答。
                      -r:删除目录时加该选项,删除目录及目录下的文件和目录,可以删除不为空的目录。
                      -f:强制删除,不用确认。

14 rmdir      [-p] [目录名]:用来删除空目录。
                    -p:表示递归删除目录,目录里不能有文件或目录;有文件只能用-rm -r来删除。
                   如:/a/b/c
                   rmdir /a/b/c : 会删除/a/b/c。而/a/b还在。
                   rmdir -p /a/b/c : 会删除/a,/a/b,/a/b/c。

15 *****find    #查找。 (五星级必考命令!!!)
               -type        #按文件类型查找(f(file),d(directory),c(character),b(block),s(socket),l(link))
               -name      #按文件名类型查找
               -mtime    #按修改时间查找:+7表示7天以前,7代表第7天,-7代表最近7天。
                find /data -type f -name "oldboy.txt"
                find /data -type f -name "oldboy.txt" -exec rm {} \; 
                find /data -type f -name "*.txt"
                find /data -type f -name "*.txt" |xargs
                find /data -type f -name "*.txt" |xargs rm -f
                find /log -type f -name "*.log" -mtime +15 |xargs rm -f   
                查找log目录,删除15天以前的文件
               find /log -type f -name "oldboy" -mtime +30 |xargs rm -rf 
               查找log目录,删除修改日期在30天以前且以oldBoy结尾的目录,慎用!!

16 *****grep:#过滤需要的内容(linux三剑客)。
                      -v  #后面接要排除内容。eg:grep -v oldboy test.txt
                      #Context control:
                       -A(after)  #除了显示匹配的一行之外,并显示该行之后的num行。    grep 20 -A 10 ett.txt  (匹配第20行,显示改行之后的10行)
                       -B (before)  #除了显示匹配的一行之外,并显示该行之前的num行。    grep 30 -B 10 ett.txt   (匹配第30行,显示改行之前的10行)
                       -C (context) #除了显示匹配的一行之外,并显示该行之前后各num行。  grep 25 -C 5 ett.txt   (匹配第25行,然后再显示改行前后各5行)
               

17 head:        #头,头部。读取文件的前n行,默认前10行。

                      -n 数字,可省略n。

18 tail:         #尾,尾部。读取文件的后n行,默认后10行。
                      -n 数字,可省略n。
                     提示:三剑客是grep,awk,sed,他们都有过滤字符串的功能。
                      grep最擅长
                      awk处理列擅长
                      sed擅长删除,修改,替换,添加。

19 alias          #查看系统现有的别名。
                       一、设置别名eg:alias rm='echo this comand dose not allow to use.'
                       二、别名的作用:
                             1 通过给危险命令加一些保护参数,防止人为误操作。
                             2 把很多复杂的字符串或命令变成一个简单的字符串或命令。
                       三、定义别名永久生效:
                             /etc/profile 全局生效
                             ~/.bashrc   当前用户生效 (eg:只要rm别名还在~/.bashrc文件夹里,通过source ~/.bashrc可以找回来。)

20 unalias        #取消某一个,已经设置好的别名。

21 seq             sequence  #序列

22 sed             stream editor  #(三剑客老二)流编辑器。实现对文件的增删改替换查。
                         -n:取消默认输出。
                         sed -n '20,30'p ett.txt  这里  p 表示打印
                         一、sed命令:
                         d  删除当前模式空间所有的内容。
                         g  与s联合使用时,表示对当前行全局匹配替换。
                         p  打印匹配行。
                         s  常说的查找并替换,用一个字符串替换成另一个。
                        二、sed选项:
                         -e  #允许多项编辑
                         -f  #后面接sed脚本的文件名
                         -n  #取消默认输出
                         -i  #修改文件内容
                       三、替换 eg: sed 'sed 's#已有的内容#更改的内容#g' oldboy.txt

                                s 代表替换,g代表全局,sg就是全局替换
                                 ### 分隔符,可用任意符号替代,但一般用#或/,@。
                          一、sed命令:
                                 g: 与s联合使用时,表示对当前行全局匹配替换。
                                s: 常说的查找并替换,用一个字符串替换成另一个。
                          二、sed选项:
                                   -e:允许多项编辑。
                                   -i:修改文件内容。

                                例子:
                             ·sed 's#oldgirl#jabbok#g' oldboy.txt
                             ·sed 's#已有的内容#更改的内容#g' oldboy.txt
                             s###g: s 代表替换,g代表全局,sg就是全局替换
                                ### :分隔符,可用任意符号替代,但一般用#或/,@。
       
23 awk            #(三剑客老大)过滤,输出内容,自成一门语言。 NR:行号 

                        -F 指定分隔符  NR行号  {print $1 $2}


·特殊符号:
·>或l>     #输出重定向:把前面输出的东西输入到后面的文件中,会清楚文件原有内容。
·>>或l>>   #追加重定向:吧前面输出的东西追加到后面的文件尾部,不会清除文件原有内容。
·0<或<     #输入重定向:输入重定向用于改变命令的输入,后面指定输入内容,前面跟文件名。
·0<<或<<   #追加输入重定向:后面跟字符串,用来表示“输入结束”,也可用ctrl+d来结束输入。
·2>        #错误重定向:把错误信息输入到后面的文件中,会删除文件原有内容。
·2>>       #错误追加重定向:把错误信息追加到后面的文件中,不会删除文件原有内容。
·*         #通配符,代表所有。    
·|         #表示管道
·..        #上一级目录
· .        #当前目录
·=       #linux里   一个=号是赋值的意思,俩个==号才是等于的意思

说明:
一、箭头的指向就是数据的流向。
二、数字说明:
1、标准输入stdin:代码为0,使用<或<<。数据流向从右向左。
2、标准正常输出stdout:代码为1,使用>或>>。数据(正确数据)从左向右。
3、标准错误输出stderr:代码为2,使用2>或2>>.数据(错误数据)从右向左。
4、2>&1:标准正常输出和标准错误输出一样,1放哪2也放哪。
       
·Eg:<,<<:把后面的内容输入给前面命令处理,不是每个命令都能适用。
[root@oldboy data]#echo 1 2 3 4 >oldboy.txt
[root@oldboy data]#cat oldboy.txt
1 2 3 4
[root@oldboy data]#xargs -n 2 <oldboy.txt (此命令是分组的意思)
1 2
3 4
·2>,2>>:把错误报错收集在后面的文件里
[root@oldboy data]#echo oldgirl 1>a.txt 2>b.txt
[root@oldboy data]#cat a.txt
old girl
[root@oldboy data]#cat b.txt (此时b.txt无内容,因为前面命令是正确的,没有报错)
[root@oldboy data]#cho oldgirl (打一个错误命令)
--bash:cho:command not found (系统报错)
[root@oldboy data]#cho oldgirl 1>a.txt 2>b.txt
[root@oldboy data]#cat b.txt (报错内容被输入到b.txt里)
-bash:cho:command not found
·还有一种更简单写的方法:echo或者cho oldgirl 1>a.txt 2>&1(表示若有错误信息,会像1一样输入进文件a.txt里。)(1>,1是可写可不写,但2要写的。)(这种是常用/推荐的方法。)
·第三种写法:echo或者cho oldgirl &>或者&>>a.txt (&>,&>>表示正确和错误的都放在后面的文件里,注意>和>>一个不追加一个追加。) 

猜你喜欢

转载自www.cnblogs.com/sinsenliu/p/8946464.html