个人主页:SueWakeup
系列专栏:学习技术栈
个性签名:保留赤子之心也许是种幸运吧
目录
文件与目录管理
目录操作命令:
ls [选项] [目录或文件]
mkdir
文件操作命令:
cp [选项] 源文件或目录 目标文件或目录
rm [选项] 文件或目录
mv [选项] 源文件或目录 目标文件或目录
which 命令 显示命令所在位置
find [路径] [表达式]
cat [选项] [文件]
more / less / head / taill 命令
wc [参数] [文件]
grep [选项] [模式]
gzip [文件名]
tar [选项] [文件名]
创建归档文件
解压缩归档文件
查看归档文件内容
在归档中追加文件
用户及权限管理
用户和组的管理
groupadd [选项] 组名
groupdel 组名
useradd [选项] 用户名
passwd [用户名]
usermod [选项] 用户名
userdel [用户名]
id [用户名]
who / w
文件权限管理
chmod 命令
chown 命令
vim 编辑器
行内命令模式
行间命令模式
字符串的查找
文件内容的复制粘贴删除
删除单个字符
输入模式
末行模式
禁用SELinux
磁盘及文件系统管理
对分区格式化 ext4/xfs 文件格式
挂载分区到挂载点上
临时挂载
卸载文件系统
将配置文件刷新重新挂载
查看全部分区的 UUID 和类型
开机自动挂载的配置文件
内核读取新分区表
swap 交换分区
LVM逻辑卷管理
文件系统的拓展
软件安装和管理
rpm
yum
服务管理和计划任务
服务管理
防火墙
查看进程
终止进程
任务的前台调度
计划任务
网络配置
手机端浏览本文章可能会出现 “目录”无法有效展示的情况,还请谅解!
文件与目录管理
目录操作命令:
cd 切换工作目录
pwd 查看当前工作目录所处位置
ls [选项] [目录或文件]
- 用于查看目标目录或文件
ls [选项] [目录或文件]
ls -l 长格式显示,包括文件权限、所有者、大小等信息
ls -a 显示所有文件和目录,包括隐藏文件(以.开头的文件)
ls -h 与 -l 一起使用时,以可读性更好的方式显示文件大小(如 KB、MB、GB)
ls -r 逆序显示文件和目录列表
ls -t 按照文件修改时间排序
ls -S 按照文件大小排序
ls -R 递归列出目录及其子目录的内容
ls -d */ 列出当前目录下的所有子目录
ls *.cfg 列出当前目录下所有以 .cfg 扩展名结尾的文件
* 匹配零个或多个字符。
? 匹配单个字符。
mkdir
- 用于创建目录
mkdir dir0 dir1 dir2 同时创建多个目录,分别为 dir0、dir1 和 dir2
mkdir -p /tmp/practice/dir0
创建递归目录,如果 /tmp/practice/ 不存在,mkdir 命令会先创建 practice 目录,
然后在其中创建 dir0 目录
rmdir [目录名] 删除空目录
du -sh [文件或目录名] 查看文件或目录的大小,并以易读的格式(如 KB、MB、GB)显示
文件操作命令:
touch 生成一个空文件,或者修改一个已存在文件的时间戳(访问时间和修改时间)
file 文件/目录 查看文件类型
cp [选项] 源文件或目录 目标文件或目录
- 用于复制文件或目录
cp [选项] 源文件或目录 目标文件或目录
cp -r或-R 递归复制目录及其内容
cp -i 在覆盖目标文件前提示用户确认
cp -u 只在源文件比目标文件新或目标文件不存在时,才复制源文件
cp -v 详细模式,显示正在复制的文件名
cp -f 强制复制,如果目标文件已存在,则覆盖且不提示
cp -p 保留源文件或目录的属性,如时间戳、访问权限等
rm [选项] 文件或目录
- 用于删除文件或目录
rm [选项] 文件或目录
rm -r或-R 递归删除目录及其中的所有文件和子目录
rm -f 强制删除,不提示用户确认
rm -i 在删除每个文件或目录前提示用户确认
rm -v 详细模式,显示正在删除的文件或目录名
rm -rf 强制递归删除目录及其中的所有文件和子目录,且不提示用户确认
mv [选项] 源文件或目录 目标文件或目录
- 用于移动文件或目录,或者重命名文件或目录
mv [选项] 源文件或目录 目标文件或目录
mv -i 在覆盖目标文件之前提示用户确认
mv -u 只在源文件比目标文件新或目标文件不存在时,才移动或重命名源文件
mv -v 详细模式,显示正在移动或重命名的文件名
mv oldname.txt newname.txt
重命名文件的示例,将 oldname.txt 文件重命名为 newname.txt。
mv file.txt dir/ 将 file.txt 文件移动到 dir 目录下
mv file.txt dir/doc.txt
将 file.txt 文件重命名为 doc.txt 并移动到 dir 目录下
mv old_dir new_location/new_dir
将 old_dir 目录移动到 new_location 目录下,并将其重命名为 new_dir
mv filel.txt file2.txt file3.txt dir/
将 file1.txt、file2.txt 和 file3.txt 这三个文件移动到 dir 目录下
which 命令 显示命令所在位置
find [路径] [表达式]
- 用于在指定路径下查找符合表达式的文件
find [路径] [表达式]
find -name 按文件名查找
find -type 按文件类型查找
find -size 按文件大小查找
find -mtime 按文件修改时间查找
find -user 按文件所有者查找
find -group 按文件所属组查找
find /path -name 'file*' 用于查找匹配的文件
find 目录 -name 'file*' 在指定的目录下查找文件名包含 file 的所有文件
find 目录-type f/d
f 表示查找普通文件,d 表示查找目录。例如,find /path -type f 会查找 /path 下的所有普通文件,而 find /path -type d 会查找所有的目录。
*匹配多个字符
?匹配单个字符
cat [选项] [文件]
- 用于查看文件内容
cat [选项] [文件]
cat -n 或 --number 为输出的每一行加上行号
cat -b 或 --number-nonblank 仅对非空行进行编号。
cat -A 或 --show-all 用于显示所有字符,包括不可见的字符(如制表符和行尾符)
cat file1.txt file2.txt 合并输出 file1.txt 和 file2.txt 的内容
cat file1.txt file2.txt > redirect.txt
重定向 file1.txt 和 file2.txt 的合并输出到redirect.txt 文件中,如果 redirect.txt 已存在,则会覆盖
重定向输出 '>>'追加
使用 >> 可以将输出追加到文件中,而不是覆盖文件。例如,cat file1.txt file2.txt >> redirect.txt 会将内容追加到redirect.txt 文件的末尾
more / less / head / taill 命令
- 用于查看文件内容
more 文件名 用于分页查看文件内容
使用空格键翻到下一页,回车键查看下一行,b 键翻到上一页,q 键退出
less 文件名 用于分页查看文件内容
但与 more 不同的是,less 允许用户使用上下箭头键滚动一行或一页,q 键退出
head -n 文件名 用于查看文件的前 n 行内容
例如,head -n 10 file.txt 会显示 file.txt 文件的前10行
tail -n 文件名 用于查看文件的最后 n 行内容
例如,tail -n 10 file.txt 会显示 file.txt 文件的最后10行
tail -f 文件名 用于动态查看文件的内容,即实时显示文件内容的更新
wc [参数] [文件]
- 根据参数输出统计信息
wc [参数] [文件]
wc -l 用于只统计行数
wc -w 用于只统计字数(word)
这里的“字”通常指的是由空白字符(如空格、制表符、换行符等)分隔的字符串
wc -c 用于只统计字节数
wc -L 用于显示最长行的长度。
wc 文件名 默认输出文件的行数、单词数和字节数。
grep [选项] [模式]
- 在文件中搜索包含指定模式的行
grep [选项] [模式]
grep -i 搜索时不区分大小写
grep -v 显示不匹配模式的行。
grep -r 或 -R 不仅在当前目录中搜索,还在子目录中搜索。
grep -l 用于只列出包含匹配行的文件名,而不显示匹配的具体内容
grep -n 用于显示匹配行及其行号
grep -w 用于只匹配整个单词,即模式必须是一个完整的单词,而不是单词的一部分
grep '关键词' 文件 用于从文件中过滤出包含“关键词”的行
grep '关键词$' 文件 用于从文件中过滤出以“关键词”结尾的行
cat /etc/passwd | grep root 显示 /etc/passwd 文件中包含“root”的行
gzip [文件名]
- 使用GNU zip压缩算法压缩文件
gzip 文件名
将指定的文件压缩,并在原文件所在位置创建一个同名但扩展名为 .gz 的压缩文件
原文件会被替换为压缩后的文件
gzip -d 文件名.gz
解压缩指定的 .gz 文件,并恢复其原始内容
tar [选项] [文件名]
- 用于创建、查看、解包和修改tar归档文件
tar -c 用于创建一个新的tar归档文件
例如,tar -czvf archive.tar.gz /path/to/directory 会创建一个名为 archive.tar.gz 的归档文件,其中包含 /path/to/directory 目录的内容,并使用gzip进行压缩
tar -C 用于解包时指定目录
例如,tar -xzf archive.tar.gz -C /new/path 会将 archive.tar.gz 解压到 /new/path 目录。
tar -d 用于从tar归档文件中删除某个文件。
例如,tar -rf archive.tar --delete /path/to/file 会从 archive.tar 中删除 /path/to/file。
tar -r 用于将文件追加到tar归档文件中
例如,tar -rf archive.tar /path/to/file 会将 /path/to/file 追加到 archive.tar 中。
tar -x 用于解压缩tar归档文件中的文件及目录
例如,tar -xzf archive.tar.gz 会解压 archive.tar.gz。
tar -f ARCHIVE 用于指定将要创建或已存在的归档文件名
例如,tar -czvf -f archive.tar.gz /path/to/directory。
tar -v 用于显示命令整个执行过程
例如,tar -czvf archive.tar.gz /path/to/directory。
tar -z 用于对归档文件使用gzip压缩
例如,tar -czvf archive.tar.gz /path/to/directory。
tar 命令的选项可以组合使用,例如 -czvf 是 -c(创建)、-z(gzip压缩)、-v(详细输出)和 -f(指定文件名)的组合。
创建归档文件
tar -cvf a.tar file1 file2
创建一个名为 a.tar 的归档文件,并将 file1 和 file2 添加到归档中。
tar -czvf a.tar.gz dir
创建一个名为 a.tar.gz 的归档文件,并将 dir 目录及其内容压缩为 gzip 格式。
解压缩归档文件
tar -xvf a.tar 解压缩名为 a.tar 的归档文件
tar -xzvf a.tar.gz 解压缩名为 a.tar.gz 的 gzip 压缩归档文件
查看归档文件内容
tar -tvf a.tar 以详细模式显示名为 a.tar 的归档文件中的文件列表
tar -tzvf a.tar.gz 以详细模式显示 a.tar.gz 的 gzip 压缩归档文件中的文件列表
在归档中追加文件
tar -rvf a.tar newfile 将 newfile 追加到名为 a.tar 的归档文件中
用户及权限管理
用户和组的管理
用户账号文件默认位置:
/etc/passwd 包含用户账号信息,如用户名、用户ID、用户主目录等
/etc/shadow 包含用户密码信息的加密版本,通常用于存储加密后的密码
组账号文件默认位置:
/etc/group 包含组账号信息,如组名、组ID、组成员等
groupadd [选项] 组名
- 创建新组
groupadd -g,--gid 指定新组的组ID
groupadd -r,--system 创建系统组
groupdel 组名
- 删除组
useradd [选项] 用户名
- 创建新用户
useradd -u uid 号 指定新用户的用户ID
useradd -g 组名或号 指定新用户的初始组
useradd -G 附加组名 指定新用户所属的附加组
passwd [用户名]
- 设置或更改用户密码。
echo '123456' | passwd --stdin 用户名 使用标准输入设置密码
usermod [选项] 用户名
- 用于修改用户的账户信息
usermod -l,--login NEW_LOGIN 修改用户的用户名
例如,usermod -l new_login username
usermod --uid 修改用户的用户 ID
例如,usermod --uid 1001 username
usermod -g,--gid 修改用户的用户组 ID
例如,usermod -g new_group_id username
usermod -d,--home HOME_DIR 修改用户的家目录
例如,usermod -d /new/home username
usermod -e,--expiredate DATE 设置用户的账户过期时间
例如,usermod -e 2024-06-30 username
usermod -G 附加组名 用户名 修改用户的附加组
例如,usermod -G new_group username
usermod -p '密码' 用户名 设置用户的密码
例如,usermod -p 'new_password' username
usermod -s /bin/bash 用户名 修改用户的登录shell
例如,usermod -s /bin/bash username
usermod -s /bin/nologin 用户名 修改用户的登录shell为 /bin/nologin,这会阻止用户登录.
例如,usermod -s /bin/nologin username。
userdel [用户名]
- 用于删除用户账号
userdel -r 用户名 删除用户账户并删除家目录
id [用户名]
- 查看用户的uid、gid、groups
who / w
- 查看目前登录的用户
文件权限管理
rwxrwxrwx 这是文件权限的八进制表示法,其中:
r:文件中只能读取文件内容 目录会列出存储在该目录下的文件
w:文件可以打开并修改 目录中允许删除或添加新的文件
x:文件可以做程序执行 允许在目录中查找,可 cd 进入该目录
7(421)77 文件权限的八进制表示法,其中:
4:读权限(r)
2:写权限(w)
1:执行权限(x)
chmod 命令
- 用于改变文件或目录的权限
chmod u+rwx,g+rw,o+rx 目录名
为所有者添加读写执行权限,为组添加读写权限,为其他用户添加读执行权限
chmod o=rwx 目录名 为其他用户设置读写执行权限
chmod 777 文件名 为所有者、组和其他用户设置读写执行权限
chown 命令
- 用于改变文件或目录的所有者和组
chown newuser filename 更改文件的所有者为 newuser
chown newuser:newgroup filename 更改文件的所有者为 newuser,组为 newgroup
chown -R newuser:newgroup dir 递归更改目录 dir 及其所有子目录和文件的所有者和组
chown -R newuser:newgroup dir 递归更改目录 dir 及其所有子目录和文件的所有者和组
chgrp newgroup filename 更改文件所属的组为 newgroup。
vim 编辑器
行内命令模式
^ 到行首 将光标移动到行首
$ 到行尾 将光标移动到行尾
行间命令模式
G 末尾行 将光标移动到当前缓冲区的末尾行
1G 或 gg 第几行 将光标移动到第 1 行或第 gg 行
nG 下一个 将光标移动到下一个 G 标记的行
N 上一个 将光标移动到上一个 N 标记的行
字符串的查找
/字符串 自上而下 从光标所在位置向下查找字符串
?字符串 自下而上 从光标所在位置向上查找字符串
n 下一个 查找下一个匹配的字符串
N 上一个 查找上一个匹配的字符串
文件内容的复制粘贴删除
dd 剪贴当前行 删除当前行。
yy 复制当前行 复制当前行。
P 复制到上一行 将复制的内容粘贴到上一行。
p 复制到下一行 将复制的内容粘贴到下一行。
删除单个字符
X 向前删除 向前删除光标位置的字符。
x 向后删除 向后删除光标位置的字符。
5x 向后删5个字符 向后删除光标位置后的 5 个字符。
输入模式
a:光标下一个字符进入 在光标位置后面插入文本并进入插入模式。
i:光标前一个字符进入 在光标位置前面插入文本并进入插入模式。
o:光标所在行的下一行进入 在光标所在行的下一行开始插入文本。
A:光标下一行行尾进入 在光标所在行的下一行行尾插入文本。
末行模式
set nu 显示行号
set nonu 隐藏行号
s/旧字符串/新字符串 在当前行内替换旧字符串为新字符串
:%s/旧字符串/新字符串/g 在所有行中替换旧字符串为新字符串
:%s#/etc/passwd#/etc/shawad#g 在所有行中替换 /etc/passwd 为 /etc/shawad
禁用SELinux
getenforce 用于查看 SELinux 的当前强制模式(enforcing 或 permissive)
配置文件 /etc/sysconfig/selinux 修改 selinux=disabled
磁盘及文件系统管理
df -Th 用于查看当前磁盘分区和分区情况
-Th 选项表示以表格形式显示磁盘使用情况,包括文件系统类型
lsblk 用于列出所有的磁盘和分区,以及它们的状态和挂载点
fdisk -l 用于列出所有可用的磁盘和分区
fdisk /dev/sdb 用于进入 /dev/sdb 分区的交互式分区表编辑器。
n:添加新分区。
p:打印当前分区表。
w:保存分区表。
t:改变分区的类型。
对分区格式化 ext4/xfs
文件格式
mkfs.ext4 用于创建 ext4 文件系统的分区,而 mkfs.xfs 用于创建 xfs 文件系统的分区
挂载分区到挂载点上
mount /dev/sdb1 /data 用于将 /dev/sdb1 分区挂载到 /data 目录
临时挂载
mount /dev/sdb1 /data 用于临时挂载分区
卸载文件系统
umount /data 用于卸载挂载点
将配置文件刷新重新挂载
mount -a 用于重新挂载所有在 /etc/fstab 文件中定义的文件系统
查看全部分区的 UUID 和类型
blkid 用于显示磁盘和分区的 UUID、类型和标签
开机自动挂载的配置文件
/etc/fstab 用于配置系统启动时自动挂载的文件系统
内核读取新分区表
partx -a 或 partprobe 用于通知内核重新扫描分区表,以便挂载新的分区
swap 交换分区
free -m:用于显示内存使用情况,其中 -m 选项表示以兆字节为单位显示内存使用情况。
fdisk 使用 t 选项可以改变分区的类型
例如,fdisk /dev/sdb2 进入 /dev/sdb2 分区的交互式分区表编辑器,然后使用 t 命令改变分区类型。
mkswap 格式化swap
swapon -s 用于列出当前的交换分区。
拓展分区:可以使用 fdisk 命令将最后一个分区做拓展分区,在里面做逻辑分区(最多12个)。
gdisk 或 parted 使用 gpt 分区表格式化磁盘。
LVM逻辑卷管理
pvcreate /dev/sdc1 /dev/sdc2 用于创建物理卷
其中 /dev/sdc1 和 /dev/sdc2 是物理卷的设备文件
pvs 或 pvdisplay 用于查看物理卷信息
vgcreate vg_myvg /dev/sdc1 /dev/sdc2 创建卷组
vgs 或 vgdisplay 用于查看卷组信息。
lvcreate -L 1G -n lvmylv vg myvg 用于创建逻辑卷
其中 -L 1G 指定逻辑卷的大小为 1GB,-n lvmylv 指定逻辑卷的名称,vg myvg 指定逻辑卷所属的卷组
lvs 或 lvdisplay 用于查看逻辑卷信息
在线拓展 LVM 文件系统:
使用 lvresize -L +?G 命令在线扩展逻辑卷的大小
然后 resize2fs 调整 ext2、ext3 或 ext4 文件系统的大小
文件系统的拓展
resize2fs 卷名 用于在线扩展 ext4 文件系统的大小
xfs_growfs 挂载点 对于 xfs 文件系统,使用 xfs_growfs 命令来在线扩展文件系统的大小
vgextend 卷组名 物理卷路径
用于在线扩展卷组的大小,其中 卷组名 是要扩展的卷组,物理卷路径 是要添加到卷组的物理卷。
软件安装和管理
rpm
- 用于管理rpm软件包
rpm -qa 列出系统中已安装的所有 RPM 软件包
rpm -qf 查找安装了指定文件的软件包
rpm ~q1 列出由指定软件包提供的所有目录和文件
rpm -ivh 安装软件包,其中 -i 表示安装,-v 表示详细输出,-h 表示显示进度条
rpm -e 卸载软件包
yum
- 用于管理软件包
yum search 搜索软件名或关键字
yum list 列出当前 YUM 所管理的所有软件名称与版本
yum install 安装软件包,&& 符号是错误的,应该是 |
yum remove 移除软件包
yum clean [packages headers all] 删除已下载的软件包文件、文件头或所有软件库数据
yum makecache 生成新的缓存
yum rm -rf /var/cache/yum 删除磁盘中的 YUM 缓存
服务管理和计划任务
服务管理
systemctl list-units 用于列出所有启动的服务
systemctl list-unit-files 用于查看服务开机是否启动
systemctl status sshd.service 用于查看服务的状态
防火墙
systemctl status firewalld 用于查看 firewalld 的状态
systemctl is-enabled firewalld 用于检查服务是否开机启动。
systemctl disable firewalld 用于禁用 firewalld,使其开机不启动
systemctl stop firewalld 停止 firewalld
networkmanger 服务关闭,作为服务器,自己控制网络配置
查看进程
ps aux/ps -ef 用于查看进程信息,aux 选项提供了更多详细信息,包括多 CPU 信息
top 用于动态查看进程
1 行:系统时间,登录用户数,系统平均负载
2 行:任务信息(total, running, sleeping, stopped, zombie)
3 行:CPU 区域
us,user:用户空间的CPU百分比
sy,system:内核空间占用的CPU百分比
ni,niced:调整过优先级的用户进程占用的CPU百分比
id,idle:空闲CPU的百分比
wa,IO wait:用于等待IO完成的CPU时间
4 行:内存区域
5 行:交换空间区域(total, free, used)
6 行:进程列表区(PID,user,.....)
终止进程
ctrl + c 用于终止当前命令,适用于前台命令
kill -9 用于强制杀死进程,通常用于结束无法正常停止的进程
killall top 用于杀死全部终端的top
pkill -9 -t pts/0 用于根据特定条件终止进程,其中 -t pts/0 指定终端类型
任务的前台调度
command & 在命令执行的同时可以继续输入其他命令
at 用于安排在指定时间执行命令
nohup sh test.sh & 关闭终端也不会停止命令的执行
jobs 用于查看当前终端中所有后台任务的状态
fg 任务号 用于将指定的后台任务恢复到前台执行
ctrl + z 用于将任务挂起,即暂停任务
bg 任务号 用于将挂起的任务恢复到后台执行
kill -9 %任务号 用于强制杀死后台任务
计划任务
systemctlstatuscrondcrond服务状态
/etc/crontab 存放了一些系统运行的调度程序以及格式说明(分,时,天,月,周)
/etc/cron,deny 不能使用 crontab 的用户
/etc/cron.allow 能使用的用户
不存在这俩文件,只有root用户可以安排计划任务
crontab [选项] 用于设置定时任务
-u <用户名称> 用于指定设置定时器的用户
-e 用于编辑计划任务。
-r 用于删除计划任务。
-l 用于查看计划任务。
网络配置
ifconfig 用于查看网络接口配置信息
ip addr 用于显示所有设备的 IP 地址
ip addr show ens33 用于显示 ens33 网络接口的 IP 地址
ping 用于测试网络连接
ping pingip -c 2 用于对 pingip 进行两次 ping 操作
ethtool 用于显示和修改网络接口的硬件信息
ethtool ens33 用于显示 ens33 网络接口的信息
traceroute 用于追踪数据包到达目标主机所经过的路由
traceroute ip 用于追踪数据包到达 ip 的路由信息
hostname 用于显示或设置当前主机的名称
hostname -i 用于返回对应主机的解析 IP
/etc/hostname 用于配置主机名
/etc/hosts 用于将主机名映射到 IP 地址。
网卡配置文件:
/etc/sysconfig/network/network-scripts/ifcfg-ens33