Linux常用命令(二)
本章内容:
- 搜索命令
- 压缩和解压缩命令
- 关机和重启命令
- 常用网络命令
- 系统痕迹命令
- 挂载命令
一、搜索命令
1.whereis命令
whereis是搜索系统命令的命令,也就是说 ,whereis命令不能搜索普通文件,而只能搜索系统命令,其基本信息如下。
1.命令名称:whereis
2.所在路径:/usr/bin/whereis
3.执行权限:所以用户
4.功能描述:查找二进制命令、源文件和帮助文档的命令
2.which命令
which和whereis的区别:
1.whereis命令可以在查找二进制命令的同时,查找到帮助文档的位置;
2.which命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令
which是搜索系统命令的命令,其基本信息如下。
1.命令名称:which
2.所在路径:/usr/bin/which
3.执行权限:所以用户
4.功能描述:列出命令的所在路径
3.locate命令
基本用法:
locate命令才是可以按照文件名搜索普通文件的命令。
优点:
按照数据库搜索,搜索速度快,消耗资源小。数据库位置/var/lib/mlocate/mlocate.db,updatedb强制更新数据库,方便查找。
缺点:
只能按照文件名搜索文件,而不是执行更复杂的搜索,比如按照权限、大小、修改时间等搜索文件。
locate命令是按照文件名进行搜索文件的命令,其基本信息如下。
1.命令名称:locate
2.所在路径:/usr/bin/locate
3.执行权限:所以用户
4.功能描述:按照文件名搜索文件
4.find命令
find命令是在目录中搜索文件,其基本信息如下。
1.命令名称:find
2.所在路径:/bin/find
3.执行权限:所以用户
4.功能描述:在目录中搜索文件
按照文件名搜索
find 搜索路径 [ 选项 ] 搜索内容
选项:
-name:按照文件名搜索
-iname:按照文件名搜索,不区分文件名大小写
-inum:按照Inode号搜索
按照文件大小搜索
find 搜索路径 [ 选项 ] 搜索内容
选项:
-size[ + | - ]:按照指定大小搜索文件
这里的“+”的意思是搜索比指定大小还要大的文件,“-”的意思是搜索比指定大小还要小的文件。
按照修改时间搜索
Linux中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时间,我们也可以按照时间来搜索文件。
find 搜索路径 [ 选项 ] 搜索内容
选项:
-atime[ + | - ]:按照文件访问时间搜索
-mtime[ + | - ]:按照文件数据修改时间搜索
-ctime[ + | - ]:按照文件状态修改时间搜索
这里用mtime数据修改时间来举例,重点说下“+ -”时间的含义、
-5:代表5天内修改的文件。
5:代表前5~6天那一天修改的文件。
+5:代表6天前修改的文件。
按照权限搜索
find 搜索路径 [ 选项 ] 搜索内容
选项:
-perm 权限模式:查找文件权限刚好等于“权限模式”的文件
-perm - 权限模式:查找文件权限全部包含“权限模式”的文件
-perm + 权限模式:查找文件权限包含“权限模式”的任意一个权限的文件
按照所有者和所属组搜索
find 搜索路径 [ 选项 ] 搜索内容
选项:
-uid 用户ID:按照用户ID查找所有者是指定ID的文件
-gid 组 ID:按照用户组ID查找所属组是指定ID的文件
-user 用户名:按照用户名查找所有者是指定用户的文件
-group 组名:按照组名查找所属组是指定用户组的文件
-nouser:查找没有所有者的文件
按照所有者和所属组搜索是,“-nouser”选项比较常用,主要用不查找垃圾文件。
只有一种情况例外,那就是外来文件。比如光盘和U盘中的文件如果是由Windows复制的,在Linux中查看就是没有所有者的文件;在比如手工源码包安装的文件,也有肯没有所有者。
按照文件类型搜索
find 搜索路径 [ 选项 ] 搜索内容
选项:
-type d:查找目录
-type f:查找普通文件
-type l:查找软链接文件
逻辑运算符
find 搜索路径 [ 选项 ] 搜索内容
选项:
-a:and逻辑与
-a代表逻辑与运算,也就是-a的两个条件都成立,find搜索的结果才成立。例如:
-o:or逻辑或
-o代表逻辑或运算,也就是-o的两个条件只要其中一个成立,find命令就可以找到结果。
-not:not逻辑非
-not代表逻辑非运算,也就是取反的意思。
其他选项
这里我们主要讲解两个选项“-exec”和“-ok”,这两个选项的基本作用非常相似。
1.-exec选项
find 搜索路径 [ 选项 ] 搜索内容 -exec 命令2 { } \
其次,这个选项的作用其实是把find命令的结果交给由“-exec”调用的命令2来处理。“{ }”就是代表find命令的查找结果。
2.-ok选项
“-ok”选项和“-exec”选项的作用基本一致,区别在于:“-exec”的命令2会直接处理,而不询问;“-ok”的命令2在处理前先会询问用户是否这样处理,在得到确定命令后,才会执行。
5.grep命令
grep的作用是在文件中提取和匹配符合条件的字符串行。
命令格式:grep [ 选项 ] “搜索内容” 文件名
选项:
-i:忽略大小写
-n:输出行号
-v:反向查找
--color=auto:搜索出的关键字用颜色显示
find命令和grep命令的区别:
find命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配,搜索时文件名是完全匹配的(find命令可以通过-regex选项,把匹配规则转为正则表达式规则,但是不建议如此)。
grep命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,则使用正则表达式进行匹配,搜索时字符串是包含匹配的。
通配符与正则表达式的区别:
通配符:用于匹配文件名,完全匹配
通配符 | 作用 |
? | 匹配一个任意字符 |
* | 匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
[] | 匹配中括号中任意一个字符。例如:[ abc ]代表一定匹配一个字符,或者a、或者b、或者c |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如[ a-z ]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如:[ ^0-9 ]代表匹配一个不是数字的字符 |
正则表达式:用于匹配字符串,包含匹配
正则符 | 作用 |
? | 匹配前一个字符重复0次,或一次 |
* | 匹配全一个字符重复0次,或者任意多次 |
[] | 匹配中括号中任意一个字符。例如:[ abc ]代表一定匹配一个字符,或者a、或者b、或者c |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如:[ a-z ]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是括号内的一个字符。例如:[ ^0-9 ]代表匹配一个不是数字的字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
6.管道符
命令格式: 命令1 | 命令2
命令1的正确输出作为命令2的操作对象
7.命令的别名
命令的别名,就是命令的小名,主要是用于照顾管理员的使用习惯的。
命令格式:alias 别名=“原命令”
用命令定义的别名,是临时生效的,想要永久生效,需要写入系统环境变量配置文件~/.bashrc
8.常用快键键
快键键 | 作用 |
Tab键 | 命令或文件不去 |
ctrl+A | 把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用 |
ctrl+E | 把光标移动到命令行结尾 |
ctrl+C | 强制终止当前的命令 |
ctrl+L | 清屏,相当于clear命令 |
ctrl+U | 删除或剪切光标之前的命令。我们输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快键键会更加方便 |
ctrl+Y | 粘贴ctrl+U剪切的内容 |
二、压缩和解压缩命令
Linux中可以识别的常见压缩格式有十几种,比如“.zip”、“.gz”、“.bz2”、“.tar”、“.tar.gz”、“.tar.bz2”等。
1.“.zip”格式
“.zip”是Windows中常用的压缩格式。Linux也可以正确识别“.zip”格式,这可以方便的和Windows系统通用压缩文件。
zip是压缩命令,其基本信息如下。
1.命令名称:zip
2.所在路劲:/usr/bin/zip
3.执行权限:所有用户
4.功能描述:压缩文件或目录
命令格式:zip [ 选项 ] 压缩包名 源文件或源目录
选项:
-r:压缩目录
unzip是解压命令,其基本信息如下。
1.命令名称:unzip
2.所在路劲:/usr/bin/unzip
3.执行权限:所用用户
4.功能描述:列表、测试和提取压缩文件中的文件
命令格式:unzip [ 选项 ] 压缩包名
选项:
-d:指定解压缩位置
2.“.gz”格式(不会打包)
“.gz”格式是Linux中最常用的压缩命令。
gzip是压缩命令,其基本信息如下。
1.命令名称:gzip
2.所在路劲:/bin/gzip
3.执行权限:所有影虎
4.功能描述:压缩文件或目录
命令格式:gzip [ 选项 ] 源文件
选项:
-c:将压缩数据输出到标准输出中,可以用于保留源文件
-d:解压缩
-r:压缩目录
gunzip和gzip -d是解压命令,其基本信息如下。
1.命令名称:gunzip、gzip -d
2.所在路劲:/bin/gunzip
3.执行权限:所有用户
4.功能描述:解压缩文件或目录
3.“.bz2”格式
“.bz2”格式是Linux的另一种压缩格式,理论上来讲,“.bz2”格式算法更先进、压缩比更好,而“.gz”格式相对来讲压缩的时间更快。
bzip2是压缩命令,其基本信息如下。
1.命令名称:bzip2
2.所在路劲:/usr/bin/bzip2
3.执行权限:所有用户
4.功能描述:.bz2格式的压缩命令
命令格式:bzip2 [ 选项 ] 源文件
选项:
-d:解压缩
-k:压缩时,保留源文件
-v:显示压缩的详细信息
bunzip2和bzip2 -d是解压命令,其基本信息如下。
1.命令名称:bunzip2、bzip2 -d
2.所在路劲:/usr/bin/bunzip2
3.执行权限:所有用户
4.功能描述:.bz2格式的解压缩命令
4.“.tar”格式(打包不压缩)
“.tar”格式的打包和解打包都使用tar命令,区别只是选项不同,其基本信息如下。
命令名称:tar
所在路劲:/bin/tar
执行权限:所有用户
功能描述:打包与解打包命令
打包命令格式:tar [ 选项 ] [ -f 压缩包名 ] 源文件或目录
选项:
-c:打包
-f:指定压缩包的文件名。压缩包的扩展名是用来管理员识别格式的,所以一定要正确指定扩展名
-v:显示打包文件过程
解打包命令格式:tar [ 选项 ] 压缩包
选项:
-x:解打包
-f:指定压缩包的文件名
-v:显示解打包文件过程
-t:测试,就是不解打包,只是查看包中有哪些文件
-C(大)目录:指定解打包位置
5.“.tar.gz”和“.tar.bz2”
使用tar命令直接打包压缩。
命令格式:tar [ 选项 ] 压缩包 源文件或目录
选项:
-z:压缩和解压缩“.tar.gz”格式
-j:压缩和解压缩“.tar.bz2”格式
三、关机和重启命令
1.sync数据同步
1.命令名称:sync
2.所在路劲:/bin/sync
3.执行权限:所有用户
4.功能描述:刷新文件系统缓存区
2.shutdown命令
1.命令名称:shutdown
2.所在路劲:/sbin/shutdown
3.执行权限:超级用户
4.功能描述:关机和重启
命令格式:shutdown [ 选项 ] 时间 [ 警告信息 ]
选项:
-c:取消已经执行的shutdown命令
-h:关机
-r:重启
3.reboot命令
在现在的系统中,reboot命令也是安全的,而且不需要加入过多的选项。
4.halt和poweroff命令
这两个都是关机命令,直接执行即可。
这两个命令不会完整关闭和保存系统的服务,不建议使用。
5.init命令
init是修改Linux运行级别的命令,也可以用于关机和重启。
这个命令并不安全,不建议使用。
四、常用网络命令
1.配置IP地址
IP地址是计算机在互联网中唯一的地址编码。每台计算机如果需要接入网络和其他计算机进行数据通信,就必须配置唯一的公网IP地址。
配置IP地址有两种方法:
- setup工具(CentOS6)
- vi /etc/sysconfig/network-scripts/ifcfg-eth0 手动修改配置文件
重启网络服务:
service network restart
2.ifconfig命令
ifconfig是查看和配置网络接口的命令,其基本信息如下。
1.命令名称:ifconfig
2.所在路劲:/sbin/ifconfig
3.执行权限:超级用户
4.功能描述:查看和配置网络接口
ifconfig命令最主要的作用就是查看IP地址信息,直接输入ifconfig命令即可。
3.ping命令
ping命令是常用的网络命令,主要通过ICMP协议进行网络探测,测试网络中主机的通信情况,其基本信息如下。
1.命令名称:ping
2.所在路劲:/bin/ping
3.执行权限:所有用户
4.功能描述:像网络主机发送ICMP请求
命令格式:ping [ 选项 ] IP
选项:
-b:后面加入广播地址,用于对整个网段进行探测
-c 次数:用于指定ping的次数
-s 字节:指定探测包的大小
4.netstat命令
netstat是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接,其基本信息如下。
1.命令名称:netstat
2.所在路劲:/bin/netstat
3.执行权限:所有用户
4.功能描述:输出网络连接、路由表、接口统计、伪装连接和组播成员
命令格式:netstat [ 选项 ]
选项:
-a:列出所有网络状态,包括Socket程序
-c 秒数:指定每隔几秒刷新一次网络状态
-n:使用IP地址和端口号显示,不适用域名与服务名
-p:显示PID和程序名
-t:显示使用TCP协议端口的连接状况
-u:显示使用UDP协议端口的连接状况
-l:仅显示监听状态的连接
-r:显示路由表
-m:查看网关
5.write命令
write命令是向指定用户发送信息,其基本信息如下。
1.命令名称:write
2.所在路劲:/usr/bin/write
3.执行权限:所有用户
4.功能描述:向指定用户发送信息
6.wall命令
write命令用于给指定用户发送信息,而wall命令用于给所有登录用户发送信息,包括自己,执行时,在wall命令后加入需要发送的信息,即可。
7.mail命令
mail是Linux的邮件客户端命令,可以利用这个命令给其他用户发送邮件,其基本信息如下。
1.命令名称:mail
2.所在路劲:/bin/mail
3.执行权限:所有用户
4.功能描述:发送和接收电子邮件
五、系统痕迹命令
系统中有一些重要的痕迹日志文件,如/var/log/wtmp、/var/run/utmp、/var/log/btmp、/var/log/lastlog等日志文件,如果用vim打开这些文件,会发现这些文件是二进制乱码。这是由于这些日志中保存的是系统的重要登录痕迹,包括某个用户何时登录了系统,何时退出系统,错误登录等重要的系统信息。这些信息要是可以通过vim打开,就能编辑,这样痕迹信息就不准确,所以这些重要的痕迹日志,只能通过对应的命令来进行查看。
1.w命令
w命令是显示系统中正在登录的用户信息的命令,这个命令查看的日志痕迹是/var/run/utmp,其基本信息如下。
1.命令名称:w
2.所在路径:/usr/bin/w
3.执行权限:所有用户
4.功能描述:显示登录用户和正在做什么
第一行信息,内容如下:
内容 | 说明 |
23:21:15 | 系统当前时间 |
up 12 min | 系统运行时间,本机已经运行12分钟 |
1 user | 当前登录了一个用户 |
load average:0.00,0.00,0.00 | 系统在之前1分钟,5分钟,15分钟的平均负载 |
第二行信息,内容如下:
内容 | 说明 |
USER | 当前登录的用户 |
TTY |
登录的终端 tty1-6:本地字符终端(alt+F1-6切换) tty7:本地图形终端(ctrl+alt+F7切换,必须安装启动图形界面) pts/0-255:远程终端 |
FROM | 登录的IP地址,如果是本地终端,则是空 |
LOGIN@ | 登录时间 |
IDLE | 用户闲置时间 |
JCPU | 所有的进程占用的CPU时间 |
PCPU | 当前进程占用的CPU时间 |
WHAT | 用户正在进行的操作 |
2.who命令
who命令是用于查看正在登录的用户,但是显示的内容更加简单,也是查看/var/run/ytmp日志。
3.last命令
last命令是查看系统所有登陆过的用户信息的,包括正在登录的用户和之前登录的用户,查看的是/var/log/wtmp痕迹日志文件。
4.lastlog命令
lastlog命令是查看系统中所有用户最后一次的登录时间的命令,查看的日志是/var/log/lastlog文件。
5.lastb命令
lastb命令是查看错误登录信息的,查看的是/var/log/btmp痕迹日志。
六、挂载命令
1.mount命令
Linux所有存储设备都必须挂载使用,包括硬盘,其基本信息如下。
1.命令名称:mount
2.所在路径:/bin/mount
3.执行权限:所有用户
命令格式:mount [ -t 文件系统 ] [ -L卷标名 ] [ -o特殊选项 ] 设备文件名 挂载点
-t 文件系统:加入文件系统类型来指定挂载点的类型,可以ext3、ext4、iso9660等文件系统。
-L 卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载
-o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步异步等,如果不指定则默认值生效。
2.挂载光盘
光盘挂载的前提依然是指定光盘的设备名称,不同版本的Linux,设备文件名并不相同:
- CentOS5.x以前的系统,光盘设备文件名是/dev/hdc
- CentOS6.x以后的系统,光盘设备文件名是/dev/sr0
不论哪个系统都有软链接/dev/cdrom,与可以作为光盘的设备文件名
挂载:
mount -t ios9660 /dev/cdrom /mnt/cdrom
卸载:
umount /dev/sr0
umount /munt/cdrom
注意:卸载的时候需要退出光盘目录,才能卸载
3.挂载U盘
U盘和硬盘共用设备文件名,所以U盘的设备文件名不是固定的,需要手工查询,查询命令如下:
挂载命令:
mount -t vfat -o iocharset=utf8 /dev/sdb /mnt/usb
卸载:
umount /mnt/usb
4.挂载NTFS分区
使用第三方的文件系统模块进行挂载。
软件名称:NTFS-3G
下载地址以及文档:https://www.tuxera.com/community/open-source-ntfs-3g/