1. 基本命令
服务的启动,重启
,停止
,重载
,查看
常用命令:
老系统命令 | 新系统命令 | 作用 |
---|---|---|
service foo start | systemctl start sshd | 启动服务 |
service foo restart | systemctl restart sshd | 重启服务 |
service foo stop | systemctl stop sshd | 停止服务 |
service foo reload | systemctl reload sshd | 重新加载配置文件(不终止服务) |
service foo status | systemctl status sshd | 查看服务状态 |
开机启动
,不启动
,查看各级被下服务启动状态
常用命令:
老系统命令 | 新系统命令 | 作用 |
---|---|---|
chkconfig foo on | systemctl enable sshd | 开机自动启动 |
chkconfig foo off | systemctl disable sshd | 开机不自动启动 |
chkconfig foo | systemctl is-enabled httpd | 查看特定服务是否为开机自启动 |
chkconfig --list | systemctl list-unit-files --type=httpd | 查看各个级别下的服务启动和禁用的情况 |
date
命令:
用于显示系统时间和日期,语法格式 : date "+%Y-%m-%d %H:%M:%S"
参数 | 作用 |
---|---|
%S | 秒 |
%M | 分钟 |
%H | 小时,24 小时制 |
%I | 小时, 12 小时制 |
%m | 月份 |
%p | 显示 am 或 pm |
%a | 缩写工作日的名称,栗子:Sun |
%A | 完整的工作日名称,栗子:Sunday |
%b | 缩写月份的名称,栗子:Jan |
%B | 完整月份的名称,栗子:January |
%q | 季度(1~4) |
%y | 简写年份,栗子:22 |
%Y | 完整年份,栗子: 2022 |
%d | 本月的第几天 |
%j | 今年中的第几天 |
%n | 换行符 |
%t | 跳格 (相当于 tab 键) |
栗子:
timedatectl
命令:
该命令用于设置系统时间,全称为 time date control
语法格式为,timedatectl [参数]
参数 | 作用 |
---|---|
sataus | 显示状态信息 |
list-timezones | 显示已知的时区 |
set-time | 设置系统时间 |
set-timezone | 设置生效时区 |
# 查看状态
[root@myfirst ~]# timedatectl status
Local time: Sat 2022-04-09 11:51:10 CST
Universal time: Sat 2022-04-09 03:51:10 UTC
RTC time: Sat 2022-04-09 11:51:08
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
# 设置时区
timedatectl set-timezone Asia/Shanghai
# 设置时间
timedatectl set-time 2022-04-08
wget
命令:
用于在终端命令下载网络文件,语法,wget [参数] 网址
参数 | 作用 |
---|---|
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面内所有的资源,包括图片,视频等 |
-r | 递归下载 |
ps
命令:”
用于查看系统进程状态,全称 processes
,语法格式:ps [参数]]
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
在 linux
中有 5
中常见的进程状态, 分别为运行,中断,不可中断,僵死和停止。
- R(运行):进程在运行状态或在运行队列中等待。
- S(中断):进程处于休眠状态,当某个条件形成之后,或者收到某个信号的时候,则脱离该状态。
- D(不可中断):进程不响应系统异步信号,即使
kill
命令也不能将其中断。 - Z(僵死):进程已经终止,但是进程描述符依然存在,直到父进程调用
wait4()
系统函数将进程释放。 - T(停止):进程收到停止信号后停止运行。
除了上面常见的进程之外,还有高优先级(<)
,低优先级(N)
,被锁进内存(L)
,包含子进程(s)
,以及多线程(1)
这 5
种补充形式。
ps -aux
命令:
标题 | 含义 |
---|---|
USER | 进程的所有者 |
PID | 进程的 ID 号 |
%CPU | cpu 占用率 |
%MEM | 内存占用率 |
VSZ | 虚拟内存使用量(单位 KB) |
RSS | 占用的固定内存(单位是 KB) |
TTY | 所在终端 |
STAT | 进程状态 |
START | 被启动的时间 |
TIMR | 实际使用 cpu 时间 |
COMMAND | 命令名称和参数 |
pstree
命名:
该命令用于以树形状图展示进程之间的关系,全称 process tree
top
命令:
用于动态监视进程活动以及系统负载的信息。
第一行:系统时间,运行时间,系统登录用户的数量(rhel5,6 是终端的数量),系统负载值(1分钟,5分钟,15分钟,数值越小意味着负载值越低)。
第二行:进程总数,运行的进程数,睡眠中的进程数,停止的进程数,僵死进程数
第三行:用户占用资源百分比,系统内核占用资源百分比,改变过优先级的进程资源百分比,空闲的资源百分比等。其余数据均为
cpu
数据并以百分比的格式显示。
第四行: 物理内存总量,内存空闲量,内存使用量,作为内核缓存的内存量
第五行: 虚拟内存总量,虚拟内存空闲量,虚拟内存使用量,已被提前加载的内存量
PR,NI
数字越低,优先级越高,RES,SHR
内存硬盘交换至
nice
命令:
用于调整进程的优先级,语法格式为:nice 优先级数字 服务名称
nice -n -20 bash
pidof
命令:
用于查询某个指定服务进程的 PID
号码,语法格式: pidof [参数] 服务名称
pidof sshd
ifconfig
命令:
获取网卡配置和网络状态信息
uname
命令:
查看系统内核版本与系统架构等信息。
当前系统的内核名称,主机名,内核发行版本,节点名,压制事件,硬件名称,硬件平台,处理器类型,以及操作系统名称。
如果想查看当前系统版本的详细信息,可以查看 redhat-release
文件
free
命令:
显示当前系统中内存的使用量信息。
标题 | 含义 |
---|---|
Total | 内存总量 |
used | 已用量 |
free | 空闲量 |
shared | 进程功效的内存量 |
buffers | 磁盘缓存的内存量 |
buff/cache | 缓存的内存量 |
available | 可用量 |
uptime
命令:
查看系统的负载信息
# 每一秒执行一下该命令
watch -n 1 uptime
who
命令:
该命令用于查看当前登入主机用户的终端信息,如果有远程用户,会显示出来访者的 ip
登录的用户名,终端设备,登录到系统的时间
last
命令:
该命令是用于调取主机的被访问记录,linux
系统每次登录都会记录到日志文件中,如果想翻阅,直接使用该命令即可。
ping
命令:
用于测试主机之间的网络联通性。
参数 | 作用 |
---|---|
-c | 总共发送次数 |
-l | 指定网卡名称 |
-i | 每次间隔时间(秒) |
-W | 最长等待时间(秒) |
find
命令:
用于指定条件查找文件的对应位置,语法: find [查找范围] 寻找条件
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode 为完全匹配,-mode 为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
locate
命令:
按名称检索文件对应的位置,使用该命令之前,先使用 updatedb
命令生成一个索引文件库。文件的名称是 /var/lib/mlocate/mlocate.db
。
whereis
命令:
用于按名称快速检索二进制程序(命令),源代码以及帮助文件锁对应的位置。简单来说,改命令也是基于 updatedb
命令生成的文件索引,它与 locate
命令的区别是不关心那些相同名称的文件,仅仅是快速找到对应的命令文件以及帮助文件所在位置。
whice
命令:
指定名称快速检索二进制程序(命令)所对应的位置,语法:which 命令名称
该命令是在 PATH
变量所指定的路径中,按照指定条件搜索命令所在的路径。也就是说,如果我们即不关心同名文件(find
和locate
),也不关心命令锁对应的源代码和帮助文件(whereis
),仅仅是想找到命令本身所在的路径,那么该命令和适合。
tr
命令:
用于替换文本内容的字符
cat anacnda-ks.cfg | tr [a-z] [A-Z]
wc
命令:
用于统计指定文本文件的行数,字数或字节。
参数 | 作用 |
---|---|
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
stat
命令:
用于查看具体存储细节和时间等信息,英文全称为:status
linux
系统中的文件包含 3
中时间状态,分别是 :
Access Time
,最后一次被访问的时间(查看文件内容),简称Atime
。ModifyTime
,内容最后一次被修改的时间(修改文件内容的时间),简称Mtime
ChangeTime
,文件属性最后一次被修改的时间(文件属性修改时间),简称Ctime
。
文件内容发生改变,文件的容量也随之发生变化,Ctime
和Mtime
也随之发生变化。
grep
命令:
该命令用于提取文本内容。
grep /sbin/nologin /etc/passwd
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的行数 |
-I | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有关键词的行 |
cut
命令:
用于按列提取文件内容。
参数 | 作用 |
---|---|
-d | 设置文件间隔符号 |
-f | 提取那一列的信息 |
提取 passwd
文件中的用户名信息,即提取以冒号(:)为间隔符的第一列数据。
diff
命令:
用于比较多个文件之间内容的差异,语法格式:diff [参数] 文件名称A 文件名称B
参数 | 作用 |
---|---|
–brief | 用来确认两个文件是否相同 |
-c | 用于比较两个文件的差异之处 |
uniq
命令:
用于除去文本中连续的重复行,语法为:uniq [参数] 文件名称
。
sort
命令:
用于对文本内容进行排序,语法为:sort [参数] 文件名称
。
参数 | 作用 |
---|---|
-f | 忽略大小写 |
-b | 忽略缩进和空格 |
-n | 以数值型排序设 |
-r | 反向排序 |
-u | 去掉重复行 |
-t | 指定间隔符 |
-k | 设置字段范围 |
touch
命令:
用于创建空白文件或者设置文件时间格式。
参数 | 作用 |
---|---|
-a | 仅修改 访问时间(Atime) |
-m | 仅修改 修改时间(Mtime) |
-d | 同时修改 Atime 和 Mtime |
touch -d "2022-04-11 22:28" anaconda-ks.cfg
cp
命令:
复制文件或者目录。
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若对象为 链接文件 ,则保留该文件的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于 -pdr |
dd
命令:
用于指定大小和个数的数据块来复制文件或者转换文件,语法格式:dd if=参数值 of=参数值 count=参数值 bs=参数值
参数 | 作用 |
---|---|
if | 输入文件的名称 |
of | 输出文件的名称 |
bs | 设置这个块 的大小,默认单位是字节 |
count | 设置要复制 块 的个数 |
count*bs=总数
dd if=/dev/zero of=560_file count=1 bs=560M
file
命令:
用于查看文件的类型,语法:file 文件名称
tar
命令:
用于对文件进行打包压缩或者解压,linux
中主要使用 .tar
,.tar.gz
,.tar.bz2
格式。
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包都有哪些文件 |
-z | 用 gzip 压缩或者解压 |
-j | 用 bzip2 压缩或者解压 |
-v | 显示压缩过程 |
-f | 目标文件名 |
-P | 保留原始的权限和属性 |
-p | 使用绝对路径进行压缩 |
-C | 指定解压到的目录 |
2. 管道符
重定向分为两种,输出重定向
和输入重定向
。
输出重定向就是将数据信息写入到指定的文件,而输出重定向又分为标准输出重定向
和错误输出重定向
,以及覆盖写入
和追加写入
两种模式。
-
标准输入重定向(STDIN,文件描述符为:0): 默认从键盘输入,也可以从其他文件或命令中输入
-
标准输出重定向(STDOUT,文件描述符为:1): 默认输出到屏幕
-
错误输出重定向(STDERR,文件描述符为:2): 默认输出到屏幕
输入重定向中符号
符号 | 作用 |
---|---|
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分界符 | 从标准输入中读入,直到遇见分界符才停止 |
命令 < 文件 1 > 文件 2 | 将文件 1 作为命令的标准输入并将标准输出到文件 2 |
输出重定向中
符号 | 作用 |
---|---|
命令 > 文件 | 将标准输出重定向到一个文件中(清空原有文件的数据) |
命令 2> 文件 | 将错误输出重定向到一个文件中(清空原有文件的数据) |
命令 >> 文件 | 将标准输出重定向到一个文件中(追加原有内容的后面) |
命令 2>> 文件 | 将错误输出重定到一个文件中(追加到原有内容的后面) |
命令 >> 文件 2>&1 或者 命令 &>> 文件 | 将标准输出与错误输出共同写入到文件中(追加原有内容到后面) |
3. 通配符
符号 | 作用 |
---|---|
* | 任意字符 |
? | 单个任意字符 |
[a-z] | 单个小写字母 |
[A-Z] | 单个大写字母 |
[0-9] | 单个数字 |
[[:alpha:]] | 任意字母 |
[[:upper:]] | 任意大写字母 |
[[:lower:]] | 任意小写字母 |
[[:digit:]] | 所有数字 |
[[:alnum:]] | 任意字母+数字 |
[[:punct:]] | 标点符号 |
栗子:
使用通配符创建文件
touch {AA,BB,CC}.conf
[]
符号有则显示,没有则不显示。{}
符号有则显示,没有则报错。
常用的转义符:
- 反斜杠(
\
): 使用反斜杠后面的一个变量变为单纯的字符。 - 单引号(
''
): 转义其中所有的变量为单纯的字符串。 - 双引号(
""
): 保留其中的变量属性,不进行转义处理。 - 反引号(``): 把其中的命令执行后并返回结果
4. 环境变量
创建别名命令语法:alias 别名=命令
,取消一个命令别名语法:unalias 别名
栗子:
unalias rm
使用 type
命令可以查看,判断用户输入的是外部命令还是内部命令。内部命令 解释器内部的指令,会被直接执行。
参数名称 | 作用 |
---|---|
HOMR | 用户的主目录(即家目录) |
SHELL | 用户使用的 Shell 解释器名称 |
HISTSIZE | 输出的历史命令记录条数 |
HISTFILESIZE | 保存的历史历史记录条数 |
邮件保存路径 | |
LANG | 系统语言,语系名称 |
RANDOM | 生成一个随机数字 |
PS1 | Bash 解释器的提示符 |
PATH | 定义解释器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本解释器 |
我们一般定义的变量,他不惧有全局性,作用范围业有限,默认情况下不被其他的用户使用。如果需要,我们可以将他升级为一个全局变量,这样其他的用户也可以使用了。栗子:
export WORKDIR
后续如果不需要这个变量可以使用 unset
命令取消掉即可:
unset WORKDIR