|NO.Z.00013|——————————|LinuxBasicEnd|——|Linux&常用命令.V07|——|搜索操作|
一、搜索命令:whereis 命令
### --- whereis 命令
~~~ whereis 是搜索系统命令的命令(像绕口令一样),也就是说,whereis 命令不能搜索普通文件,而只能搜索系统命令。whereis 命令的基本信息如下。
~~~ 命令名称:whereis。
~~~ 英文原意:locate the binary, source, and manual page files for a command。
~~~ 所在路径:/usr/bin/whereis。
~~~ 执行权限:所有用户。
~~~ 功能描述:查找二进制命令、源文件和帮助文档的命令。
二、which
### --- which 命令
~~~ which 也是搜索系统命令的命令。和 whereis 命令的区别在于:
~~~ whereis 命令可以在查找到二进制命令的同时,查找到帮助文档的位置;
~~~ 而 which 命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令。
~~~ which 命令的基本信息如下。
~~~ 命令名称:which。
~~~ 英文原意:shows the full path of (shell) commands。
~~~ 所在路径:/usr/bin/which。
~~~ 执行权限:所有用户。
~~~ 功能描述:列出命令的所在路径。
### --- 搜索命令的命令;只能搜索系统命令,不能搜索系统文件
[root@server11 ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@server11 ~]# which ls
alias ls='ls --color=auto' // 别名
/usr/bin/ls
### --- 系统存在的别名
[root@server11 ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
三、locate
### --- 基本用法
~~~ locate 命令才是可以按照文件名搜索普通文件的命令。
~~~ 优点:按照数据库搜索,搜索速度快,消耗资源小。数据库位置/var/lib/mlocate/mlocate.db,可以使用 updatedb 命令强制更新数据库。
~~~ 缺点:只能按照文件名来搜索文件,而不能执行更复杂的搜索,比如按照权限、大小、修改时间等搜索文件。locate 命令的基本信息如下。
~~~ 命令名称:locate。
~~~ 英文原意:find files by name。
~~~ 所在路径:/usr/bin/locate。
~~~ 执行权限:所有用户。
~~~ 功能描述:按照文件名搜索文件。
### --- 配置文件
[root@localhost ~]# vi /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes"
~~~ 开启搜索限制,也就是让这个配置文件生效
PRUNEFS = "……"
~~~ 在 locate 执行搜索时,禁止搜索这些文件系统类型
PRUNENAMES = "……"
~~~ 在 locate 执行搜索时,禁止搜索带有这些扩展名的文件
PRUNEPATHS = "……"
~~~ 在 locate 执行搜索时,禁止搜索这些系统目录
### --- 搜索普通文件,只能搜索文件名;所索的速度快,速度极快locate的执行数据库
[root@server11 ~]# vim /var/lib/mlocate/mlocate.db
### --- locate搜索root下的文件搜索不到
[root@server11 ~]# locate yanqi // 库没有更新;退出登录之后就会更新或者重启
### --- 升级数据库;
[root@server11 ~]# updatedb // 强制更新数据库
[root@server11 ~]# locate yanqi // 现在就可以搜索到
/root/yanqi
### --- tmp下创建yanqi文件
[root@server11 ~]# touch /tmp/yanqi
[root@server11 ~]# updatedb
[root@server11 ~]# locate yanqi // tmp下的还是搜索不到
/root/yanqi
### --- 解释tmp下搜索不到yanqi文件的原因
[root@server11 ~]# vim /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes" // 配置文件生效
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs fuse.glusterfs ceph fuse.ceph" #不搜索光盘,网络存储不不搜,
PRUNENAMES = ".git .hg .svn" // 禁止搜索这些后缀名的,是系统文件,没有意义
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp /var/lib/ceph" #禁止搜索这些目录,tmp下是临时文件,搜索没有意义。
四、find 命令
### --- find 命令
~~~ find 命令的基本信息如下。
~~~ 命令名称:find。
~~~ 英文原意:search for files in a directory hierarchy。
~~~ 所在路径:/bin/find。
~~~ 执行权限:所有用户。
~~~ 功能描述:在目录中搜索文件。
### --- 按照文件名搜索
~~~ 选项:
~~~ -name:按照文件名搜索
~~~ -iname:按照文件名搜索,不区分文件名大小写
~~~ -inum:按照 inode 号搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
### --- 按照文件大小搜索
~~~ 选项:
~~~ -size [+|-]大小:按照指定大小搜索文件这里的“+”的意思是搜索比指定大小还要大的文件,
~~~ “-”的意思是搜索比指定大小还要小的文件。
~~~ find 命令的单位:
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
[root@localhost ~]# man find
-size n[cwbkMG]
File uses n units of space. The following suffixes can be used:
'b' for 512-byte blocks (this is the default if no suffix is used)
~~~ 这是默认单位,如果单位为 b 或不写单位,则按照 512 Byte 搜索
'c' for bytes
~~~ 搜索单位是 c,按照字节搜索
'w' for two-byte words
~~~ 搜索单位是 w,按照双字节(中文)搜索
'k' for Kilobytes (units of 1024 bytes)
~~~ 按照 KB 单位搜索,必须是小写的 k
'M' for Megabytes (units of 1048576 bytes)
~~~ 按照 MB 单位搜索,必须是大写的 M
'G' for Gigabytes (units of 1073741824 bytes)
~~~ 按照 GB 单位搜索,必须是大写的 G
### --- 按照修改时间搜索
~~~ Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时间,我们也可以按照时间来搜索文件。
### --- 选项:
~~~ -atime [+|-]时间:按照文件访问时间搜索
~~~ -mtime [+|-]时间:按照文件数据修改时间搜索
~~~ -ctime [+|-]时间:按照文件状态修改时间搜索
~~~ 这三个时间的区别我们在 stat 命令中已经解释过了,这里用 mtime 数据修改时间来举例,重点说说“[+-]”时间的含义。
~~~ -5:代表 5 天内修改的文件。
~~~ 5:代表前 5~6 天那一天修改的文件。
~~~ +5:代表 6 天前修改的文件。
~~~ 我们画一个时间轴,来解释一下,如图 4-6 所示。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容

### --- 按照权限搜索
### --- 命令格式。
~~~ 选项:
~~~ -perm 权限模式: 查找文件权限刚好等于“权限模式”的文件
~~~ -perm -权限模式: 查找文件权限全部包含“权限模式”的文件
~~~ -perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
### --- 按照所有者和所属组搜索
~~~ 选项:
~~~ -uid 用户 ID:按照用户 ID 查找所有者是指定 ID 的文件
~~~ -gid 组 ID:按照用户组 ID 查找所属组是指定 ID 的文件
~~~ -user 用户名:按照用户名查找所有者是指定用户的文件
~~~ -group 组名:按照组名查找所属组是指定用户组的文件
~~~ -nouser:查找没有所有者的文件按照所有者和所属组搜索时,
~~~ “-nouser”选项比较常用,主要用于查找垃圾文件。只有一种情况例外,那就是外来文件。
~~~ 比如光盘和 U 盘中的文件如果是由 Windows 复制的,在Linux 中查看就是没有所有者的文件;
~~~ 再比如手工源码包安装的文件,也有可能没有所有者
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
### --- 按照文件类型搜索
~~~ 选项:
~~~ -type d:查找目录
~~~ -type f:查找普通文件
~~~ -type l:查找软链接文件
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
### --- 逻辑运算符
~~~ 选项:
~~~ -a:and 逻辑与
~~~ -o:or 逻辑或
~~~ -not:not 逻辑非
~~~ -a:and 逻辑与
~~~ find 命令也支持逻辑运算符选项,其中-a 代表逻辑与运算,也就是-a 的两个条件都成立,
~~~ find 搜索的结果才成立。举个例子:
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
### --- 在当前目录下搜索大于 2KB,并且文件类型是普通文件的文件
### --- -o:or 逻辑或-o 选项代表逻辑或运算,也就是-o 的两个条件只要其中一个成立,
### --- find 命令就可以找到结果。例如:
[root@localhost ~]# find . -size +2k -a -type f
[root@localhost ~]# find . -name cangls -o -name bols
./cangls
./bols
### --- -not:not 逻辑非-not 是逻辑非,也就是取反的意思。举个例子:
~~~ 在当前目录下搜索文件名要么是 cangls 的文件,要么是 bols 的文件
~~~ 在当前目录下搜索文件名不是 cangls 的文件
[root@localhost ~]# find . -not -name cangls
### --- 其他选项
~~~ -exec 选项
~~~ 这里我们主要讲解两个选项“-exec”和“-ok”,这两个选项的基本作用非常相似。我们先来看看“-exec”选项的格式。
~~~ 其次,这个选项的作用其实是把 find 命令的结果交给由“-exec”调用的命令 2 来处理。“{}”就代表 find 命令的查找结果。
~~~ -ok 选项
~~~ “-ok”选项和“-exec”选项的作用基本一致,区别在于:“-exec”的命令 2 会直接处理,
~~~ 而不询问;“-ok”的命令 2 在处理前会先询问用户是否这样处理,在得到确认命令后,才会执行。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容 -exec 命令 2 {} \;
### --- find命令;搜索位置越大,消耗的资源越大
### --- 搜索文件;
[root@server11 ~]# find . -name yanqi // -name选项,按照文件名搜索;匹配搜索
./yanqi
### --- 忽略大小写
[root@server11 ~]# ls
yanqi YANQI yanqi_ceshi
[root@server11 ~]# find . -name yanqi
./yanqi
[root@server11 ~]# find . -iname yanqi // -iname:忽略大小写
./yanqi
./YANQI
### --- 通过I节点号搜索文件名
[root@server11 ~]# ls -i yanqi
134315090 yanqi
[root@server11 ~]# find . -inum 134315090
./yanqi
### --- 通过find 的-inum来确定硬链接
[root@server11 ~]# ln yanqi /tmp/yanqi_yinlianjie
[root@server11 ~]# ll -i yanqi /tmp/yanqi_yinlianjie
134315090 -rw-r--r-- 2 root root 0 Mar 4 15:37 /tmp/yanqi_yinlianjie
134315090 -rw-r--r-- 2 root root 0 Mar 4 15:37 yanqi
[root@server11 ~]# find / -inum 134315090
/root/yanqi
/tmp/yanqi_yinlianjie
### --- 按照文件大小搜索
[root@server11 ~]# echo aaaaaaaaaaaaaaaa >> yanqi
[root@server11 ~]# ll
total 4
-rw-r--r-- 1 root root 17 Mar 4 15:56 yanqi
-rw-r--r-- 1 root root 0 Mar 4 15:52 YANQI
-rw-r--r-- 1 root root 0 Mar 4 15:51 yanqi_ceshi
[root@server11 ~]# ll
total 4
-rw-r--r-- 1 root root 925 Mar 4 15:57 yanqi
-rw-r--r-- 1 root root 0 Mar 4 15:52 YANQI
-rw-r--r-- 1 root root 0 Mar 4 15:51 yanqi_ceshi
[root@server11 ~]# find . -size 925c
./yanqi
### --- 搜索小于28M的文件
[root@server11 ~]# find . -size -28M
### --- find的帮助;
### --- 默认是b字节,什么都不加是15*512,默认单位是512个字节
[root@server11 ~]# man find
### --- 按照文件修改时间搜索
~~~ time时间,默认是天,
~~~ -5代表5天内修改的文件,5代表前5~6天之间的文件;+5代表代表 6 天前修改的文件。
[root@server11 ~]# find . -mtime +5
[root@server11 ~]# find . -mtime 5
[root@server11 ~]# find . -mtime -5
### --- 按照权限搜索
[root@server11 ~]# ll
total 4
-rw-r--r-- 1 root root 925 Mar 4 15:57 yanqi
-rw-r--r-- 1 root root 0 Mar 4 15:52 YANQI
-rw-r--r-- 1 root root 0 Mar 4 15:51 yanqi_ceshi
[root@server11 ~]# find . -perm 644
### --- 减权限
### --- 加号:只要是所有者所属组其他人任意一个权限大于该权限,都可以被搜索到
### --- 减号:所有权限必须大于444权限才可以被找到
[root@server11 test]# ll
total 0
-rw-r--r-- 1 root root 0 Mar 4 16:33 yanqi1
-rw-r--r-- 1 root root 0 Mar 4 16:33 yanqi2
[root@server11 test]# chmod 600 yanqi1
[root@server11 test]# ll
total 0
-rw------- 1 root root 0 Mar 4 16:33 yanqi1
-rw-r--r-- 1 root root 0 Mar 4 16:33 yanqi2
[root@server11 test]# find . -perm -444
.
./yanqi2
[root@server11 test]# find . -perm +444
### --- 按照文件所有者和所属组搜索
[root@server11 test]# find . -user root
.
./yanqi1
./yanqi2
### --- 查找没有所有者的文件;Linux中只有一种情况没有所有者的权限文件是正常文件,外来文件,
### --- 在光盘或者U盘里没有所有者文件,是正常的。
### --- 没有找到这种类型的文件源码包文件,也可能没有所有者
[root@server11 test]# find / -nouser
find: ‘/proc/16443/task/16443/fd/5’: No such file or directory
find: ‘/proc/16443/task/16443/fdinfo/5’: No such file or directory
find: ‘/proc/16443/fd/6’: No such file or directory
find: ‘/proc/16443/fdinfo/6’: No such file or directory
### --- 按照文件类型来搜索
[root@server11 test]# find . -type d
.
### --- 按照普通文件搜索
[root@server11 test]# find . -type f
./yanqi1
./yanqi2
### --- 逻辑运算符
~~~ 逻辑与运算:两个条件都成立
[root@server21 ~]# find . -size +1k -a -type f
./.bash_history
~~~ 逻辑或运算:只有一个条件成立一个就可以
[root@server21 ~]# find . -size +1k -o -type f
~~~ 逻辑非运算;取反的意思
[root@server21 ~]# find . -name yanqi
./yanqi
[root@server21 ~]# find . -not -name yanqi
### --- OR
[root@server21 ~]# find . ! -name yanqi
### --- exec是把命令1的结果交给命令2来处理
[root@server21 ~]# find . -size +1k -a -type f -exec ls -1h {} \; // 必须以\;结束
./.bash_history
[yanqi@server21 ~]$ find /var/log/ -mtime +10 =exec rm -rf {} \; // 不建议使用
[yanqi@server21 ~]$ find /var/log/ -mtime +10 -ok rm -rf {} \; // 建议使用
五、grep 命令:补充命令
### --- grep 命令:补充命令
~~~ grep 的作用是在文件中提取和匹配符合条件的字符串行。命令格式如下:
~~~ 选项:
~~~ -i: 忽略大小写
~~~ -n: 输出行号
~~~ -v: 反向查找
~~~ --color=auto: 搜索出的关键字用颜色显示
~~~ find 也是搜索命令,那么 find 命令和 grep 命令有什么区别呢?
[root@localhost ~]# grep [选项] "搜索内容" 文件名
### --- find 命令
~~~ find 命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配,
~~~ 通配符是完全匹配(find 命令可以通过-regex 选项,
~~~ 把匹配规则转为正则表达式规则,但是不建议如此)。
### --- grep 命令
~~~ grep 命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,
~~~ 则使用正则表达式进行匹配,正则表达式是包含匹配。
### --- 通配符与正则表达式的区别
~~~ 通配符:用于匹配文件名,完全匹配
六、通配符与正则表达式的区别:通配符:用于匹配文件名,完全匹配
作用 | |
? | 匹配一个任意字符 |
* | 匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
[] | 匹配中括号中任意的一个字符,例如[abc]代表一定匹配一个字符,或者a,或者是b,或者是c, |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符,例如,[0-9]代表匹配一个不是数字的字符 |
正则表达式:用于匹配字符串,包含匹配
作用 | |
? | 匹配前一个字符重复0次,或1次(?是扩展正则,需要使用egrep命令) |
* | 匹配前一个重复次,或任意多次 |
[] | 匹配中括号中任意的一个字符,例如[abc]代表一定匹配一个字符,或者a,或者是b,或者是c, |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符,例如,[0-9]代表匹配一个不是数字的字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
### --- 搜索文件里的数据的
[root@server11 ~]# grep "123" yanqi
123
123abc
abc123
### --- 显示行号原始文件
[root@server11 ~]# grep -n "123" yanqi
1:123
3:123abc
4:abc123
### --- 取反
[root@server11 ~]# grep -v "123" yanqi
abc
ABC
Abc
BCA
### --- 加入颜色,需要显示的内容用红色表示
### --- find是完全匹配,grep是包含匹配
[root@server11 ~]# grep --color=auto "123" yanqi
123
123abc
abc123
### --- 通配符 *
[root@server11 ~]# find . -name "yanqi*"
./yanqi_ceshi
./yanqi
[root@server11 ~]# rm -rf /tmp/*
### --- 通配符 ? 问号表示任意一个内容
[root@server11 ~]# find . -name "a?c"
./abc
./acc // ac是找不到的
### --- 通配符 []
[root@server11 ~]# find . -name "a[bc]c"
./abc
./acc
### --- 通配符[-]
[root@server11 ~]# find . -name "a[A-z]c" // 大写可以,小写也可以,大写要写在小写的前面
./abc
./acc
### --- 通配符[^]取反
[root@server11 ~]# find . -name "a[^b]c"
./acc
### --- 正则匹配所有a字段的内容
[root@server11 ~]# grep "a*" yanqi
123abc
abc123
[root@server11 ~]# grep "aaa*" yanqi
aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbccccccccccccccccccc123
aaabbbbbbccccccccc
### --- 扩展正则egrep
[root@server11 ~]# egrep "aaa?" yanqi
aaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbccccccccccccccccccc123
aaabbbbbbccccccccc
[root@server11 ~]# egrep "3aa?b" yanqi
123abc
### --- 限位符
### --- 正则判断是文本判断,消耗资源少;程序判断会消耗很大的资源
[root@server11 ~]# grep "[0-9]$" yanqi
123
abc123
七、管道符:补充命令
### --- 管道符:补充命令
### --- 命令格式:
~~~ 命令 1 | 命令 2
~~~ 命令 1 的正确输出作为命令 2 的操作对象
### --- 例子 1:
~~~ 举个例子,我们经常需要使用“ll”命令查看文件的长格式,不过在有些目录中文件众多,比如/etc/目录,使用“ll”命令显示的内容就会非常多,只能看到最后的内容,而不能看到前面输出的内容。这时我们马上想到 more 命令可以分屏显示文件内容,可是怎么让 more 命令分屏显示命令的输出呢?
~~~ 我想到了一种笨办法:
[root@localhost ~]# ll -a /etc/ > /root/testfile
~~~ 用输出重定向,把 ll 命令的输出保存到/root/testfile 文件中
[root@localhost ~]# more /root/testfile
~~~ 既然 testfile 是文件,当然可以用 more 命令分屏显示了
总用量 1784
drwxr-xr-x. 105 root root 12288 10 月 21 12:49 .
dr-xr-xr-x. 26 root root 4096 6 月 5 19:06 ..
…省略部分输出…
-rwxr-xr-x. 1 root root 687 6 月 22 2012 auto.smb
--More--(7%)
~~~ 可是这样操作实在不方便,这时就可以利用管道符了。命令如下:
[root@localhost ~]# ll -a /etc/ | more
### --- 例子 2:
~~~ 我想在命令 ll /etc/的结果中搜索 yum 的文件名,应该使用 find 命令?
~~~ 还是 grep 命令?
[root@localhost ~]# ll -a /etc/ | grep yum
### --- 例子 3:
~~~ netstat 命令(CentOS 7 中,
~~~ 需要安装 net-snmp.x86_64,net-tools.x86_64 两个包才有此命令。
~~~ 7.5系统中已经自动安装)格式如下:
[root@localhost ~]# netstat [选项]
~~~ 选项:
~~~ -a:列出所有网络状态,包括 Socket 程序
~~~ -c 秒数:指定每隔几秒刷新一次网络状态
~~~ -n:使用 IP 地址和端口号显示,不使用域名与服务名
~~~ -p:显示 PID 和程序名
~~~ -t:显示使用 TCP 协议端口的连接状况
~~~ -u:显示使用 UDP 协议端口的连接状况
~~~ -l:仅显示监听状态的连接
~~~ -r:显示路由表
[root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc -l
~~~ 如果想知道具体的网络连接数量,就可以再使用 wc 命令统计行数
~~~ 统计正在连接的网络连接数量
### --- 管道符:命令1的结果作为命令2的操作对象
### --- 管道符和exec基本一致
### --- 也称之为文本流操作
### --- find不支持文本流操作
### --- exec和管道符作用一致,但是find不支持管道符作用
### --- 把执行结果保存在一个文件中,并查看
[root@server11 ~]# ll /etc/ | more // 这个文件是不存在,临时的
### --- 管道符是文本流;只要加了管道符之后,执行后的结果都是文本字符串
### --- 只要加了管道符,后面是字符串,必须用grep
[root@server11 ~]# ll /etc/ | grep yum
drwxr-xr-x. 6 root root 100 Feb 5 00:39 yum
-rw-r--r--. 1 root root 970 Apr 13 2018 yum.conf
drwxr-xr-x. 3 root root 72 Feb 5 01:59 yum.repos.d
### --- netstat
[root@server11 ~]# netstat -tuln // 查询系统当中开启的所有端口
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
[root@server11 ~]# netstat -tuln |grep 80 // 判断80端口是否存在
[root@server11 ~]# netstat -an // 查看所有,包括登录项目
tcp 0 52 10.10.10.11:22 10.10.10.240:52107 ESTABLISHED
### --- 判断当前系统当中有多少用户在访问 // 生产环境中操作
[yanqi@server21 ~]$ netstat -an |grep "ESTABLISHED"
tcp 0 0 20.20.20.21:22 20.20.20.240:51416 ESTABLISHED
[yanqi@server21 ~]$ netstat -an |grep "ESTABLISHED" | wc -l // 双管道符契合
1
八、命令的别名:补充命令
### --- 命令的别名:补充命令
~~~ 命令的别名,就是命令的小名,主要是用于照顾管理员使用习惯的。
~~~ 命令格式:
[root@localhost ~]# alias
~~~ 查询命令别名
[root@localhost ~]# alias 别名='原命令'
### --- 设定命令别名
### --- 例如:
~~~ 用 ser 别名,替代 service network restart 命令
~~~ 用命令定义的别名,是临时生效的,要想永久生效,需要写入环境变量配置文件~/.bashrc
[root@localhost ~]# alias ser='service network restart'
### --- 别名
### --- 查询系统中已经生效的别名
[yanqi@server21 ~]$ alias
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
### --- 自己生成一个别名
[yanqi@server21 ~]$ alias grep='grep --color=auto'
[yanqi@server21 ~]$ alias
alias grep='grep --color=auto'
### --- 定义一个别名
### --- 别名的优先级高于系统命令的;定义一个系统别名的时候,不要和系统命令冲突;
### --- 在定义之前执行以下命令看是否会执行或者whereies查看一下
[yanqi@server21 ~]$ alias ser='service network restart'
[yanqi@server21 ~]$ alias
alias ser='service network restart'
[yanqi@server21 ~]$ ser
### --- 上述为临时生效的
### --- 永久生效需要写入到文件中 // 环境变量放在/etc下对所有用户生效,放在自己家目录下,只对自己生效
[yanqi@server21 ~]$ vim ~/.bashrc
alias ser=' service network restart'
九、常用快捷键:补充命令
作用 | |
Tab键 | 命令或文件补全 |
Ctrl+A | 把光标移动到命令行开头,如果我们输入的命令过长,想要光标移动到命令行开头时使用 |
Ctrl+E | 把光标移动到命令行结尾 |
Ctrl+C | 强制终止当前的命令 |
Ctrl+L | 清屏,相当于clear命令 |
Ctrl+U | 删除或剪切光标之前的命令,我输入了一行很长的命令,不用使用退隔间一个一个字符的删除,使用这个快捷键就会更加方便 |
Ctrl+Y | 粘贴ctrl+U剪切的内容 |
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv005-basic
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通