第一天学习--常用系统工作命令
常见的yum命令
yum repolist all 列出所有仓库
yum list all 列出仓库中所有软件包
yum info XXX 查看软件包信息
yum install XXX 安装软件包
yum reinstall XXX 重新安装软件包
yum update XXX 升级软件包
yum remove XXX 移除软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall XXX 安装指定的软件包组
yum groupremove XXX 移除指定的软件包组
yum groupinfo XXX 查询指定的软件包组
systemd初始化进程
systemctl enable XXX.service 开机自动启动(启用)
systemctl disable XXX.service 开机不启动(禁用)
systemctl is-enable XXX.service 查看特定服务是否为自启动
systemctl list-unit-files–type=service 查看各个级别下服务的启动与禁用情况
systemctl start XXX.service 启动服务
systemctl stop XXX.servuce 停止服务
systemctl restart XXX.service 重启服务
systemctl reload XXX.service 重新加载配置文件(不终止服务)
systemctl status XXX.service 查看服务状态
功能命令
echo 用户把指定的字符串输出到终端屏幕显示
例子:
echo 你好
!
显示为:
你好!
date 用于显示及设置系统时间或日期
参数 | 作用 |
---|---|
%T | 跳格【Tab键】 |
%H | 小时(00-23) |
%I | 小时(00-12) |
%M | 分钟(00-59) |
%S | 秒(00-59) |
%J | 今年中的第几天 |
例子:
date "+%Y-%m-%d %H:%M:%S"
显示为:2020-07-05 11:18:20
date -s 设置时间,例子如下:
date -s "2020-09-05 23:50:20"
date “+%j” 显示为今天为今年的多少天
reboot 重启系统
poweroff 关机
wget 用于在终端中下载网络问卷,格式为wget 参数 下载地址
参数 | 作用 |
---|---|
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断电续传 |
-p | 下载页面内所有的资源,包括(图片、视频等) |
-r | 递归下载 |
例子:
wget -p www.baidu.com
wget www.XXX.com/XXX.pdf
ps用于查看系统中的进程状态,格式为ps 参数
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
linux系统中有5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止
☆R(运行)进程运行中
☆S(中断)进程处于休眠中
☆D(不可中断)进程不影响系统异步信号,就算kill命令也不能将其中断
☆Z(僵死)进程已经终止,但没有释放
☆T(停止)停止运行
例子:使用ps -aux 查看进程如下表所描述
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
进程的所有者 | 进程ID号 | 运算器的占用率 | 内存占用率 | 虚拟内存kb | 占用固定内存kb | 所在终端 | 进程状态 | 被启动时间 | 实际使用CPU时间 | 命令名称与参数 |
root | 1 | 0.0 | 0.4 | 53684 | 7628 | ? | Ss | 07:22 | 0:02 | /usr/lib/systemd/systemd |
root | 2 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [kthreadd] |
top 用于查看系统状态,类似于windows任务管理器
☆ 第1行:系统时间、运行时间、登录终端数、系统负载(三个数值,分别是1分钟、5分钟、15分钟内的平均值,数值越小以为负载月底)
☆ 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止进程数、僵死进程数。
☆ 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲资源百分比
☆ 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量
☆ 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量
pidof用于查询某个指定的服务进程PID值,格式为pidof 参数 服务名称
例子: pidof java
会显示为2156
kill用于终止某个指定PID的服务进程,格式kill 参数 进程pid
例如:kill -9 2156
killall java
终止java服务全部进程
ifconfig 获取网卡配置命令,格式为ifconfig 网络设备 参数
uname 查看系统版本和内核命令,例如uname -a
uptime 查看系统负载信息
free 查看系统中内存使用信息,例如free -h
who 查看当前登入主机的用户终端信息
last 查看所有系统的登录记录
history 显示历史执行过的命令,而history -c 则会清空所有历史记录,它保存在用户家目录.bash_history中
sosreport 搜集系统配置及架构信息并输出诊断文档
pwd 显示用户当前所处工作目录
cd 切换工作路径(目录)
ls 显示目录中文件信息(较少信息),例如ls -a 查看所有文件信息,包含隐藏,而ls -ld 则是查看目录属性信息
cat 查看纯文本信息,例如cat -n 123
显示123文本信息且显示行号
more 查看纯文本信息(较多信息)
head 查看纯文本前N行,例如head -n 10 123
tail 查看纯文本后N行
tr 替换文本文件中的字符,格式为tr 原始字符 目标字符,例如cat 123 | tr[a-z] [A-Z] 就是把文本123中小写英文从a-z换成大写
wc 用户统计文本的行数、字数、字节数,格式为wc 参数 文本
wc -l 123 只显示行数
wc -w 123 只显示单词数
wc -c 123 只显示字节数
stat 查看文件的具体存储信息和时间等信息,例如 stat 123
,其中Access为访问时间,Modify为修改时间,Change 属性改变时间
cut 用于按列提取文本字符,格式为cut 参数 文本,例如cut -d: -f1 /etc/passwd
其中-f参数设置需要看的列数,-d参数来设置间隔符号
diff 用于比较多个文本文件的差异,格式为diff 参数 文件,例如diff --brief 1.log 2.log
显示比较后的结果,判断文件是否相同。diff -c 1.log 2.log
显示描述文本内容具体的不同
touch 创建控本文本或设置文件时间,例如touch 123
创建个123的文本,touch -d "20:20:20" 123
会同时将123的 访问和修改时间改掉。
mkdir 创建目录,例子mkdir abc
,例子mkdir -p 1/2/3
会递归创建1文件夹下面2和3文件夹
cp 赋值文件或目录,格式cp 选项 源文件 目标文件
☆ 如果目标文件是目录,则会把源文件复制到该目录
☆ 如果目标文件也是普通文件,则会询问是否覆盖
☆ 如果目标文件不存在,则执行正常的复制创建操作
参数 | 作用 |
---|---|
-P | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
-r | 递归复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr上述参数 |
mv 用于剪切文件或者文件重命名,格式为mv 选项 源文件 [目标路径 | 目标文件名] |
rm 删除文件或目录
dd 用于按照指定大小和个数的数据块来复制文件或转换文件,格式为dd 参数
参数 | 作用 |
---|---|
if | 输入的文件名 |
of | 输出的文件名 |
bs | 设置每“块”的大小 |
count | 设置要复制“块”的个数 |
例如我们可以用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存为560_file的文件,理解这个命令后,以后就能随意创建任意大小的文件。例如:
dd if=/dev/zero of=560_file count=1 bs=560M
dd命令的功能也绝不仅限于复制文件这么简单,在Linux系统中可以直接使用dd命令来压制出光盘镜像文件。例如:
dd if=/dev/cdrom of=RHEL-server-7.0-86x_64-Linux.iso
考虑到大家纠结bs块大小与count块的个数的关系,下面举个例子解释。假设小明的饭量(即需求)是一个固定值,用来盛饭的勺子的大小(即bs大小),而勺子盛饭的次数(即count次数)。小明想吃饱(满足需求),则需求要在勺子的大小与用勺子盛饭的次数之间进行平衡。勺子越大,盛饭次数越少。由此可见,bs与count都是用来指定容量的大小,只要能满足需求,可随意组合搭配。
file 查看文件的类型,格式为file 文件名
tar用于压缩和解压的命令,格式为tar 选项 文件
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 保留绝对路径来压缩 |
-C | 指定解压目录 |
打包压缩例子:tar -czvf 123.gz 123
解压例子:tar -xzvf 123.gz
grep用于在文本中执行关键词搜素,并显示匹配的结果,格式为grep 选项 文件
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当做文本文件(text)来搜素 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择—仅列出没有“关键词”的行 |
例子:grep oo 123
提取123文本内容中关于00的内容并显示出来
find 按照指定条件来查找文件命令,格式为find [查找路径] 寻找条件 操作
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
–type b/d/c/p/l/f | 匹配文件的类型(后面字母参数依次表示块设备、目录、字符设备、管理链接文件、文本文件) |
-size | 匹配文件的大小(+50KB 为查找超过50KB的文件,而-50KB则查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec …{} \; | 后面可跟用于进一步处理搜索结果的命令 |
这里重点说下-exec参数的重要作用,它是把find搜索到的结果郊游紧随其后的命令进一步处理。
在/ l o g s目录中查找更改时间在7日以前的文件并删除它们例子:
find logs/ -type f -mtime +7 -exec rm -f {} \;
查找etc目录里文件名为host并显示出来例子
find /etc -name "host" -print
查找系统中权限包括suid权限的所有文件例子
find / -perm -4000 -print
整个文件系统中找出所有属于root用户的文件并复制到/opt/123目录中例子
find / -user root -exec cp -a {} /opt/123/ \;