0
点赞
收藏
分享

微信扫一扫

linux命令及基础手把手实战

一点读书 2022-12-14 阅读 130

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

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

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

xiaorui@xiaorui:~$ ls -l |grep ^d     # ^的意思是以什么开头的
drwxrwxr-x 2 xiaorui xiaorui 4096 1111 23:11 script
drwxrwxr-x 2 xiaorui xiaorui 4096 1116 22:46 test
drwxrwxr-x 4 xiaorui xiaorui 4096 109 19:33 VirtualBox VMs
drwxrwxr-x 2 xiaorui xiaorui 4096 1010 19:38 镜像文件
drwxrwxr-x 2 xiaorui xiaorui 4096 1015 20:25 软件包
drwxr-xr-x 10 xiaorui xiaorui 4096 1022 21:40 文档
drwxr-xr-x 10 xiaorui xiaorui 4096 1118 23:09 下载
drwxr-xr-x 3 xiaorui xiaorui 4096 1120 21:08 桌面

xiaorui@xiaorui:~$ ls -l|sed -n /^d/p   #-n的意思是取消默认输出 p是打印
drwxrwxr-x 2 xiaorui xiaorui 4096 1111 23:11 script
drwxrwxr-x 2 xiaorui xiaorui 4096 1116 22:46 test
drwxrwxr-x 4 xiaorui xiaorui 4096 109 19:33 VirtualBox VMs
drwxrwxr-x 2 xiaorui xiaorui 4096 1010 19:38 镜像文件
drwxrwxr-x 2 xiaorui xiaorui 4096 1015 20:25 软件包
drwxr-xr-x 10 xiaorui xiaorui 4096 1022 21:40 文档
drwxr-xr-x 10 xiaorui xiaorui 4096 1118 23:09 下载
drwxr-xr-x 3 xiaorui xiaorui 4096 1120 21:08 桌面

xiaorui@xiaorui:~$ ls -l|awk '/^d/'
drwxrwxr-x 2 xiaorui xiaorui 4096 1111 23:11 script
drwxrwxr-x 2 xiaorui xiaorui 4096 1116 22:46 test
drwxrwxr-x 4 xiaorui xiaorui 4096 109 19:33 VirtualBox VMs
drwxrwxr-x 2 xiaorui xiaorui 4096 1010 19:38 镜像文件
drwxrwxr-x 2 xiaorui xiaorui 4096 1015 20:25 软件包
drwxr-xr-x 10 xiaorui xiaorui 4096 1022 21:40 文档
drwxr-xr-x 10 xiaorui xiaorui 4096 1118 23:09 下载
drwxr-xr-x 3 xiaorui xiaorui 4096 1120 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

举报

相关推荐

0 条评论