系统相关命令

关机&重启命令

shutdown -h now:立即关机
shutdown -h 1:1分钟后关闭计算机
shutdown -r now:现在重启计算机
halt:关机
reboot:重启
sync:把内存数据同步到磁盘,每次关机前默认执行该命令

用户登录和注销

su - 用户名:切换登录用户,权限大的切到小的不用密码,反之则要
logout:退出登录
exit:退出

线上查询及帮助命令(2个)

man:查看命令帮助,命令的词典,更复杂的还有info,但不常用。
help:查看Linux内置命令的帮助,比如cd命令。

运行级别

运行级别说明:

  1. 0:关机
  2. 1:单用户【找回丢失密码】
  3. 2:多用户状态没有网络服务
  4. 3:多用户状态有网络服务
  5. 4:系统未使用,保留给用户
  6. 5:图形界面
  7. 6:系统重启,不能设为默认级别,否则不能正常启动
  8. 常见的运行级别是35,也可以指定默认运行级别
  9. 通过命令 init [123456] 修改不同的运行级别,实现关机重启等
  10. 开机流程说明:
  11. 开机 -> BIOS -> /boot -> systemd进程1 -> 运行级别 -> 运行级对应的服务
  12. #获取默认运行级别:systemctl get-default
  13. #设置默认运行级别:systemctl set-default TARGET.target
  14. #TARGET.target的值在 /etc/initab 下查看

系统调度

crontab:循环定时任务

  1. crontab -e:编辑crontab定时任务
  2. crontab -l:查询crontab任务
  3. crontab -r:删除当前用户所有的crontab任务
  4. service crond restart:重启调度任务
  5. #示例
  6. * * * * * sh 脚本
  7. 第一个*表示:一小时的第几分钟,0-59
  8. 第二个*表示:一天的第几小时,0-23
  9. 第三个*表示:一月的第几天,1-31
  10. 第四个*表示:一年的第几个月,1-12
  11. 第五个*表示:一周的星期几,0-707都代表星期日)
  12. 特殊说明:
  13. 1、, 号表示不连续的时间,比如 "0 8,12,16 * * *" 表示每天 8点,12点,16点都执行一次命令
  14. 2、- 号表示连续的时间,比如"0 5 * * 1-6"表示周一至周六的5点执行一次命令
  15. 3、*/n 表示每隔多久执行一次,比如"*/10 * * * *" 表示每个10分钟执行一次

at:一次性定时任务

  1. #需要确保at的守护进程在运行,会定时检测作业队列,如果作业队列时间和当前时间相匹配则执行该命令
  2. #通过命令 ps -ef|grep atd查看
  3. #at [选项] [时间]
  4. #以Ctrl+D结束at命令的输入

文件目录系统

文件和目录操作命令(18个)

ls:全拼list,功能是列出目录的内容及其内容属性信息。
ln:软连接

  1. 1ln -s /root/ myroot:创建一个软连接myroot,连接到/root目录,此时访问mtroot就相当于访问root
  2. 2rm myroot :删除软连接,不能使用 rm myroot/,会报错

cd:全拼change directory,功能是从当前工作目录切换到指定的工作目录。
cp:全拼copy,其功能为复制文件或目录。
find:查找的意思,用于查找目录及目录下的文件。

  1. #用法1:根据名字查询
  2. find base_path -name 'xxx'
  3. #用法2:-i表示忽略大小写
  4. find base_path -iname 'xxx'
  5. #用法3:! 否定号!,表示查询不是以txt结尾的文件
  6. find base_path ! -name '*.txt'
  7. #用法4:-maxdepth和-mindefth可以限制find命令遍历的目录深度;
  8. #-maxdepth的参数为1时,只匹配当前目录下;
  9. #-mindepth的参数代表了开始进行匹配的目录到base_path的最短距离
  10. find . -maxdepth 1 -print
  11. #用法5:基于文件类型去搜索:文件类型有:普通文件f,目录d,符号链接 l,字符设备c,块设备b,套接字s,FIFO-p
  12. find . -type d -print
  13. #用法6:基于-delete 把查出来的文件删除掉
  14. find . -type f -delete
  15. #用法7:配合-exec进行更高效的操作,更改文件的所属权,复制文件等
  16. #下面的例子是把查到的属于root用户的文件转换到pg用户下
  17. #花括号{}代表文件名,对于每一个匹配到的文件
  18. #需要注意结尾使用 " \; "进行转义,不然系统会以为是find命令的结尾
  19. find . -type f -name '*.txt' -user root -exec chown pg {} \;

mkdir:全拼make directories,其功能是创建目录。
mv:全拼move,其功能是移动或重命名文件。
pwd:全拼print working directory,其功能是显示当前工作目录的绝对路径。
rename:用于重命名文件。
rm:全拼remove,其功能是删除一个或多个文件或目录。
rmdir:全拼remove empty directories,功能是删除空目录。
touch:创建新的空文件,改变已有文件的时间戳属性。
tree:功能是以树形结构显示目录下的内容。
basename:显示文件名或目录名。
dirname:显示文件或目录路径。
chattr:改变文件的扩展属性。
lsattr:查看文件扩展属性。
file:显示文件的类型。
md5sum:计算和校验文件的MD5值。
history:显示执行过的历史命令

查看文件及内容处理命令(21个)

cat:全拼concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。

  1. #cat主要有三大功能:
  2. 1.一次显示整个文件:cat filename
  3. 2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
  4. 3.将几个文件合并为一个文件:cat file1 file2 > file
  5. #主要参数有
  6. -n --number:由 1 开始对所有输出的行数编号。
  7. -b --number-nonblank:和 -n 相似,只不过对于空白行不编号。
  8. -s --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
  9. -v --show-nonprinting:使用 ^ M- 符号,除了 LFD TAB 之外。
  10. -E --show-ends : 在每行结束处显示 $
  11. -T --show-tabs: TAB 字符显示为 ^I
  12. -A, --show-all:等价于 -vET
  13. -e:等价于"-vE"选项;
  14. -t:等价于"-vT"选项;

tactac:是cat的反向拼写,因此命令的功能为反向显示文件内容。
more:分页显示文件内容。
less:分页显示文件内容,more命令的相似用法,会根据显示加载相应的内容,对大文件效率较大。
head:显示文件内容的头部。
tail:显示文件内容的尾部。
cut:将文件的每一行按指定分隔符分割并输出。
split:分割文件为不同的小片段。

  1. 用法:split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
  2. #用法1:将README文件每六行分割成一个文件
  3. #命令执行后,指令"split"会将原来的大文件"README"切割成多个以"x"开头的小文件。而在这些小文件中,每个文件都只有6行内容
  4. #耶可以指定文件的前缀名称,会在自动在文件名后加上前缀
  5. split -6 README
  6. #用法2:将date.file文件分割成大小为10KB的小文件
  7. split -b 10k date.file
  8. #用法3:用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度
  9. split -b 10k date.file -d -a 3
  10. 得到:x000 x001 x002 x003 x004 x005 x006 x007 x008 x009的文件
  11. #用法4:分割后的文件指定文件名的前缀
  12. split -b 10k date.file -d -a 3 split_file
  13. 得到:split_file000 split_file001 split_file002 split_file003

paste:按行合并文件内容。

  1. 用法1:合并指定文件的内容,内容按照顺序分行合并,
  2. # -s可以把所有内容在一行里合并
  3. paste file testfile testfile1

sort:对文件的文本内容排序,将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较进行升序排序。

  1. -u:去除重复行
  2. -r:降序排序,默认升序
  3. -o:将排序结果输出到文件中
  4. -n:以数字进行排序,默认是按照字符排序
  5. -t:分隔符
  6. -k:第 n
  7. -b:忽略前导空格
  8. -R:随机排序,每次运行的结果均不同
  9. 例子:sort -nr -t: -k3 data.txt

uniq:去除连续的重复行。
wc:统计文件的行数、单词数或字节数。
iconv:转换文件的编码格式。
dos2unix:将DOS格式文件转换成UNIX格式。
diff:全拼difference,比较文件的差异,常用于文本文件。
vimdiff:命令行可视化文件比较工具,常用于文本文件。
rev:反向输出文件内容。
grep/egrep:过滤字符串,三剑客老三。

  1. grep -ni 查找内容 源文件: -n表示显示匹配行号,-i表示忽略大小写
  2. egrep [查找的字符串规则] [文件或目录] :相当于grep-E

join:按两个文件的相同字段合并。
tr:替换或删除字符。
vi/vim:命令行文本编辑器。

文件压缩及解压缩命令(4个)

tar:打包压缩。
unzip:解压文件。
gzipgzip:压缩工具。
zip:压缩工具。

信息显示命令(11个)

uname:显示操作系统相关信息的命令。
hostname:显示或者设置当前系统的主机名。
dmesg:显示开机信息,用于诊断系统故障。
uptime:显示系统运行时间及负载。
stat:显示文件或文件系统的状态。
du:计算磁盘空间使用情况。

  1. 1du -h 目录名
  2. -s 指定目录占用大小汇总
  3. -h 带计量单位
  4. -a 包含文件
  5. --max-depth=1 子目录深度
  6. -c 列出明细的同时,增加汇总值

df:报告文件系统磁盘空间的使用情况。df -h
top:实时显示系统资源使用情况。
free:查看系统内存。
date:显示与设置系统时间。

  1. 1date -s "2021-03-03 12:00:00" :设置当前系统时间为2021-03-03 12:00:00
  2. 2date "+%Y-%m-%d %H:%M:%S" :根据年月日时分秒进行显示

cal:查看日历等时间信息。

搜索文件命令(4个)

which:查找二进制命令,按环境变量PATH路径查找。
find:从磁盘遍历查找文件或目录。

  1. find path -option [ -print ] [ -exec -ok command ] {} \;

whereis:查找二进制命令,按环境变量PATH路径查找。
locate:从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用updatedb更新库。

用户管理命令(10个)

useradd:添加用户。

  1. 1useradd 用户名:创建一个用户,且会自动创建和同步同名的家目录
  2. 2useradd -d 指定目录 用户名:指定自定义的家目录
  3. 3useradd -g 用户组 用户名:指定用户组创建用户

usermod:修改系统已经存在的用户属性。

  1. 1usermod -g 组名 用户名:改变用户所在的组
  2. 2usermod -d 目录名 用户名:改变该用户登陆的初始目录

userdel:删除用户。

  1. 1userdel 用户名:删掉用户,但是保留其家目录
  2. 2userdel -d 用户名:删除用户同时删除家目录

groupadd:添加用户组。
groupdel:删除用户组。
passwd:修改用户密码。
chage:修改用户密码有效期限。
id:查看用户的uid,gid及归属的用户组。
su:切换用户身份。
visudo:编辑/etc/sudoers文件的专属命令。
sudo:以另外一个用户身份(默认root用户)执行事先在sudoers文件允许的命令。

用户和用户组相关文件

  • /etc/passwd文件
    • 用户配置文件,记录用户的各种信息
    • 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
  • /etc/shadow文件
    • 口令的配置文件
    • 每行的含义:登录名:加密口令:最后一次修改时间:最小的时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • /etc/group文件
    • 组配置文件,记录linux包含的组的信息
    • 每行含义:组名:组标识号:组内用户列表

      基础网络操作命令(11个)

      telnet:使用TELNET协议远程登录。
      ssh:使用SSH加密协议远程登录。
      scp:全拼secure copy,用于不同主机之间复制文件。
      wget:命令行下载文件。
      ping:测试主机之间网络的连通性。
      route:显示和设置linux系统的路由表。
      ifconfig:查看、配置、启用或禁用网络接口的命令。
      ifup:启动网卡。
      ifdown:关闭网卡。
      netstat:查看网络状态,包含协议、本地连接地址端口、外部连接地址端口、连接状态。
      1. 1nastat
      2. -an:按照一定顺序排序输出
      3. -p:显示哪个进程在调用
      ss:查看网络状态。

      深入网络操作命令(9个)

      nmap:网络扫描命令。
      lsof:全名list open files,也就是列举系统中已经被打开的文件。
      mail:发送和接收邮件。
      mutt:邮件管理命令。
      nslookup:交互式查询互联网DNS服务器的命令。
      dig:查找DNS解析过程。
      host:查询DNS的命令。
      traceroute:追踪数据传输路由状况。
      tcpdump:命令行的抓包工具。

      有关磁盘与文件系统的命令(17个)

      mount:挂载文件系统。
      umount:卸载文件系统。
      fsck:检查并修复Linux文件系统。
      dd:转换或复制文件。
      dumpe2fs:导出ext2/ext3/ext4文件系统信息。
      dump:xt2/3/4文件系统备份工具。 ```shell dump [-cu] [-123456789] [-f<备份后的文件名>] [-T 日期] [目录或文件系统] -c:创建新的归档文件,并将由一个或多个文件参数所指定的内容写入归档文件的开头 -0123456789:备份的层级,0最完整会备份所有文件。 -T<日期>:指定开始备份的时间与日期。 -u :备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等。 -j :调用bzlib库压缩备份文件,也就是将备份后的文件压缩成bz2格式,让文件更小。
      -t :指定文件名,若该文件已存在备份文件中,则列出名称 -w  与-W类似,但仅显示需要备份的文件。 -W  显示需要备份的文件及其最后一次备份的层级,时间与日期。

例子1(把分区/boot 备份到 /opt/boot.bak0.bz2):dump -0uj -f /opt/boot.bak0.bz2 /boot/ 例子2(增量备份/boot 上一次后新增的部分备份到 /opt/boot.bak0.bz2):dump -1uj -f /opt/boot.bak0.bz2 /boot/ 例子3(显示需要备份文件及其最后一次备份的层级,时间,日期):dump -W 例子4(查看备份时间文件):cat /etc/dumpdates

注意:只有在备份分区时才能增量备份,如果备份目录或者文件只能全量备份 备份文件最好上传到其他服务器

  1. **restore:**恢复备份文件,可以从dump生成的备份文件中恢复原文件
  2. ```shell
  3. 语法:restore [模式选项] [选项]
  4. -C:使用对比模式,将备份的文件与已存在的文件相互对比
  5. -i:使用交互模式,在进行还原操作时,restores指令将依序询问用户
  6. -r:进行还原模式
  7. -t:查看模式,看备份文件有哪些文件
  8. -f <备份文件>:从指定的文件中读取备份数据,进行还原操作
  9. 例子1(对比数据):restore -C -f boot.bak1.bz2
  10. 例子2(查看备份文件有什么文件):restore -t -f boot.bak1.bz2
  11. 例子3(还原数据,增量的备份需要一个个进行备份):restore -r -f boot.bak1.bz2

fdisk:磁盘分区命令,适用于2TB以下磁盘分区。
parted:磁盘分区命令,没有磁盘大小限制,常用于2TB以下磁盘分区。
mkfs:格式化创建Linux文件系统。
partprobe:更新内核的硬盘分区表信息。
e2fsck:检查ext2/ext3/ext4类型文件系统。
mkswap:创建Linux交换分区。
swapon:启用交换分区。
swapoff:关闭交换分区。
sync:将内存缓冲区内的数据写入磁盘。
resize2fs:调整ext2/ext3/ext4文件系统大小。
lsblk -f:查看磁盘分区

系统权限及用户授权相关命令(4个)

chmod:改变文件或目录权限。
chown:改变文件或目录的属主和属组。

  1. 1chown newowner 文件/目录 :修改文件/目录所属用户
  2. 2chown newowner:newgroup 文件/目录 :同时修改所属用户和用户组
  3. 3chown -R newowner 目录 :递归改变目录及其子目录的所属用户

chgrp:更改文件用户组。

  1. 1chgrp newgroup 文件/目录

umask:显示或设置权限掩码。

查看系统用户登陆信息的命令(7个)

whoami:显示当前有效的用户名称,相当于执行id -un命令。
who:显示目前登录系统的用户信息。
w:显示已经登陆系统的用户列表,并显示用户正在执行的指令。
last:显示登入系统的用户。
lastlog:显示系统中所有用户最近一次登录信息。
users:显示当前登录系统的所有用户的用户列表。
finger:查找并显示用户信息。

内置命令及其它(19个)

echo:打印变量,或直接输出指定的字符串
printf:将结果格式化输出到标准输出。
rpm:管理rpm包的命令。
yum:自动化简单化地管理rpm包的命令。
watch:周期性的执行给定的命令,并将命令的输出以全屏方式显示。
alias:设置系统别名。
unalias:取消系统别名。
date:查看或设置系统时间。
clear:清除屏幕,简称清屏。
history:查看命令执行的历史纪录。
eject:弹出光驱。
time:计算命令执行时间。
nc:功能强大的网络工具。
xargs:将标准输入转换成命令行参数。
exec:调用并执行指令的命令。
export:设置或者显示环境变量。
unset:删除变量或函数。
type:用于判断另外一个命令是否是内置命令。
bc:命令行科学计算器。

系统管理与性能监视命令(11个)

chkconfig:管理Linux系统开机启动项。

  1. 1、通过chkconfig命令可以给服务的各个运行级别设置 启动还是关闭
  2. 2chkconfig指令管理的服务在 /etc/init.d 查看
  3. 3、在centos7.0后很多服务是通过systemctl操作
  4. 语法:
  5. 4、查看服务:chkconfig --list|grep 服务名
  6. 5、设置在运行级别5下该服务是否自启动还是关闭:chkconfig --level 5 服务名 on/off
  7. 6chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效

systemctl:管理指令

  1. 1、基本语法:对某个服务进行相应操作,立即生效,重启后失效
  2. systemctl [start|stop|restart|status] 服务名
  3. 2systemctl 指令管理的服务在 /usr/lib/systemd/system 查看
  4. 语法:
  5. 3systemctl list-unit-files 查看服务开机启动状态
  6. 4systemctl enable 服务名 设置服务开机启动,永久设置
  7. 5systemctl disable 服务名 关闭服务开机启动,永久设置
  8. 6systemctl is-enabled 服务名 查询某个服务是否会自启动

firewall:防火墙指令

  1. 1、假如把防火墙打开了,又需要打开指定的端口时使用
  2. 2、打开端口:firewall-cmd --permanent --add-port=端口号/协议
  3. 3、关闭端口:firewall-cmd --permanent --remove-port=端口/协议
  4. 4、打开或者关闭需要重新载入,才能生效:firewall-cmd --reload
  5. 5、查询端口是否开放:firewall-cmd --query-port=端口/协议
  6. 协议可以通过:netstat -anp 命令查看

vmstat:虚拟内存统计。
mpstat:显示各个可用CPU的状态统计。
iostat:统计系统IO。
sar:全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据。
ipcs:用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。
ipcrm:用来删除一个或更多的消息队列、信号量集或者共享内存标识。
strace:用于诊断、调试Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。
ltrace:命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。

关机/重启/注销和查看系统信息的命令(6个)

shutdown:关机。
halt:关机。
poweroff:关闭电源。
logout:退出当前登录的Shell。
exit:退出当前登录的Shell。
Ctrl+d:退出当前登录的Shell的快捷键。

进程管理相关命令(15个)

bg:将一个在后台暂停的命令,变成继续执行 (在后台执行)。
fg:将后台中的命令调至前台继续运行。
jobs:查看当前有多少在后台运行的命令。
kill:终止进程。
killall:通过进程名终止进程。
pkill:通过进程名终止进程。
crontab:定时任务命令。
ps:显示进程的快照。
pstree:树形显示进程。
nice/renice:调整程序运行的优先级。
nohup:忽略挂起信号运行指定的命令。
pgrep:查找匹配条件的进程。
runlevel:查看系统当前运行级别。
init:切换运行级别。
service:启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

  1. 1、使用:service 服务名 [start|stop|restart|reload|status]
  2. 2、在centos7.0后很多服务不再使用service,而是systemctl
  3. 3service指令管理的服务在 /etc/init.d 查看