第十天-linux命令及基础手把手实战

总结技巧:

  1、可以通过案例来总结技术点

  2、可以通过画图,更佳形象理解记忆

下面通过例题,对命令加深理解

1、如何过滤出当前目录下的所有一级目录,不包括目录下的子目录

  分析:1、ls -l结果中以d 开头的就是目录

     2、通过给目录加标示,然后通过滤标示来过滤出目录

     3、通过find 直接查找指定文件类型的文件

xiaorui@xiaorui:~$ ls -l |grep ^d         #^ 的意思是以什么开头的
drwxrwxr-x  2 xiaorui xiaorui 4096 11月 11 23:11 script
drwxrwxr-x  2 xiaorui xiaorui 4096 11月 16 22:46 test
drwxrwxr-x  4 xiaorui xiaorui 4096 10月  9 19:33 VirtualBox VMs
drwxrwxr-x  2 xiaorui xiaorui 4096 10月 10 19:38 镜像文件
drwxrwxr-x  2 xiaorui xiaorui 4096 10月 15 20:25 软件包
drwxr-xr-x 10 xiaorui xiaorui 4096 10月 22 21:40 文档
drwxr-xr-x 10 xiaorui xiaorui 4096 11月 18 23:09 下载
drwxr-xr-x  3 xiaorui xiaorui 4096 11月 20 21:08 桌面
xiaorui@xiaorui:~$ ls -l|sed -n /^d/p       #-n 的意思是取消默认输出 p是打印
drwxrwxr-x  2 xiaorui xiaorui 4096 11月 11 23:11 script
drwxrwxr-x  2 xiaorui xiaorui 4096 11月 16 22:46 test
drwxrwxr-x  4 xiaorui xiaorui 4096 10月  9 19:33 VirtualBox VMs
drwxrwxr-x  2 xiaorui xiaorui 4096 10月 10 19:38 镜像文件
drwxrwxr-x  2 xiaorui xiaorui 4096 10月 15 20:25 软件包
drwxr-xr-x 10 xiaorui xiaorui 4096 10月 22 21:40 文档
drwxr-xr-x 10 xiaorui xiaorui 4096 11月 18 23:09 下载
drwxr-xr-x  3 xiaorui xiaorui 4096 11月 20 21:08 桌面
xiaorui@xiaorui:~$ ls -ld */
drwxrwxr-x  2 xiaorui xiaorui 4096 11月 11 23:11 script/
drwxrwxr-x  2 xiaorui xiaorui 4096 11月 16 22:46 test/
drwxrwxr-x  4 xiaorui xiaorui 4096 10月  9 19:33 VirtualBox VMs/
drwxrwxr-x  2 xiaorui xiaorui 4096 10月 10 19:38 镜像文件/
drwxrwxr-x  2 xiaorui xiaorui 4096 10月 15 20:25 软件包/
drwxr-xr-x 10 xiaorui xiaorui 4096 10月 22 21:40 文档/
drwxr-xr-x 10 xiaorui xiaorui 4096 11月 18 23:09 下载/
drwxr-xr-x  3 xiaorui xiaorui 4096 11月 20 21:08 桌面/
xiaorui@xiaorui:~$ ls -F|grep /$          #$  是以什么结尾的 -F append indicator (one of */=>@|) to entries
script/
test/
VirtualBox VMs/
镜像文件/
软件包/
文档/
下载/
桌面/
xiaorui@xiaorui:~$ ls -p |grep /          #-p 是给目录添加标示 append / indicator to directories
script/
test/
VirtualBox VMs/
镜像文件/
软件包/
文档/
下载/
桌面/
xiaorui@xiaorui:~$ ls -l|awk '/^d/'
drwxrwxr-x  2 xiaorui xiaorui 4096 11月 11 23:11 script
drwxrwxr-x  2 xiaorui xiaorui 4096 11月 16 22:46 test
drwxrwxr-x  4 xiaorui xiaorui 4096 10月  9 19:33 VirtualBox VMs
drwxrwxr-x  2 xiaorui xiaorui 4096 10月 10 19:38 镜像文件
drwxrwxr-x  2 xiaorui xiaorui 4096 10月 15 20:25 软件包
drwxr-xr-x 10 xiaorui xiaorui 4096 10月 22 21:40 文档
drwxr-xr-x 10 xiaorui xiaorui 4096 11月 18 23:09 下载
drwxr-xr-x  3 xiaorui xiaorui 4096 11月 20 21:08 桌面
xiaorui@xiaorui:~$ find ./ -maxdepth 1 -type d   #-maxdepth 指定查找的深度
xiaorui@xiaorui:~$ tree -Ld 1            #-L level Max display depth of the directory tree.
.
├── script
├── test
├── VirtualBox VMs
├── 镜像文件
├── 软件包
├── 文档
├── 下载
└── 桌面

小结:linux三剑客grep、sed、awk,他们都有过滤的功能,grep最擅长过滤,awk擅长处理列,sed擅长删除、修改、替换、添加

2、一个目录中有很多文件(ls 查看时有好多屏,)想最快速度查看最近更新的文件

xiaorui@xiaorui:~$ ls -lrt /etc/          #执行这个命令之后最新的文件会显示在最下面

 #以长格式按照修改时间倒序排列文件和目录,这样最近创建或修改的文件或目录就在窗口最下面了

 #-r --reverse  当排序时,翻转排序

 #-t    sort by modification time, newest first

3、软链接

ln -s /application/apache2.2.7/   /application/apache

4、删除3天前的日志

find ./ -type f -name "*.log" -mtime +3|xargs rm -f      #方法一
find ./ -type f -name "*.log" -mtime +3 -exec rm -f {} ;   #方法二
find ./ -type f -name "*.log" -mtime +3 -delete        #方法三

5、调试系统服务时,希望能够实时查看系统日志/var/log/message的更新

tail -f /var/log/messages     #方法一
tailf /var/og/messages     #方法二
tail -F /var/log/messages   #方法三

6、打印配置文件nginx.conf内容显示行号及内容(下面以/etc/passwd为例)

方法一:
xiaorui@xiaorui:~$ grep -n . /etc/passwd 1:root:x:0:0:root:/root:/bin/bash 2:daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin 3:bin:x:2:2:bin:/bin:/usr/sbin/nologin 4:sys:x:3:3:sys:/dev:/usr/sbin/nologin 5:sync:x:4:65534:sync:/bin:/bin/sync 6:games:x:5:60:games:/usr/games:/usr/sbin/nologin 7:man:x:6:12:man:/var/cache/man:/usr/sbin/nologin 8:lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin 方法二: xiaorui@xiaorui:~$ nl /etc/passwd 1 root:x:0:0:root:/root:/bin/bash 2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin 3 bin:x:2:2:bin:/bin:/usr/sbin/nologin 4 sys:x:3:3:sys:/dev:/usr/sbin/nologin 5 sync:x:4:65534:sync:/bin:/bin/sync 6 games:x:5:60:games:/usr/games:/usr/sbin/nologin 7 man:x:6:12:man:/var/cache/man:/usr/sbin/nologin 方法三: xiaorui@xiaorui:~$ cat -n /etc/passwd 1 root:x:0:0:root:/root:/bin/bash 2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin 3 bin:x:2:2:bin:/bin:/usr/sbin/nologin 4 sys:x:3:3:sys:/dev:/usr/sbin/nologin 5 sync:x:4:65534:sync:/bin:/bin/sync 6 games:x:5:60:games:/usr/games:/usr/sbin/nologin 7 man:x:6:12:man:/var/cache/man:/usr/sbin/nologin 方法四: xiaorui@xiaorui:~$ less -N /etc/passwd 1 root:x:0:0:root:/root:/bin/bash 2 daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin 3 bin:x:2:2:bin:/bin:/usr/sbin/nologin 4 sys:x:3:3:sys:/dev:/usr/sbin/nologin 5 sync:x:4:65534:sync:/bin:/bin/sync 6 games:x:5:60:games:/usr/games:/usr/sbin/nologin 7 man:x:6:12:man:/var/cache/man:/usr/sbin/nologin

7、装完系统后,希望让网络文件共享服务NFS,仅在3级别上开机启动

  方法一:chkconfig  nfs off

           chkconfig  --level 3  nfs  on

  方法二:chkconfig  --level 245 nfs off

  方法三:rm -f /etc/rc.d/rc3.d/S55sshd

                     ln -s /etc/init.d/sshd   /etc/rc.d/rc3.d/K25sshd

8、如何查看/etc/services文件有多少行?

xiaorui@xiaorui:~/test$ wc -l /etc/services 
612 /etc/services
xiaorui@xiaorui:~/test$ cat -n /etc/services |tail -1
612    # Local services
xiaorui@xiaorui:~/test$ sed -n '$=' /etc/services 
612
xiaorui@xiaorui:~/test$ awk '{print NR}' /etc/services |tail -1
612
xiaorui@xiaorui:~/test$ grep -n $ /etc/services |tail -1
612:# Local services

 9、取出一行中的两个字符串

xiaorui@xiaorui:~/test$ cat xiaorui.txt 
I am xiaorui myqq is 1126785053
方法一: xiaorui@xiaorui:~/test$ awk '{print $3" "$6}' xiaorui.txt xiaorui 1126785053
方法二: xiaorui@xiaorui:~/test$ cut -d" " -f3,6 xiaorui.txt xiaorui 1126785053 加强版: xiaorui@xiaorui:~/test$ cat xiaorui.txt I am xiaorui,myqq is 1126785053
方法三:
xiaorui@xiaorui:~/test$ sed 's#,# #g' xiaorui.txt |awk '{print $3" "$6}' xiaorui 1126785053 方法四: xiaorui@xiaorui:~/test$ cut -d" " -f3,6 xiaorui.txt  #-d指定分隔符 xiaorui 1126785053
方法五:
xiaorui@xiaorui:~/test$ cut -c 6-12,20- xiaorui.txt      #-c指定字符 xiaoruis 1126785053
方法六: xiaorui@xiaorui:~/test$ awk -F '[ ,]' '{print $3" " $6}' xiaorui.txt    #-F []可以指定“空格和逗号”都为分隔符, xiaorui 1126785053

 10、去掉文件中的注释行和空行显示

xiaorui@xiaorui:~$ grep -v ^# /etc/ssh/ssh_config |grep -v ^$
Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no
-----------------------------------------------------------------------------------------
xiaorui@xiaorui:~$ grep -vE "^#|^$" /etc/ssh/ssh_config
Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no
-----------------------------------------------------------------------------------------
xiaorui@xiaorui:~$ egrep -v "^#|^$" /etc/ssh/ssh_config
Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no
原文地址:https://www.cnblogs.com/migongci0412/p/4984010.html