1.基本命令
命令 | 功能描述 |
d | 注意: d 本身在大多数 Linux 和 Unix-like 系统中并不是一个用于切换目录的命令。可能是您提到的某个特定环境或别名中的用法。 |
cd | 切换当前工作目录到指定的路径。 |
cd ~ | 切换到当前用户的家目录。 |
cd . | 当前目录已经是当前目录,所以实际上不会改变路径。但命令本身没有错误。 |
cd .. | 切换到上一级目录。 |
cd ../.. | 切换到上上级目录。 |
cd - | 切换到上一次的目录(即,在 cd 历史中上一次访问的目录)。 |
ls | 列出当前目录的内容。 |
ls -l | 以长格式(详细信息)列出目录内容,包括文件权限、所有者、大小、时间戳等。 |
ls -a | 列出当前目录中的所有文件,包括隐藏文件(以 . 开头的文件)。 |
ls -d | 仅列出目录本身的信息,而不是其内容。 |
ls -h | 以人类可读的格式(如 KB、MB、GB)显示文件大小。 |
ls -lh | 结合 -l 和 -h 的选项,以长格式列出目录内容并显示人类可读的文件大小。 |
2.命令别名管理表格
命令 | 功能描述 |
alias 别名='命令' | 给指定的命令起一个别名,以便通过别名来执行该命令。例如, alias ll='ls -l' 将允许你通过输入ll来执行ls -l命令。 |
alias | 显示当前已设置的所有命令别名。 |
unalias 别名 | 取消指定命令的别名。例如unalias ll将取消 ll 别名,之后你将无法再通过 ll 来执行 ls -l 命令。 |
unalias -a | 注意 :实际上unalias命令并没有-a选项来取消所有别名。要取消所有别名,你需要手动使用 unalias 命令针对每个别名进行操作,或者通过修改 shell 的配置文件(如 .bashrc 、 .bash_profile 、 .zshrc 等)来移除所有别名定义,然后重新加载配置文件。 |
3.mv 命令功能表格
操作类型 | 命令示例 | 功能描述 |
修改文件名 | mv file1 filea | 将当前目录下的文件 file1 重命名为 filea |
修改目录名 | mv dir1 dira | 将当前目录下的目录 dir1 重命名为 dira |
移动文件到目录 | mv filea dira | 将当前目录下的文件 filea 移动到当前目录下的 dira 子目录中 |
移动文件到家目录 | mv filea ~ | 将当前目录下的文件 filea 移动到当前用户的家目录中 |
移动文件到上一级目录 | mv ~/filea .. | 将家目录下的文件 filea 移动到上一级目录中 |
4.cp 命令功能表格
序号 | 操作类型 | 命令示例 | 功能描述 |
1 | 复制文件 | cp File1 file2 | 将当前目录下的文件 File1 拷贝为 file2 |
2 | 复制文件到目录 | cp file2 dira/ | 将当前目录下的文件 file2 拷贝到 dira 子目录 |
3 | 递归复制目录 | cp -r dira dirb | 复制 dira 目录下的所有内容到 dirb 目录(递归复制) |
4 | 复制并询问(避免覆盖) | cp -i file2 dira/ | 如果 dira 目录下有同名的 file2 ,则询问是否覆盖同名的文件 |
5 | 详细显示复制过程 | cp -v File1 file2 | 复制 File1 为 file2 ,并详细显示复制过程 |
6 | 强制覆盖 | cp -f File1 file2 | 强制覆盖已存的 file2 文件,不询问 |
7 | 静默模式(不提示任何信息) | cp -n File1 file2 | 如果目标文件 file2 已存在,则不覆盖,且不显示任何信息 |
4.mkdir 命令及其描述
命令 | 描述 |
mkdir dir1 | 在当前目录下创建一个名为 dir1 的空目录 |
mkdir /home/dir2 /home/dir3 | 在 /home目录下创建个目录:dir2和dir3 |
mkdir /home/{dir4,dir5} | 使用扩展的shell语法在/home目录下创建两个目录:dir4和dir5 |
mkdir -v /home/{dir6,dir7} | 使用 -v (verbose)选项在 /home 目录下创建两个目录: dir6 和 dir7 ,并显示创建时的详细信息 |
mkdir -p /home/dir8/111/222 | 使用-p选项在/home目下录下创建dir8目录并在其下创建111和222目录(即连级目录) |
5.rmdir 和 rm 命令及其选项
命令/选项 | 描述 |
rmdir | 删除空目录 |
rm -r | 递归删除目录及其内容 |
rm -f | 强制删除,不询问确认 |
rm -v | 详细过程,显示被删除的文件或目录 |
rm * | 删除当前目录下所有以 * 通配符匹配的文件和目录(慎用,可能会删除重要文件) |
rm -rf | 递归并强制删除目录及其内容,不询问确认(非常危险,务必谨慎使用) |
6.touch 命令
命令 | 描述 |
touch file1.txt | 在当前目录下创键一个名为file1.txt 的空文件(如果文件不存在则创建,如果已存在则更新文件的访问和修改时间) |
touch /home/file10.txt | 在/home 目录下创建一个名为file10.txt的空文件 |
touch /home/{zhuzhu,gougou} | 在/home 目录下创建两个空文件:zhuzhu gougou |
touch /home/file{1..20} | 在/home目录下批量创建名为file1到 file20的空文件 |
7.如何使用 > 和 >> 重定向符
命令 | 描述 |
echo 内容 > 文件名 | 将“内容”写入到“文件名”指定的文件中,如果文件已存在,则覆盖原文件内容;如果文件不存在,则创建新文件。 |
echo 123 > a.txt | 将字符串“123”写入到文件“a.txt”中,如果“a.txt”已存在,则覆盖其内容;如果不存在,则创建新文件“a.txt”。 |
echo 内容 >> 文件名 | 将“内容”追加到“文件名”指定的文件末尾,如果文件已存在,则在文件末尾添加新内容;如果文件不存在,则创建新文件。 |
echo 345345 >> a.txt | 将字符串“345345”追加到文件“a.txt”的末尾,如果“a.txt”已存在,则在文件末尾添加新内容;如果不存在,则创建新文件“a.txt”。 |
8.stat 命令
参数/选项 | 描述 |
file | 要查看信息的文件名 |
输出项 | 文件详细信息(大小、块数、I/O块大小、文件类型、设备、Inode、权限、所有者、组、最近访问时间、最近更改时间、最近改动时间、创建时间等) |
9.awk 命令
参数/选项 | 描述 |
-F | 定义字段分隔符,默认为空格 |
'{print $2}' | 打印每行的第二个字段 |
文件路径 | 要处理的文件路径 |
10.sort 命令
参数/选项 | 描述 |
-t | 指定分隔符 |
-k | 指定要排序的列 |
-n | 按数值排序 |
-r | 降序排序 |
head | 默认显示前十行 |
tail | 默认显示后十行 |
11.wc 命令
参数/选项 | 描述 |
-l | 统计行数 |
12.find 命令按文件名查找
参数/选项 | 描述 |
-name | 按文件名查找 |
-iname | 按文件名查找,忽略大小写 |
1.按文件大小查找
参数/选项 | 描述 |
-size | 按文件大小查找 |
+5M | 查找大于5M的文件 |
5M | 查找等于5M的文件 |
-5M | 查找小于5M的文件 |
2.按时间查找
参数/选项 | 描述 |
-atime | 按访问时间查找 |
-mtime | 按内容修改时间查找 |
-ctime | 按属性修改时间查找 |
+5 | 查找5天前的文件 |
-1 | 查找1天内的文件 |
-amin +1 | 查找1分钟前的文件(基于访问时间) |
3.按文件类型查找
参数/选项 | 描述 |
-type | 按文件类型查找 |
f | 普通文件 |
l | 链接文件 |
d | 目录文件 |
b | 块设备文件 |
4.按文件权限查找
示例 | 描述 |
find . -perm 644 | 查找当前目录下权限为644的文件或目录 |
find /usr/bin -perm -4000 | 查找 /usr/bin 下具有set uid权限的文件 |
5.参数传递 (-exec 和 xargs)
示例 | 描述 |
find /etc -name "ifcfg*" -exec cp -rf {} /tmp \; | 使用-exec将找的文件复制到 /tmp 目录 |
`find /home/ -name "test*" | xargs -i cp {} /tmp/` |
13.ping 命令
选项 | 描述 | 示例 |
-c | 指定发送的 ICMP ECHO_REQUEST 数据包数量 | ping -c 3 www.baidu.com |
无选项 | 默认会一直发送 ICMP ECHO_REQUEST 数据包,直到用户中断 | ping www.baidu.com |
1.ntp 命令(通常使用 ntpdate 或 ntpq/ntpc)
工具/命令 | 描述 | 示例 |
ntpdate | 一次性地设置本地日期和时间,使之与指定的 NTP 服务器同步 | ntpdate ntp.example.com |
ntpq | 用来查询 NTP 服务器的状态 | ntpq -p |
ntpc | 一个简单的 NTP 客户端,可以用来测试 NTP 服务器的可达性 | ntpc ntp.example.com |
timedatectl (systemd-timesyncd) | 在使用 systemd-timesyncd 作为 NTP 客户端的系统中,可以用来检查和设置系统时间 | timedatectl status 或 timedatectl set-ntp true |
2.安装和配置 NTP
命令 | 描述 | 示例 |
yum install ntp | 安装 NTP 软件包 | [root@localhost ~]# yum install ntp |
ntpdate ntp.aliyun.com | 使用 ntpdate 手动同步时间到阿里云 NTP 服务器 | [root@localhost ~]# ntpdate ntp.aliyun.com |
ntpdate cn.pool.ntp.org | 使用 ntpdate 手动同步时间到 NTP 网络授时组织的中国授时源 | [root@localhost ~]# ntpdate cn.pool.ntp.org |
14.查找命令位置
命令 | 描述 | 示例 |
which | 查找命令的可执行文件位置 | [root@qfedu.com ~]# which cd (注意: cd 是内建命令,不返回路径) |
15.查看文件内容
1.cat
选项 | 描述 | 示例 |
cat | 查看文件全部内容 | [root@linux-server ~]# cat /etc/passwd |
cat -n | 显示文件内容并添加行号 | [root@linux-server ~]# cat -n /etc/passwd |
cat -A | 显示文件内容并包括控制字符 | [root@linux-server ~]# cat -A /etc/passwd |
2.head
选项 | 描述 | 示例 |
head | 默认查看文件前 10 行 | [root@linux-server ~]# head /etc/passwd |
head -n | 查看文件前 n 行 | [root@linux-server ~]# head -2 /etc/passwd |
3.tail
选项 | 描述 | 示例 |
tail | 默认查看文件后 10 行 | [root@linux-server ~]# tail /etc/passwd |
tail -n | 查看文件后 n 行 | [root@linux-server ~]# tail -1 /etc/passwd |
tail -f | 动态查看文件尾部内容(常用于查看日志文件) | [root@linux-server ~]# tail -f /var/log/secure |
4.grep 过滤关键字
选项/描述 | 示例 |
过滤文件中带有关键字的内容 | [root@linux-server ~]# grep 'root' /etc/passwd |
过滤以关键字开头的行 | [root@linux-server ~]# grep '^root' /etc/passwd |
过滤以关键字结尾的行 | [root@linux-server ~]# grep 'bash$' /etc/passwd |
5.less 分页显示
快捷键/描述 | 示例 |
空格键 | 翻页 |
回车键 | 翻行 |
上下箭头 | 上下翻行 |
/关键字 | 搜索关键字 |
n | 按关键字往下翻 |
N | 按关键字往上翻 |
q | 退出 |
6.more
描述 | 示例 |
分页显示文件内容 | [root@qfedu.com ~]# more 文件名 |
空格键 | 翻页 |
回车键 | 翻行 |
16.用户管理
1.useradd(添加用户)
选项 | 描述 | 示例 |
-M | 不创建用户主目录 | useradd user02 -M |
-r | 创建系统用户 | useradd -r user01 |
-u | 指定UID | useradd user02 -u 503 |
-s | 指定shell | useradd user05 -s /sbin/nologin |
-G | 指定附加组(多个附加组用逗号分隔) | useradd user07 -G it,fd |
-g | 指定用户的主属组(需使用组ID或组名) | useradd -g 1003 user8 |
2.usermod(修改用户属性)
选项 | 描述 | 示例 |
-l | 修改用户登录名(登录shell保持不变) | usermod -l NEW_NAME user8 |
-g | 修改用户的主属组(需使用组ID或组名) | usermod user10 -g new_gid |
-u | 修改用户的UID | usermod -u new_id jack |
-s | 修改用户的登录shell | usermod -s /sbin/nologin user07 |
3.userdel(删除用户)
选项 | 描述 | 示例 |
-r | 完全删除用户及其主目录 | userdel -r user02 |
17.组管理
1.groupadd(添加组)
选项 | 描述 | 示例 |
-g | 指定GID | groupadd net01 -g 2000 |
2.groupmod(修改组属性)
选项 | 描述 | 示例 |
-g | 修改组的GID | groupmod -g 2000 grp1 |
-n | 修改组名 | groupmod -n 新组名 grp1 |
3.groupdel(删除组)
描述 | 示例 |
删除组 | groupdel net01 |
18.组成员管理(gpasswd)
选项 | 描述 | 示例 |
-a | 向组中添加用户 | gpasswd -a user10 grp2 |
-M | 设置组成员列表(会覆盖之前的组成员) | gpasswd -M tom,alice it |
-d | 从组中删除用户 | gpasswd -d user07 hr |
19.用户和组管理
1.chown(改变文件或目录的所属主和所属组)
命令 | 描述 | 示例 |
chown 属主:属组 文件名 | 更改文件或目录的所属主和所属组 | chown alice:hr file1.txt |
chown 属主 文件名 | 更改文件或目录的所属主 | chown tom file1.txt |
chown :属组 文件名 | 更改文件或目录的所属组 | chown :it file1.txt |
chown -R 属主:属组 目录名 | 递归更改目录及其内容的所属主和所属组 | chown -R alice:hr dir1 |
2.chgrp(更改属组)
命令 | 描述 | 示例 |
chgrp 属组 文件名 | 更改文件或目录的所属组 | chgrp hr file1.txt |
chgrp -R 属组 目录名 | 递归更改目录及其内容的所属组 | chgrp -R hr dir1 |
20.权限管理
1.chmod(更改权限)使用符号
命令 | 描述 | 示例 |
chmod u+x 文件名 | 属主增加执行权限 | chmod u+x file1.txt |
chmod a=rwx 文件名 | 所有用户赋予读写执行权限 | chmod a=rwx file1.txt |
chmod a=- 文件名 | 所有用户移除所有权限 | chmod a=- file1.txt |
chmod ug=rw,o=r 文件名 | 属主和属组赋予读写权限,其他用户只读 | chmod ug=rw,o=r file1.txt |
2.使用数字
权限 | 数字表示 |
rwx | 7 |
rw- | 6 |
r-x | 5 |
r-- | 4 |
-wx | 3 |
-w- | 2 |
--x | 1 |
--- | 0 |
命令 | 描述 | 示例 |
chmod 644 文件名 | 属主读写,属组和其他用户只读 | chmod 644 file1.txt |
chmod 755 文件名 | 属主读写执行,属组和其他用户只读执行 | chmod 755 file1.txt |
21.ACL权限
1.getfacl(查看ACL权限信息)
命令 | 描述 | 示例 |
getfacl 文件名 | 查看文件或目录的ACL权限信息 | getfacl file1.txt |
2.setfacl(设定ACL权限)
命令 | 描述 | 示例 |
setfacl -m u:用户名:权限 文件名 | 给指定用户添加ACL权限 | setfacl -m u:alice:rwx file1.txt |
setfacl -m g:组名:权限 文件名 | 给指定组添加ACL权限 | setfacl -m g:hr:r file1.txt |
3.chattr(文件隐藏属性)
命令 | 描述 | 示例 |
lsattr 文件名 | 查看文件隐藏属性 | lsattr file1 |
chattr +a 文件名 | 设置文件为Append Only,只能追加数据 | chattr +a file1 |
chattr +i 文件名 | 设置文件为Immutable,不可修改 | chattr +i file1 |
chattr +A 文件名 | 设置文件不更新访问时间 | chattr +A file1 |
22.管道与重定向
工具/命令 | 描述 | 示例 |
awk | 文本处理工具,用于模式扫描和文本/数据提取 | awk -F "j" '{print $2}' 从以 "j" 为分隔符的文本中提取第二列 |
grep | 文本搜索工具,使用正则表达式搜索文本 | grep 'sd' /home/aaa 搜索包含 "sd" 的行 |
` | ` (管道) | 将一个命令的输出作为另一个命令的输入 |
1.awk 详解
参数 | 描述 | 示例 |
-F | 指定字段分隔符 | -F "j" 以 "j" 为分隔符 |
'{print $n}' | 打印第 n 列 | '{print $2}' 打印第二列 |
2.sort 排序
参数 | 描述 | 示例 |
-t | 指定分隔符 | -t ":" 以 ":" 为分隔符 |
-k | 指定排序的列 | -k 3 按第三列排序 |
-n | 按数值排序 | -n 数字排序 |
-r | 降序排序 | -r 降序排列 |
head | 输出文件的前几行(默认为 10 行) | `sort ... |
tail | 输出文件的后几行(默认为 10 行) | `sort ... |
3.xargs 参数传递
参数/选项 | 描述 | 示例 |
-i | 替换模板中的 {} | xargs -i cp {} /目录 |
{} | 模板,代表从管道传递来的内容 | 同上 |
-r (对于 xargs 的某些版本) | 如果输入为空,则不运行命令 | 不直接在示例中 |
示例 | 复制文件列表到另一个目录 | `cat files.txt |
23.软件管理 - rpm 和 yum
1.rpm
命令 | 描述 | 示例 |
rpm -ivh 软件包 | 安装软件 | rpm -ivh httpd-2.4.x.rpm |
-i | 安装 | |
-v | 详细输出 | |
-h | 显示安装进度 | |
rpm -q{a,l,f} 软件包 | 查询软件包 | |
-q | 查询 | rpm -qa 列出所有已安装的软件包 |
-l | 列出文件 | rpm -ql httpd 列出httpd软件包安装的文件 |
-f | 查询文件所属的软件包 | rpm -qf /usr/share/httpd/noindex |
-a | 所有 | rpm -qa 查询所有已安装的软件包 |
rpm -e 软件包 | 删除软件 | rpm -e httpd 删除httpd软件包 |
-e | 删除/卸载 |
2.yum
命令 | 描述 | 示例 |
yum clean all | 清理yum缓存 | |
yum makecache | 缓存软件包信息 | |
yum repolist | 查询yum源信息 | |
yum provides 命令 | 查看命令属于哪个软件 | yum provides rz |
yum list | 查看系统已安装和未安装的软件(源里存在即可查到) | |
yum -y install 软件包 | 安装软件 | yum -y install httpd |
-y | 自动回答所有提示为“yes” |
24.进程查看命令:ps
命令 | 参数 | 描述 |
ps aux | - | 静态查看所有用户所有终端的进程 |
ps -ef | -e | 显示所有进程 |
-f | 显示完整格式(包含进程间父子关系) |
1.进程状态解释
字段 | 描述 |
USER | 运行进程的用户 |
PID | 进程ID |
%CPU | CPU占用率 |
%MEM | 内存占用率 |
VSZ | 进程占用的虚拟内存大小 |
RSS | 占用的物理内存大小 |
TTY | 终端(? 表示没有占用终端) |
STAT | 进程状态(如 S=休眠, R=运行, Z=僵尸等) |
START | 进程的启动时间 |
TIME | 进程占用CPU的总时间 |
COMMAND | 进程文件,进程名 |
2.端口查看命令:netstat
命令 | 参数 | 描述 |
netstat -tlanp | -a | 显示全部的进程 |
-u | 显示UDP协议 | |
-n | 以数字形式显示协议名称 | |
-t | 显示TCP协议 | |
-p | 显示进程的名称和PID | |
-l | 只显示正在被监听的端口 |
3.进程与端口关联查询
命令 | 描述 |
`ps aux | grep '进程名'` |
`netstat -tlanp | grep '进程名'` |
lsof -i:端口号 | 根据端口号查询进程 |
4.进程状态解释 (ps 命令中的 STAT 列)
状态码 | 描述 |
R | 运行中或在运行队列中等待 |
S | 休眠中,可被唤醒 |
D | 不可中断的休眠状态 |
T | 停止或被追踪 |
Z | 僵尸进程,父进程已终止,子进程尚未被回收 |
W | 进入内存交换(从内核2.6开始无效) |
N | 低优先级的进程(从内核2.6.13开始标记为空闲进程) |
高优先级的进程(从内核2.6.13开始标记为内核线程) | |
s | 会话的领导进程 |
l | 多线程(从内核2.6开始) |
+ | 在前台的进程组 |
5.top 命令
命令 | 描述 |
top | 动态显示系统状态信息,包括CPU使用率、内存使用率、运行的进程等。默认每三秒刷新一次。 |
6.kill/pkill 命令
命令 | 语法 | 描述 |
kill | kill 信号 PID | 向指定进程ID(PID)的进程发送信号,以控制进程。 |
pkill | pkill 信号 进程名 | 向指定进程名的所有进程发送信号。 |
信号列表 | kill -l | 查看所有可用的信号列表。 |
-1 HUP | 重新加载进程或重新加载配置文件,PID不变。 | |
-9 KILL | 强制杀死进程。 | |
-15 TERM | 正常杀死进程(默认可以不写信号)。 | |
-18 CONT | 激活挂起的进程。 | |
-19 STOP | 挂起进程。 |
5.进程状态解释
状态码 | 描述 |
+ | 表示运行在前台的进程组。 |
S+ | 休眠状态,进程等待某个条件成立或接受到信号。 |
T+ | 暂停或挂起状态,进程被暂时停止执行。 |
s | 父进程,标记为父进程的进程。 |
8.作业控制
命令/操作 | 描述 |
sleep 工作号 & | 将 sleep 命令(或其他命令)放到后台执行,并允许你继续在终端中输入其他命令。 |
ctrl + Z | 将前台运行的命令或程序暂停,并放到后台。 |
jobs | 查看当前终端中后台运行的所有作业及其工作号。 |
bg %工作序号 | 将暂停的作业放到后台继续执行。 |
fg %工作序号 | 将后台的作业调到前台继续执行。 |
25.常用命令
命令 | 描述 |
uptime | 查看系统运行时间、用户数、平均负载等 |
free -m | 以MB为单位显示内存使用情况 |
cat /etc/redhat-release | 查看Red Hat系发行版的系统版本 |
uname -a | 查看系统内核名称、主机名、内核版本号等信息 |
uname -r | 查看内核版本号 |
hostnamectl set-hostname xxxx | 修改主机名(xxxx替换为新的主机名) |
hostname | 查看当前主机名 |
vim /etc/hostname | 直接编辑 /etc/hostname 文件修改主机名(需重启生效) |
rz(通过lrzsz) | 从本地上传文件到远程服务器 |
sz 文件(通过lrzsz) | 从远程服务器下载文件到本地 |
26.计划任务
1.at(一次性调度执行)
命令 | 描述 |
yum install -y at | 安装at命令 |
systemctl status atd | 查看at服务的状态 |
systemctl start atd | 启动at服务 |
at now +1min | 设置一个在一分钟后执行的计划任务 |
at 20:33 < at.jobs | 在指定时间(20:33)执行 at.jobs 文件中的任务 |
atq | 查看待执行的一次性计划任务 |
atrm 计划任务序号 | 删除指定的一次性计划任务 |
2.cron(循环调度执行)
命令 | 描述 |
crontab -l | 列出当前用户的计划任务 |
crontab -r | 删除当前用户所有的计划任务 |
crontab -e | 编辑当前用户的计划任务 |
crontab -u username -l | 列出指定用户的计划任务(仅管理员可使用) |
crontab -u username -r | 删除指定用户的所有计划任务(仅管理员可使用) |
crontab -u username -e | 编辑指定用户的计划任务(仅管理员可使用) |