当前位置:  首页>> 技术小册>> Linux系统管理小册

一、常用命令介绍

在linux系统中存在很多命令,这些命令可以帮助我们完成不同的工作,在这里面我们先介绍一些常用的基础命令,这些命令可以帮助我们完成对应的基本操作,随着以后的学习,我们还会接触到更多可以帮助我们完成不同工作的linux命令,我们来一起看一下这些基础命令都有哪些

1、关机、重启命令

关机命令

  • init 0 #管理员可以使用
  • halt
  • shutdown -h
  • poweroff

重启命令

  • shutdown -r
  • reboot
  • shutdown -r

强烈推荐:关机或重启命令及步骤

  1. 1 sync:将缓冲区的数据同步到磁盘中(关机,重启前都需要执行,避免数据丢失),在Linux系统中,当数据需要存入磁盘时,通常会先放到缓冲区内,等到适当的时刻再写入磁盘,如此可提高系统的执行效率
  2. 2 shutdown 以一种安全的方式关闭或重启系统。所有登陆用户都可以看到关机信息提示,并且禁止登陆
  3. -k 并非真正关机,只向所有人显示警告信息。
  4. 如:shutdown -k +5
  5. -r 重启。默认延迟一分钟
  6. 如:shutdown -r +3 "shutdown in 3 minutes"
  7. -h 关机。默认延迟一分钟
  8. 如:shutdown -h 1200/shutdown -h now
  9. -f 重启时跳过磁盘检测。
  10. -F 重启时强制磁盘检测。
  11. -c 取消shutdown
  12. 推荐理由:
  13. 1、将内存中的数据刷入硬盘,避免因为重启或关机数据没有及时保存而丢失
  14. 2、避免多用户使用突然某个用户强行关机,影响其他用户,使用shutdown关机和重启可以通知其他用户,给予缓冲时间

2、系统信息

  • uname
  1. -s 输出内核名称
  2. -n 输出网络节点上的主机名
  3. -r 输出内核发行号
  4. -v 输出内核版本
  5. -m 输出主机的硬件架构名称
  6. -p 输出处理器类型或"unknown"
  7. -i 输出硬件平台或"unknown"
  8. -o 输出操作系统名称
  9. -a 以如下次序输出所有信息。其中若-p和-i的结果不可知则省略
  • hostname 查看主机名
  1. # hostnamectl set-hostname hello
  • date 查看和设置时间
  1. 时间方面:
  2. %n : 下一行
  3. %t : 跳格 tab
  4. %H : 小时(00..23)
  5. %I : 小时(01..12)
  6. %k : 小时(0..23)
  7. %l : 小时(1..12)
  8. %M : 分钟(00..59)
  9. %p : 显示本地 AM PM
  10. %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
  11. %s : 1970 1 1 00:00:00 UTC 到目前为止的秒数
  12. %S : 秒(00..60)
  13. %T : 直接显示时间 (24 小时制)
  14. %X : 相当于 %H:%M:%S
  15. %Z : 显示时区
  16. 日期方面:
  17. %a : 星期几 (Sun..Sat)
  18. %A : 星期几 (Sunday..Saturday)
  19. %b : 月份 (Jan..Dec)
  20. %B : 月份 (January..December)
  21. %c : 直接显示日期与时间
  22. %d : (01..31)
  23. %D : 直接显示日期 (mm/dd/yy)
  24. %h : %b
  25. %j : 一年中的第几天 (001..366)
  26. %m : 月份 (01..12)
  27. %U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
  28. %w : 一周中的第几天 (0..6)
  29. %W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
  30. %x : 直接显示日期 (yyyy-mm-dd)
  31. %y : 年份的最后两位数字 (00.99)
  32. %Y : 完整年份 (0000..9999)
  33. [root@zutuanxue ~]# date '+%I%M%S'
  34. 025929
  35. [root@zutuanxue ~]# date '+%r'
  36. 上午 025949
  37. [root@zutuanxue ~]# date '+%s'
  38. 1584428402
  39. [root@zutuanxue ~]# date '+%Z'
  40. EDT
  41. [root@zutuanxue ~]# date '+%a'
  42. [root@zutuanxue ~]# date '+%A'
  43. 星期二
  44. [root@zutuanxue ~]# date '+%b'
  45. 3
  46. [root@zutuanxue ~]# date '+%B'
  47. 三月
  48. [root@zutuanxue ~]# date '+%c'
  49. 20200317 星期二 030136
  50. [root@zutuanxue ~]# date '+%T%n%D'
  51. 03:03:35
  52. 03/17/20
  53. [root@zutuanxue ~]# date '+%T%t%D'
  54. 03:03:58 03/17/20
  55. [root@zutuanxue ~]# date -s 2021-10-25
  56. 2021 10 25 星期一 00:00:00 EDT
  57. [root@zutuanxue ~]# date -s 18:00
  58. 2021 10 25 星期一 18:00:00 EDT
  59. [root@zutuanxue ~]# date -s 18:30:21
  60. 2021 10 25 星期一 18:30:21 EDT
  61. [root@zutuanxue ~]# date -s "2021-04-28 15:30:20"
  62. 2021 04 28 星期三 15:30:20 EDT

3、文件和目录

  • cd 目录 进入目录
  • pwd: 查看当前的工作路径
  1. -P 显示实际位置
  2. -L 显示所在位置
  3. [root@zutuanxue ~]# cd /etc #进入到/etc这个目录
  4. [root@zutuanxue ~]# cd /
  5. [root@zutuanxue /]# ls
  6. bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
  7. [root@zutuanxue /]# cd bin/
  8. [root@zutuanxue bin]# pwd
  9. /bin
  10. [root@zutuanxue bin]# pwd -P
  11. /usr/bin
  12. [root@zutuanxue bin]# pwd -L
  13. /bin
  • ls: 查看当前目录下有哪些文件
  1. -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  2. -A 显示除 “.”和“..”外的所有文件。
  3. -B 不输出以 “~”结尾的备份文件。
  4. -c lt一起使用,显示并按照修改时间(ctime)排序,与l一起使用,显示修改时间,按名称排序。
  5. -d 将目录象文件一样显示,而不是显示其下的文件。
  6. -f 对输出的文件不排序,使用此选项后aU选项生效,lst选项失效
  7. -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。
  8. -g 类似l但是不显示所有者
  9. -h l一起,以易于阅读的格式输出文件大小(例如 1K 234M 2G)
  10. -i 输出文件的i节点的索引信息。
  11. -k k字节的形式表示文件的大小。--si类似k但是以1000为进制而非1024
  12. -l 列出文件的详细信息。
  13. -L 遇到链接文件是,显示原文件的信息,而非链接信息
  14. -m 横向输出文件名,并以“,”作分格符。
  15. -n 类似l,但是用数字的 UID,GID 代替名称。
  16. -o 显示文件的除组信息外的详细信息。
  17. -p 目录后面加上/标识
  18. -q 用?代替不可输出的字符。
  19. -r 对目录反向排序。
  20. -s 在每个文件名后输出该文件的大小。
  21. -t 以修改时间排序。
  22. -u lt一起使用,以访问时间(atime)排序;与l一起使用显示访问时间,按照名称排序
  23. -x 按列输出,横向排序。
  24. -Q 把输出的文件名用双引号括起来。
  25. -R 列出所有子目录下的文件。
  26. -S 以文件大小排序。
  27. -X 以文件的扩展名(最后一个 . 后的字符)排序。
  28. -1 一行只输出一个文件。
  29. --color=no 不显示彩色文件名
  30. --help 在标准输出上显示帮助信息。
  31. --version 在标准输出上输出版本信息并退出。
  • mkdir 建立目录
  1. -m 设置权限模式(类似chmod)
  2. -p 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理
  3. -v 每次创建新目录都显示信息
  4. -Z 将每个创建的目录的SELinux 安全环境设置为CTX
  • rmdir 删除空文件夹
  1. -p 递归删除空目录,从最后一个目录倒删
  • touch 建立文件
  1. -a 只更改访问时间
  2. -c 不创建任何文件
  3. -m 只更改修改时间
  4. -r 使用指定文件的时间属性替代当前时间
  5. -t 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间替代当前时间
  6. [root@zutuanxue ~]# stat hello
  7. 文件:hello
  8. 大小:0 块:0 IO 块:4096 普通空文件
  9. 设备:fd00h/64768d Inode34502264 硬链接:1
  10. 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
  11. 最近访问:2020-03-17 16:51:35.502961371 -0400
  12. 最近更改:2020-03-17 16:51:35.502961371 -0400
  13. 最近改动:2020-03-17 16:51:35.502961371 -0400
  14. 创建时间:-
  15. [root@zutuanxue ~]# touch -a -t 202002010101.30 hello
  16. [root@zutuanxue ~]# stat hello
  17. 文件:hello
  18. 大小:0 块:0 IO 块:4096 普通空文件
  19. 设备:fd00h/64768d Inode34502264 硬链接:1
  20. 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
  21. 最近访问:2020-02-01 01:01:30.000000000 -0500
  22. 最近更改:2020-03-17 16:51:35.502961371 -0400
  23. 最近改动:2020-03-17 16:51:53.143475189 -0400
  24. 创建时间:-
  25. [root@zutuanxue ~]# touch -m -t 202002050101.30 hello
  26. [root@zutuanxue ~]# stat hello
  27. 文件:hello
  28. 大小:0 块:0 IO 块:4096 普通空文件
  29. 设备:fd00h/64768d Inode34502264 硬链接:1
  30. 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
  31. 最近访问:2020-02-01 01:01:30.000000000 -0500
  32. 最近更改:2020-02-05 01:01:30.000000000 -0500
  33. 最近改动:2020-03-17 16:52:07.837453512 -0400
  34. 创建时间:-
  35. #将hello-linux.txt的属性改成与anaconda-ks.cfg一样
  36. [root@zutuanxue ~]# stat hello-linux.txt
  37. 文件:hello-linux.txt
  38. 大小:12 块:8 IO 块:4096 普通文件
  39. 设备:fd00h/64768d Inode34513350 硬链接:1
  40. 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
  41. 最近访问:2020-03-17 22:50:51.319377144 -0400
  42. 最近更改:2020-03-17 22:50:45.909483733 -0400
  43. 最近改动:2020-03-17 22:50:45.912483674 -0400
  44. 创建时间:-
  45. [root@zutuanxue ~]# stat anaconda-ks.cfg
  46. 文件:anaconda-ks.cfg
  47. 大小:1378 块:8 IO 块:4096 普通文件
  48. 设备:fd00h/64768d Inode34973658 硬链接:1
  49. 权限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root)
  50. 最近访问:2020-03-16 23:08:34.121427663 -0400
  51. 最近更改:2020-02-04 15:01:33.273959663 -0500
  52. 最近改动:2020-03-18 16:33:48.873881970 -0400
  53. 创建时间:-
  54. [root@zutuanxue ~]# touch -r anaconda-ks.cfg hello-linux.txt
  55. [root@zutuanxue ~]# stat hello-linux.txt
  56. 文件:hello-linux.txt
  57. 大小:12 块:8 IO 块:4096 普通文件
  58. 设备:fd00h/64768d Inode34513350 硬链接:1
  59. 权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
  60. 最近访问:2020-03-16 23:08:34.121427663 -0400
  61. 最近更改:2020-02-04 15:01:33.273959663 -0500
  62. 最近改动:2020-03-18 18:22:48.694597233 -0400
  63. 创建时间:-
  • cat 查看文件内容
  1. -A 等价于-vET
  2. -b 对非空输出行编号
  3. -e 等价于-vE
  4. -E 在每行结束处显示$
  5. -n 对输出的所有行编号
  6. -s 不输出多行空行
  7. -t 与-vT等价
  8. -T 将跳格字符(tab)显示为 ^I
  9. -v 使用^和M
  • rm 删除文件或目录
  1. -f 强制删除。忽略不存在的文件,不提示确认
  2. -i 在删除前需要确认
  3. -I 超过三个文件或者递归删除前要求确认。比-i提示内容更少
  4. -d 删除空目录
  5. -r 递归删除目录及其内容

这些命令都是初学者可能会经常用到的,大家可以在自己的虚拟机上练习一下

  • cp 拷贝
  1. -i 覆盖前询问(使前面的 -n 选项失效)
  2. -n 不要覆盖已存在的文件(使前面的 -i 选项失效)
  3. -R, -r, --recursive 递归复制目录及其子目录内的所有内容
  4. -s 只创建符号链接而不复制文件
  5. -f 强制,将目标文件无法打开则将其移除并重试
  • mv 移动/改名
  1. -f 覆盖前不询问
  2. -i 覆盖前询问
  3. -n 不覆盖已存在文件
  4. #如果您指定了-i、-f、-n 中的多个,仅最后一个生效。

二、常用符号

  1. * 任意字符串
  2. ? 任意字符
  3. / 路径间隔符
  4. ~ 当前用户的家目录 管理员家目录为/root,其它用户的家目录在/home/用户名

该分类下的相关小册推荐: