共计 5473 个字符,预计需要花费 14 分钟才能阅读完成。
一、常用命令介绍
在 linux 系统中存在很多命令,这些命令可以帮助我们完成不同的工作,在这里面我们先介绍一些常用的基础命令,这些命令可以帮助我们完成对应的基本操作,随着以后的学习,我们还会接触到更多可以帮助我们完成不同工作的 linux 命令,我们来一起看一下这些基础命令都有哪些
1、关机、重启命令
关机命令
- init 0 #管理员可以使用
- halt
- shutdown -h
- poweroff
重启命令
- shutdown -r
- reboot
- shutdown -r
强烈推荐:关机或重启命令及步骤
1)sync:将缓冲区的数据同步到磁盘中(关机,重启前都需要执行,避免数据丢失),在 Linux 系统中,当数据需要存入磁盘时,通常会先放到缓冲区内,等到适当的时刻再写入磁盘,如此可提高系统的执行效率
2)shutdown:以一种安全的方式关闭或重启系统。所有登陆用户都可以看到关机信息提示,并且禁止登陆
-k 并非真正关机,只向所有人显示警告信息。如:shutdown -k +5
-r 重启。默认延迟一分钟
如:shutdown -r +3 "shutdown in 3 minutes"
-h 关机。默认延迟一分钟
如:shutdown -h 12:00/shutdown -h now
-f 重启时跳过磁盘检测。-F 重启时强制磁盘检测。-c 取消 shutdown
推荐理由:1、将内存中的数据刷入硬盘,避免因为重启或关机数据没有及时保存而丢失
2、避免多用户使用突然某个用户强行关机,影响其他用户,使用 shutdown 关机和重启可以通知其他用户,给予缓冲时间
2、系统信息
- uname
-s 输出内核名称
-n 输出网络节点上的主机名
-r 输出内核发行号
-v 输出内核版本
-m 输出主机的硬件架构名称
-p 输出处理器类型或"unknown"
-i 输出硬件平台或"unknown"
-o 输出操作系统名称
-a 以如下次序输出所有信息。其中若 - p 和 - i 的结果不可知则省略
- hostname 查看主机名
# hostnamectl set-hostname hello
- date 查看和设置时间
时间方面:%n : 下一行
%t : 跳格 tab
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..60)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面:%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (yyyy-mm-dd)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
[root@zutuanxue ~]# date '+%I%M%S'
025929
[root@zutuanxue ~]# date '+%r'
上午 02时 59 分49秒
[root@zutuanxue ~]# date '+%s'
1584428402
[root@zutuanxue ~]# date '+%Z'
EDT
[root@zutuanxue ~]# date '+%a'
二
[root@zutuanxue ~]# date '+%A'
星期二
[root@zutuanxue ~]# date '+%b'
3月
[root@zutuanxue ~]# date '+%B'
三月
[root@zutuanxue ~]# date '+%c'
2020年 03 月17日 星期二 03时 01 分36秒
[root@zutuanxue ~]# date '+%T%n%D'
03:03:35
03/17/20
[root@zutuanxue ~]# date '+%T%t%D'
03:03:58 03/17/20
[root@zutuanxue ~]# date -s 2021-10-25
2021年 10月 25日 星期一 00:00:00 EDT
[root@zutuanxue ~]# date -s 18:00
2021年 10月 25日 星期一 18:00:00 EDT
[root@zutuanxue ~]# date -s 18:30:21
2021年 10月 25日 星期一 18:30:21 EDT
[root@zutuanxue ~]# date -s "2021-04-28 15:30:20"
2021年 04月 28日 星期三 15:30:20 EDT
3、文件和目录
-
cd 目录 进入目录
-
pwd:查看当前的工作路径
-P 显示实际位置
-L 显示所在位置
[root@zutuanxue ~]# cd /etc #进入到 /etc 这个目录
[root@zutuanxue ~]# cd /
[root@zutuanxue /]# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@zutuanxue /]# cd bin/
[root@zutuanxue bin]# pwd
/bin
[root@zutuanxue bin]# pwd -P
/usr/bin
[root@zutuanxue bin]# pwd -L
/bin
- ls:查看当前目录下有哪些文件
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-A 显示除“.”和“..”外的所有文件。-B 不输出以“~”结尾的备份文件。-c 与 lt 一起使用,显示并按照修改时间(ctime)排序,与 l 一起使用,显示修改时间,按名称排序。-d 将目录象文件一样显示,而不是显示其下的文件。-f 对输出的文件不排序,使用此选项后 aU 选项生效,lst 选项失效
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示 FIFOs;“=”表示套接字(sockets)。-g 类似 l 但是不显示所有者
-h 与 l 一起,以易于阅读的格式输出文件大小(例如 1K 234M 2G)
-i 输出文件的 i 节点的索引信息。-k 以 k 字节的形式表示文件的大小。--si 类似 k 但是以 1000 为进制而非1024
-l 列出文件的详细信息。-L 遇到链接文件是,显示原文件的信息,而非链接信息
-m 横向输出文件名,并以“,”作分格符。-n 类似 l, 但是用数字的 UID,GID 代替名称。-o 显示文件的除组信息外的详细信息。-p 目录后面加上 / 标识
-q 用? 代替不可输出的字符。-r 对目录反向排序。-s 在每个文件名后输出该文件的大小。-t 以修改时间排序。-u 与 lt 一起使用,以访问时间 (atime) 排序;与 l 一起使用显示访问时间,按照名称排序
-x 按列输出,横向排序。-Q 把输出的文件名用双引号括起来。-R 列出所有子目录下的文件。-S 以文件大小排序。-X 以文件的扩展名 (最后一个 . 后的字符) 排序。-1 一行只输出一个文件。--color=no 不显示彩色文件名
--help 在标准输出上显示帮助信息。--version 在标准输出上输出版本信息并退出。
- mkdir 建立目录
-m 设置权限模式(类似 chmod)
-p 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理
-v 每次创建新目录都显示信息
-Z 将每个创建的目录的 SELinux 安全环境设置为 CTX
- rmdir 删除空文件夹
-p 递归删除空目录,从最后一个目录倒删
- touch 建立文件
-a 只更改访问时间
-c 不创建任何文件
-m 只更改修改时间
-r 使用指定文件的时间属性替代当前时间
-t 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间替代当前时间
[root@zutuanxue ~]# stat hello
文件:hello
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:34502264 硬链接:1
权限:(0644/-rw-r--r--) Uid:(0/ root) Gid:(0/ root)
最近访问:2020-03-17 16:51:35.502961371 -0400
最近更改:2020-03-17 16:51:35.502961371 -0400
最近改动:2020-03-17 16:51:35.502961371 -0400
创建时间:-
[root@zutuanxue ~]# touch -a -t 202002010101.30 hello
[root@zutuanxue ~]# stat hello
文件:hello
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:34502264 硬链接:1
权限:(0644/-rw-r--r--) Uid:(0/ root) Gid:(0/ root)
最近访问:2020-02-01 01:01:30.000000000 -0500
最近更改:2020-03-17 16:51:35.502961371 -0400
最近改动:2020-03-17 16:51:53.143475189 -0400
创建时间:-
[root@zutuanxue ~]# touch -m -t 202002050101.30 hello
[root@zutuanxue ~]# stat hello
文件:hello
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:34502264 硬链接:1
权限:(0644/-rw-r--r--) Uid:(0/ root) Gid:(0/ root)
最近访问:2020-02-01 01:01:30.000000000 -0500
最近更改:2020-02-05 01:01:30.000000000 -0500
最近改动:2020-03-17 16:52:07.837453512 -0400
创建时间:-
# 将 hello-linux.txt 的属性改成与 anaconda-ks.cfg 一样
[root@zutuanxue ~]# stat hello-linux.txt
文件:hello-linux.txt
大小:12 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:34513350 硬链接:1
权限:(0644/-rw-r--r--) Uid:(0/ root) Gid:(0/ root)
最近访问:2020-03-17 22:50:51.319377144 -0400
最近更改:2020-03-17 22:50:45.909483733 -0400
最近改动:2020-03-17 22:50:45.912483674 -0400
创建时间:-
[root@zutuanxue ~]# stat anaconda-ks.cfg
文件:anaconda-ks.cfg
大小:1378 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:34973658 硬链接:1
权限:(0600/-rw-------) Uid:(0/ root) Gid:(0/ root)
最近访问:2020-03-16 23:08:34.121427663 -0400
最近更改:2020-02-04 15:01:33.273959663 -0500
最近改动:2020-03-18 16:33:48.873881970 -0400
创建时间:-
[root@zutuanxue ~]# touch -r anaconda-ks.cfg hello-linux.txt
[root@zutuanxue ~]# stat hello-linux.txt
文件:hello-linux.txt
大小:12 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:34513350 硬链接:1
权限:(0644/-rw-r--r--) Uid:(0/ root) Gid:(0/ root)
最近访问:2020-03-16 23:08:34.121427663 -0400
最近更改:2020-02-04 15:01:33.273959663 -0500
最近改动:2020-03-18 18:22:48.694597233 -0400
创建时间:-
- cat 查看文件内容
-A 等价于 -vET
-b 对非空输出行编号
-e 等价于 -vE
-E 在每行结束处显示 $
-n 对输出的所有行编号
-s 不输出多行空行
-t 与 -vT 等价
-T 将跳格字符(tab)显示为 ^I
-v 使用 ^ 和 M
- rm 删除文件或目录
-f 强制删除。忽略不存在的文件,不提示确认
-i 在删除前需要确认
-I 超过三个文件或者递归删除前要求确认。比 - i 提示内容更少
-d 删除空目录
-r 递归删除目录及其内容
这些命令都是初学者可能会经常用到的,大家可以在自己的虚拟机上练习一下
- cp 拷贝
-i 覆盖前询问(使前面的 -n 选项失效)
-n 不要覆盖已存在的文件(使前面的 -i 选项失效)
-R, -r, --recursive 递归复制目录及其子目录内的所有内容
-s 只创建符号链接而不复制文件
-f 强制,将目标文件无法打开则将其移除并重试
- mv 移动 / 改名
-f 覆盖前不询问
-i 覆盖前询问
-n 不覆盖已存在文件
# 如果您指定了 -i、-f、-n 中的多个,仅最后一个生效。
二、常用符号
* 任意字符串
? 任意字符
/ 路径间隔符
~ 当前用户的家目录 管理员家目录为 /root,其它用户的家目录在 /home/ 用户名
正文完
星哥玩云-微信公众号