★ 常用命令
跳转到“★ 常用命令”| 序号 | 命令 | 解释 | |
|---|---|---|---|
| 文件管理 | |||
| 1 | pwd | 打印当前工作目录 | pwd |
| 2 | cd | 更改目录 | cd /home/user |
| 3 | ls | 列出目录内容 | ls -l |
| 4 | cat | 连接并打印文件 | cat file.txt |
| 5 | cp | 复制文件或目录 | cp source.txt destination.txt |
| 6 | mv | 移动或重命名文件或目录 | mv oldname.txt newname.txt |
| 7 | mkdir | 创建目录 | mkdir new_directory |
| 8 | rmdir | 删除空目录 | rmdir empty_directory |
| 9 | rm | 删除文件或目录 | rm file.txt |
| 10 | touch | 更改文件时间戳,如果文件不存在,会创建一个新文件 | touch file.txt |
| 11 | find | 查找文件 | find . -name file.txt |
| 12 | locate | 查找文件,与 find 相比,locate 查找速度更快,因为它使用了预先建立的数据库 | locate file.txt |
| 13 | grep | 在文本中查找模式 | grep ‘pattern’ file.txt |
| 14 | head | 输出文件的开头部分 | head file.txt |
| 15 | tail | 输出文件的末尾部分 | tail file.txt |
| 16 | diff | 比较文件差异 | diff file1.txt file2.txt |
| 17 | tar | 文件打包和解包工具 | tar -cvf archive.tar directory/ |
| 18 | chmod | 更改文件权限 | chmod 755 script.sh |
| 19 | chown | 更改文件所有者 | chown user:group file.txt |
| 20 | ln | 创建链接 | ln -s target.txt symlink.txt |
| 21 | less | 一个用于文件浏览的命令。与 cat 类似,但是它允许你进行分页。 | less file.txt |
| 22 | split | 将文件分割为多个小文件。 | split -b 100M bigfile 把一个大文件分割为多个大小为 100M 的小文件 |
| 23 | tree | 以树形图列出目录结构。 | tree /home |
| wc | 计算文件⾏数(-l),单词数(-w),字符数(-c) | ||
| cut -b | 指定欲显⽰的文件内容范围,并将它们输出到标准输出设备比如:输出每⾏第 5 个到第 9 个字符cut -b 5-9 file.txt,千万不要和 cat 命令混淆,这是两个完全不同的命令 | ||
| cat | 输出文件内容到标准输出设备(屏幕)上 | ||
| file | 得到文件类型 | ||
| read var | 提⽰⽤户输入,并将输入赋值给变量 | ||
| sort | 对 file.txt 文件中的⾏进⾏排序 | ||
| uniq | 报告或删除文件中重复的行: sort file.txt | uniq | ||
| expr | 进⾏数学运算,比如运⾏ expr 2 ”+” 3 得到结果为 5 | ||
| tee | 将数据输出到标准输出设备(屏幕) 和文件比如:ls | tee outfile | ||
| basename | 返回不包含路径的文件名比如: basename /bin/tux 将返回 tux | ||
| dirname | 返回文件所在路径比如:dirname /bin/tux 将返回 /bin | ||
| sed | sed 是⼀个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出 到标准输出(屏幕)。该命令采⽤正则表达式(⻅参考)进⾏搜索。不要和 shell 中的通配符相 混淆。比如:将 linuxfocus 替换为 LinuxFocus :cat text.file | sed ‘s/linuxfocus/LinuxFocus/’ > newtext.file | s/表示替换 | |
| awk | awk ⽤来从文本文件中提取字段。缺省地,字段分割符是空格,可以使⽤ -F 指定其他分割 符。cat file.txt | awk -F, '{print $1 "," $3 }这⾥我们使⽤ , 作为字段分割 符,同时打印第⼀个和第三个字段。如果该文件内容如下: Adam Bor, 34, IndiaKerry Miller, 22, 该命令输出结果为:Adam Bor, IndiaKerry Miller, USA | ||
| 进程管理 | |||
| jobs | 列出当前会话中的任务 | jobs | |
| kill | 终止进程 | kill PID | |
| top | 显示系统摘要信息,包括正在运行的进程 | top | |
| ps | 显示当前进程 | ps aux | |
| killall | 根据进程名终止进程 | killall processname | |
| 系统信息和网络 | |||
| 1 | df | 显示磁盘使用情况 | df -h |
| 2 | du | 显示目录和文件的磁盘使用情况 | du -sh directory/ |
| 3 | uname | 打印系统信息 | uname -a |
| 4 | ping | 发送 ICMP 请求来测试网络连接 | ping www.google.com |
| 5 | wget | 从网络下载文件 | wget http://website.com/file.txt |
| 6 | hostname | 显示或设置系统主机名 | hostname |
| 7 | ip | 显示或配置网络接口 | ip addr show |
| 8 | netstat | 显示网络统计信息 | netstat -an |
| 9 | ssh | 安全地登录到远程服务器 | ssh user@server.com |
| 10 | whoami | 打印当前有效的用户名称 | whoami |
| 11 | uptime | 显示系统已运行的时间 | uptime |
| 12 | lsblk | 列出所有块设备的信息 | lsblk |
| 13 | blkid | 列出所有块设备的 UUID | blkid |
| 14 | lsusb | 列出 USB 设备 | lsusb |
| 15 | free | 显示系统的内存使用情况 | free -h |
| 用户管理 | |||
| 1 | sudo | 执行命令作为其他用户,通常为超级用户 | sudo apt-get update |
| 2 | useradd | 添加用户 | useradd newuser |
| 3 | passwd | 更改用户密码 | passwd username |
| 4 | chage | 更改用户密码过期信息 | chage -l username |
| 5 | chfn | 更改用户指纹信息 | chfn username |
| 6 | chsh | 更改用户的默认 shell | chsh -s /bin/bash username |
| 7 | usermod | 修改用户账户 | usermod -a -G groupname username |
| 8 | groupadd | 添加组 | groupadd newgroup |
| 9 | groupdel | 删除组 | groupdel groupname |
| 10 | groupmod | 修改组 | groupmod -n newgroupname oldgroupname |
| 其他 | |||
| 1 | echo | 输出一行文本 | echo “Hello, World!” |
| 2 | date | 显示或设置系统日期和时间 | date |
| 3 | exit | 退出 shell 或终止 shell 脚本 | exit |
| 4 | shutdown | 关闭系统 | shutdown -h now |
| 5 | reboot | 重启系统 | reboot |
| 6 | alias | 创建命令别名 | alias ll=‘ls -l’ |
| 7 | unalias | 删除已定义的别名 | unalias ll |
| 8 | history | 显示命令历史 | history |
| 9 | man | 显示命令的手册页 | man ls |
| 10 | zip | 创建 zip 压缩文件 | zip archive.zip file.txt |
| 11 | unzip | 解压 zip 压缩文件 | unzip archive.zip |
| 12 | sleep | 暂停一段时间 | sleep 5 |
| 13 | clear | 清除屏幕 | clear |
| 14 | env | 显示环境变量 | env |
| 15 | export | 设置环境变量 | export VAR=value |
| 16 | rsync | 同步文件和目录 | rsync -a source/ destination/ |
日志
跳转到“日志”| 序号 | 方法 | 命令或工具 | 描述 |
|---|---|---|---|
| 1 | 查看系统日志 | cat, less, tail /var/log/syslog | 查看系统日志文件,实时输出最新日志。 |
| 2 | 使用dmesg | dmesg | 查看或控制内核环形缓冲区的日志信息。 |
| 3 | 使用journalctl | journalctl | 查看systemd的日志,替代旧的/var/log/messages。 |
| 4 | 查看特定服务日志 | journalctl -u servicename | 查看特定服务的日志。 |
| 5 | 查看特定时间日志 | journalctl --since "YYYY-MM-DD" | 查看特定时间点之后的日志。 |
| 6 | 查看APT日志 | /var/log/apt/ | 查看APT软件包管理器的日志。 |
| 7 | 查看YUM日志 | /var/log/yum.log | 查看基于RPM的系统的包管理器日志(CentOS, Fedora等)。 |
| 8 | 查看Dpkg日志 | /var/log/dpkg.log | 查看Debian系系统的包管理器日志。 |
| 9 | 查看内核日志 | /var/log/kern.log | 查看内核级别的日志信息。 |
| 10 | 查看认证日志 | /var/log/auth.log | 查看认证相关的日志,如用户登录尝试。 |
| 11 | 查看SSH日志 | /var/log/auth.log 或 /var/log/secure | 查看SSH服务的登录尝试和连接日志。 |
| 12 | 查看Web服务器日志 | /var/log/nginx/access.log, /var/log/httpd/ | 查看Web服务器的访问日志。 |
| 13 | 查看防火墙日志 | /var/log/firewalld/ 或 /var/log/ufw.log | 查看防火墙的日志,如iptables或firewalld。 |
| 14 | 查看Cron日志 | /var/log/cron.log | 查看定时任务的执行日志。 |
| 15 | 查看邮件日志 | /var/log/maillog | 查看邮件服务的日志。 |
| 16 | 查看Xorg日志 | /var/log/Xorg.0.log | 查看图形界面服务器的日志。 |
| 17 | 查看自定义应用日志 | 根据应用而定 | 查看特定应用程序生成的日志,路径和格式根据应用而异。 |
| 18 | 使用logrotate管理日志 | /etc/logrotate.conf 和 /etc/logrotate.d/ | 查看和管理日志轮转配置和日志文件。 |
which\where
跳转到“which\where”以下是which、where、locate 和 find 工具的主要区别和使用示例,列成表格:
| 工具 | 用途 | 示例 | 注意事项 |
|---|---|---|---|
which | 查找并显示可执行命令的位置。 | which ls | 主要用于查找系统 $PATH 中的可执行文件。 |
where | 类似于 which,用于查找可执行命令的位置,显示所有匹配的文件。 | where ls | 不是所有系统都默认安装 where。 |
locate | 使用预先构建的文件数据库快速查找文件。 | locate filename | 利用系统数据库,速度较快,但可能不实时。 |
find | 递归地在文件系统中查找符合条件的文件。 | find /path/to/search -name "*.txt" | 提供更灵活和强大的搜索功能,递归查找文件。 |
请注意,表格中的示例可能需要根据实际情况进行修改,特别是在使用 find 命令时,根据你的搜索条件进行调整。
关机
跳转到“关机”| 命令 | 描述 | 示例 |
|---|---|---|
shutdown | 用于安全地关闭或重启系统 | sudo shutdown -h now(立即关机)sudo shutdown -h +10(10分钟后关机) |
poweroff | 立即关闭系统 | sudo poweroff |
halt | 立即关闭系统,-p参数表示关闭系统时不进行标准的关闭操作 | sudo halt -p |
init | 切换到运行级别0以关机,0代表关机 | sudo init 0 |
systemctl | 使用systemd系统管理器关机 | sudo systemctl poweroff |
reboot | 重启系统,如果需要重启而不是关机 | sudo reboot |
命令标记
跳转到“命令标记”-cp 表⽰cp命令报错了不会停⽌,继续执⾏下⾯的操作。@cp 终端中不会打印出命令的执⾏。
declare -i 整型变量。 -a 数组。 -f 列出所有定义过的函数。 -x 将声明的变量作为脚本的环境变量导出。
shift 左移参数,shift 3表⽰$4变成$1 不带参数的话默认为 shift 1。命令中出现的双横杆
--是什么?双横杆
--是为了告诉命令,后面的内容不是命令参数,标识命令参数结束(marks the end of options),比 如我要生成一个名为-f的文件:终端窗口 # 使⽤该命令会保存$ touch -fusage:touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...# 加双横杆$ touch -- -f# 查看⽣成的文件$ ll-rw-r--r-- 1 xxw staff 0B 9 29 17:43 -f
在 Linux 中,你可以使用
pushd和popd命令来临时记住当前目录并切换到其他目录。这两个命令可以在 shell 中保存目录堆栈,让你轻松地在不同目录之间切换。
pushd 命令:
pushd命令将当前目录压入堆栈,并切换到指定的目录。终端窗口 pushd /path/to/other/directory
- 这样,你就会切换到指定目录,并将当前目录压入堆栈。
popd 命令:
popd命令将目录堆栈的顶部目录弹出,并切换回该目录。终端窗口 popd
- 这样,你就会返回到之前保存的目录。
示例:
终端窗口 $ pwd/home/user/original_directory$ pushd /path/to/other/directory/home/user/other/directory /home/user/original_directory# You are now in /path/to/other/directory$ popd/home/user/original_directory# You are back in the original directory这种方法在需要在不同目录之间频繁切换时非常方便。