1、如何过滤出当前目录下的所有一级目录,不包括目录下的子目录
分析:1、ls -l结果中以d 开头的就是目录
2、通过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 -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 指定查找的深度
小结:linux三剑客grep、sed、awk,他们都有过滤的功能,grep最擅长过滤,awk擅长处理列,sed擅长删除、修改、替换、添加
2、一个目录中有很多文件(ls 查看时有好多屏,)想最快速度查看最近更新的文件
xiaorui@xiaorui:~$ ls -lrt /etc/ #执行这个命令之后最新的文件会显示在最下面
#-l 以长格式按照修改时间倒序排列文件和目录,这样最近创建或修改的文件或目录就在窗口最下面了
#-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 #方法三
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
方法二:
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
方法三:
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
方法四:
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
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 myhh 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,myhh 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