Administrator
Administrator
发布于 2024-12-06 / 7 阅读
0
0

Linux中的常见命令

Linux 常用命令详解(扩展版)

Linux 是一种强大的开源操作系统,广泛应用于服务器、开发环境以及个人电脑中。掌握 Linux 命令行操作能够极大地提升工作效率和系统管理能力。本文将在之前介绍的基础上,进一步详细介绍 Linux 中几乎所有常用命令,涵盖文件管理、文本处理、系统管理、网络操作、包管理、安全管理等多个方面,帮助用户全面了解并熟练使用这些命令。

目录

  1. 文件和目录管理命令
    • ls
    • cd
    • pwd
    • mkdir
    • rmdir
    • touch
    • cp
    • mv
    • rm
    • find
    • locate
    • du
    • df
    • ln
    • basenamedirname
    • stat
  2. 文本处理命令
    • cat
    • moreless
    • headtail
    • grep
    • sed
    • awk
    • cut
    • sort
    • uniq
    • wc
    • diff
    • tr
    • paste
    • tee
  3. 系统管理命令
    • ps
    • tophtop
    • killkillall
    • pkillpgrep
    • nicerenice
    • chmod
    • chown
    • chgrp
    • sudo
    • su
    • passwd
    • shutdownreboot
    • croncrontab
    • uptime
    • dmesg
    • free
    • vmstat
    • lsof
    • sysctl
  4. 网络管理命令
    • ping
    • ifconfigip
    • netstat
    • ss
    • scp
    • ssh
    • wget
    • curl
    • ftp
    • dig
    • traceroute
    • nslookup
    • host
    • nmap
    • route
    • hostname
    • arp
  5. 包管理命令
    • apt(适用于 Debian/Ubuntu)
    • yum(适用于 CentOS/RHEL)
    • dnf(适用于 Fedora)
    • pacman(适用于 Arch Linux)
    • zypper(适用于 openSUSE)
    • snap(适用于多种发行版)
    • flatpak(适用于多种发行版)
  6. 安全管理命令
    • iptablesfirewalld
    • chmodchown
    • sudo
    • passwd
    • ssh-keygen
    • gpg
    • fail2ban
  7. 磁盘管理命令
    • fdisk
    • parted
    • mkfs
    • fsck
    • mountumount
    • blkid
    • lsblk
    • df
    • du
  8. 用户和组管理命令
    • useradduserdel
    • usermod
    • groupaddgroupdel
    • groupmod
    • id
    • whow
    • last
    • su
    • sudo
  9. 系统监控和日志命令
    • tophtop
    • dmesg
    • journalctl
    • tailhead
    • logrotate
    • sar
    • iostat
    • mpstat
  10. Shell 和脚本命令
    • bash
    • sh
    • echo
    • export
    • alias
    • unalias
    • source.
    • expr
    • test[ ]
    • &&||
    • 管道 |
    • 重定向 >, >>, <, 2>, &>
    • xargs
  11. 其他常用命令
    • echo
    • export
    • alias
    • history
    • man
    • tar
    • zipunzip
    • gzipgunzip
    • df
    • uname
    • date
    • cal
    • bc
    • dd
    • chmod
    • chown
    • cron
    • cronjob
    • uptime
    • whereis
    • which
    • locate
    • updatedb
    • env
    • printenv
    • clear
    • sleep
    • watch
    • bc
    • expr

文件和目录管理命令

ln — 创建链接

用途: 创建硬链接或符号链接(软链接)到文件或目录。

语法:

ln [选项] 源文件 目标链接

常用选项:

  • -s:创建符号链接。
  • -f:强制覆盖已存在的链接。

示例:

ln -s /path/to/source /path/to/symlink

创建一个指向 /path/to/source 的符号链接 /path/to/symlink

basenamedirname — 提取文件路径的基名和目录名

用途:

  • basename:提取文件路径中的文件名。
  • dirname:提取文件路径中的目录部分。

语法:

basename 路径 [后缀]
dirname 路径

示例:

basename /home/user/file.txt
# 输出: file.txt

dirname /home/user/file.txt
# 输出: /home/user

stat — 显示文件或文件系统的状态

用途: 显示文件或文件系统的详细信息,包括权限、所有者、大小、修改时间等。

语法:

stat [选项] 文件

常用选项:

  • -c:指定输出格式。
  • --printf:类似 -c,用于自定义输出。

示例:

stat file.txt

显示 file.txt 的详细信息。


文本处理命令

tr — 替换或删除字符

用途: 替换、删除或压缩输入中的字符。

语法:

tr [选项] SET1 [SET2]

常用选项:

  • -d:删除指定字符。
  • -s:压缩连续的重复字符为一个。
  • -c:取反字符集。

示例:

echo "Hello  World" | tr -s ' '

将连续的空格压缩为一个,输出 Hello World

echo "Hello123" | tr -d '0-9'

删除数字,输出 Hello

paste — 合并文件的行

用途: 按列将文件的对应行合并。

语法:

paste [选项] 文件1 文件2 ...

常用选项:

  • -d:指定分隔符。
  • -s:按顺序合并每个文件的所有行。

示例:

paste file1.txt file2.txt

file1.txtfile2.txt 的对应行用制表符分隔后合并。

tee — 读取标准输入并写入标准输出及文件

用途: 将标准输入的内容同时输出到标准输出和一个或多个文件中。

语法:

command | tee [选项] 文件

常用选项:

  • -a:以追加方式写入文件。
  • -i:忽略中断信号。

示例:

echo "Logging this message" | tee log.txt

将消息输出到终端并写入 log.txt


系统管理命令

pkillpgrep — 根据名称匹配进程

用途:

  • pgrep:根据模式搜索进程 ID。
  • pkill:根据模式发送信号到进程。

语法:

pgrep [选项] 模式
pkill [选项] 模式

常用选项:

  • -u:按用户过滤进程。
  • -f:匹配完整的命令行。

示例:

pgrep firefox

查找所有名为 firefox 的进程 ID。

pkill -9 firefox

强制终止所有名为 firefox 的进程。

nicerenice — 设置和调整进程优先级

用途:

  • nice:启动一个进程并设置其优先级。
  • renice:改变已运行进程的优先级。

语法:

nice [选项] 命令
renice [选项] 优先级 PID

常用选项:

  • -n:指定优先级值。

示例:

nice -n 10 ./script.sh

以优先级 10 启动 script.sh

renice -n -5 1234

将 PID 为 1234 的进程优先级调整为 -5。

uptime — 显示系统运行时间

用途: 显示系统已运行的时间、当前时间、登录用户数及负载平均值。

语法:

uptime

示例:

uptime

输出示例:

 14:35:22 up 10 days,  3:42,  2 users,  load average: 0.15, 0.20, 0.18

dmesg — 查看内核消息

用途: 查看系统启动及运行过程中内核产生的消息,常用于诊断硬件和驱动问题。

语法:

dmesg [选项]

常用选项:

  • -C:清除缓冲区。
  • -c:显示并清除缓冲区。
  • -T:显示人类可读的时间戳。

示例:

dmesg | grep usb

查看与 USB 相关的内核消息。

free — 显示内存使用情况

用途: 显示系统的总内存、已用内存、空闲内存、交换空间等信息。

语法:

free [选项]

常用选项:

  • -h:以人类可读的格式显示。
  • -m:以 MB 为单位显示。

示例:

free -h

以人类可读的格式显示内存使用情况。

vmstat — 显示虚拟内存统计

用途: 显示系统的虚拟内存、进程、CPU 活动等统计信息。

语法:

vmstat [延迟] [次数]

示例:

vmstat 5 3

每 5 秒显示一次统计信息,共显示 3 次。

lsof — 列出打开的文件

用途: 列出当前系统中所有打开的文件及其相关进程,常用于诊断文件锁定问题。

语法:

lsof [选项] [文件/目录]

常用选项:

  • -i:列出与网络相关的文件。
  • -u:按用户过滤。
  • -p:按进程 ID 过滤。

示例:

lsof -i :80

列出所有在端口 80 上打开的文件(通常是 Web 服务器)。

sysctl — 配置内核参数

用途: 查看和修改运行中的内核参数。

语法:

sysctl [选项] 参数

常用选项:

  • -w:设置参数值。
  • -a:显示所有参数。

示例:

sysctl -w net.ipv4.ip_forward=1

启用 IPv4 转发。


网络管理命令

nslookup — 查询 DNS 记录

用途: 查询 DNS 记录,常用于诊断 DNS 问题。

语法:

nslookup [选项] 主机名

示例:

nslookup example.com

查询 example.com 的 DNS 信息。

host — DNS 查询工具

用途: 类似于 dignslookup,用于查询 DNS 记录。

语法:

host [选项] 主机名

示例:

host example.com

查询 example.com 的 DNS 记录。

nmap — 网络映射器

用途: 扫描网络,发现主机和服务,常用于安全审计。

语法:

nmap [选项] 目标

常用选项:

  • -sS:半开放扫描。
  • -sV:检测服务版本。
  • -O:操作系统检测。
  • -p:指定端口范围。

示例:

nmap -sS -p 1-1000 192.168.1.1

192.168.1.1 进行半开放扫描,扫描端口 1 到 1000。

route — 显示和修改路由表

用途: 显示和修改系统的路由表。

语法:

route [选项]

常用选项:

  • add:添加路由。
  • del:删除路由。
  • -n:以数字形式显示地址。

示例:

route -n

显示当前的路由表。

sudo route add default gw 192.168.1.1

设置默认网关为 192.168.1.1

hostname — 显示或设置系统主机名

用途: 查看或修改系统的主机名。

语法:

hostname [选项] [新主机名]

示例:

hostname

显示当前主机名。

sudo hostname newhostname

将主机名设置为 newhostname

arp — 查看和修改 ARP 缓存

用途: 显示和修改系统的 ARP 缓存表,管理 IP 地址和 MAC 地址的映射。

语法:

arp [选项]

常用选项:

  • -a:显示所有 ARP 条目。
  • -d:删除指定的 ARP 条目。
  • -s:添加静态 ARP 条目。

示例:

arp -a

显示所有 ARP 缓存条目。


包管理命令

zypper — openSUSE 的包管理工具

用途: 管理 openSUSE 的软件包,包括安装、更新、删除和搜索软件包。

常用命令:

  • 更新软件包数据库:
    sudo zypper refresh
    
  • 升级所有软件包:
    sudo zypper update
    
  • 安装软件包:
    sudo zypper install package_name
    
  • 删除软件包:
    sudo zypper remove package_name
    
  • 搜索软件包:
    zypper search keyword
    

snap — 通用包管理工具

用途: 管理 Snap 包,提供跨发行版的软件包管理。

常用命令:

  • 安装 Snap 包:
    sudo snap install package_name
    
  • 列出已安装的 Snap 包:
    snap list
    
  • 更新 Snap 包:
    sudo snap refresh
    
  • 删除 Snap 包:
    sudo snap remove package_name
    
  • 搜索 Snap 包:
    snap find keyword
    

flatpak — 通用包管理工具

用途: 管理 Flatpak 应用,提供跨发行版的软件包管理。

常用命令:

  • 安装 Flatpak 包:
    flatpak install repository package_name
    
  • 列出已安装的 Flatpak 包:
    flatpak list
    
  • 更新 Flatpak 包:
    flatpak update
    
  • 删除 Flatpak 包:
    flatpak uninstall package_name
    
  • 搜索 Flatpak 包:
    flatpak search keyword
    

安全管理命令

iptables — 配置防火墙

用途: 配置 Linux 内核的防火墙规则,管理网络流量。

语法:

iptables [选项] [链] [规则]

常用命令:

  • 查看当前防火墙规则:
    sudo iptables -L -v
    
  • 允许特定端口的流量(如 HTTP 端口 80):
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    
  • 拒绝所有来自特定 IP 的流量:
    sudo iptables -A INPUT -s 192.168.1.100 -j DROP
    
  • 保存防火墙规则:
    sudo iptables-save > /etc/iptables/rules.v4
    

firewalld — 动态防火墙管理工具

用途: 动态管理防火墙规则,替代 iptables,更易于使用。

语法:

firewall-cmd [选项] [命令]

常用命令:

  • 查看当前防火墙状态:
    sudo firewall-cmd --state
    
  • 允许特定服务(如 HTTP):
    sudo firewall-cmd --add-service=http --permanent
    sudo firewall-cmd --reload
    
  • 拒绝特定端口:
    sudo firewall-cmd --add-port=22/tcp --permanent
    sudo firewall-cmd --reload
    

ssh-keygen — 生成 SSH 密钥对

用途: 生成用于 SSH 认证的公钥和私钥。

语法:

ssh-keygen [选项]

常用选项:

  • -t:指定密钥类型(如 rsa, ed25519)。
  • -b:指定密钥长度。
  • -C:添加注释。
  • -f:指定密钥文件名。

示例:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

生成一个 4096 位的 RSA 密钥对,并添加注释。

gpg — GNU 隐私保护工具

用途: 加密、解密文件,签名和验证文件的完整性。

语法:

gpg [选项] [文件]

常用选项:

  • --gen-key:生成新的密钥对。
  • --encrypt:加密文件。
  • --decrypt:解密文件。
  • --sign:签名文件。
  • --verify:验证签名。

示例:

gpg --gen-key

生成新的 GPG 密钥对。

gpg --encrypt --recipient user@example.com file.txt

file.txt 加密给 user@example.com

fail2ban — 防止暴力破解的工具

用途: 监控日志文件,自动阻止多次失败的登录尝试,增强系统安全。

语法:

fail2ban-client [命令] [选项]

常用命令:

  • 查看当前监控的 jail:
    sudo fail2ban-client status
    
  • 查看特定 jail 的状态:
    sudo fail2ban-client status sshd
    
  • 手动封禁一个 IP:
    sudo fail2ban-client set sshd banip 192.168.1.100
    
  • 手动解封一个 IP:
    sudo fail2ban-client set sshd unbanip 192.168.1.100
    

磁盘管理命令

fdisk — 磁盘分区工具

用途: 创建、删除、修改磁盘分区,适用于 MBR 分区表。

语法:

fdisk [选项] 设备

常用选项:

  • -l:列出所有分区信息。
  • -n:创建新分区。
  • -d:删除分区。
  • -t:更改分区类型。

示例:

sudo fdisk -l

列出所有磁盘分区信息。

parted — 分区编辑工具

用途: 管理磁盘分区,支持 GPT 分区表,适用于大容量磁盘。

语法:

parted [选项] 设备

常用命令:

  • 启动交互模式:
    sudo parted /dev/sda
    
  • 查看分区表:
    (parted) print
    
  • 创建新分区:
    (parted) mkpart primary ext4 0% 50%
    
  • 删除分区:
    (parted) rm 1
    

mkfs — 创建文件系统

用途: 在分区上创建文件系统,如 ext4、xfs、vfat 等。

语法:

mkfs.[文件系统类型] [选项] 设备

常用命令:

  • 创建 ext4 文件系统:
    sudo mkfs.ext4 /dev/sda1
    
  • 创建 xfs 文件系统:
    sudo mkfs.xfs /dev/sda1
    
  • 创建 vfat 文件系统:
    sudo mkfs.vfat /dev/sda1
    

fsck — 文件系统检查和修复

用途: 检查和修复文件系统中的错误。

语法:

fsck [选项] 设备

常用选项:

  • -a:自动修复可修复的错误。
  • -r:在修复前提示用户。
  • -n:不修复,只报告问题。

示例:

sudo fsck -y /dev/sda1

自动修复 /dev/sda1 上的文件系统错误。

mountumount — 挂载和卸载文件系统

用途: 挂载文件系统到目录,或卸载已挂载的文件系统。

语法:

mount [选项] 设备 目录
umount [选项] 目录/设备

常用选项:

  • -t:指定文件系统类型。
  • -o:指定挂载选项,如 ro(只读)、rw(读写)、noexec(禁止执行)等。

示例:

sudo mount -t ext4 /dev/sda1 /mnt/data

/dev/sda1 挂载到 /mnt/data 目录,使用 ext4 文件系统。

sudo umount /mnt/data

卸载 /mnt/data 目录上的文件系统。

blkid — 显示块设备的 UUID 和标签

用途: 获取块设备的 UUID、标签和类型信息,常用于 /etc/fstab 配置。

语法:

blkid [选项] [设备]

示例:

sudo blkid /dev/sda1

显示 /dev/sda1 的 UUID 和文件系统类型。

lsblk — 列出块设备信息

用途: 显示系统中所有块设备的层次结构和详细信息。

语法:

lsblk [选项]

常用选项:

  • -f:显示文件系统信息。
  • -a:显示所有设备,包括空设备。

示例:

lsblk -f

显示所有块设备及其文件系统信息。


用户和组管理命令

useradduserdel — 添加和删除用户

用途:

  • useradd:创建新用户。
  • userdel:删除现有用户。

语法:

useradd [选项] 用户名
userdel [选项] 用户名

常用选项:

  • -m:创建用户的主目录。
  • -s:指定用户的默认 shell。
  • -G:指定用户所属的附加组。

示例:

sudo useradd -m -s /bin/bash newuser

创建一个名为 newuser 的用户,创建主目录并指定默认 shell 为 /bin/bash

sudo userdel -r olduser

删除用户 olduser 及其主目录。

usermod — 修改用户信息

用途: 修改现有用户的属性,如用户名、主目录、所属组等。

语法:

usermod [选项] 用户名

常用选项:

  • -l:更改用户名。
  • -d:更改用户的主目录。
  • -G:更改用户所属的附加组。
  • -aG:追加附加组。

示例:

sudo usermod -l newname oldname

将用户 oldname 的用户名更改为 newname

sudo usermod -aG sudo newuser

newuser 添加到 sudo 组。

groupaddgroupdel — 添加和删除组

用途:

  • groupadd:创建新组。
  • groupdel:删除现有组。

语法:

groupadd [选项] 组名
groupdel [选项] 组名

示例:

sudo groupadd developers

创建一个名为 developers 的新组。

sudo groupdel oldgroup

删除名为 oldgroup 的组。

groupmod — 修改组信息

用途: 修改现有组的属性,如组名或 GID。

语法:

groupmod [选项] 组名

常用选项:

  • -n:更改组名。
  • -g:更改组的 GID。

示例:

sudo groupmod -n newgroup oldgroup

将组名 oldgroup 更改为 newgroup

id — 显示用户和组信息

用途: 显示指定用户的 UID、GID 及所属的组信息。

语法:

id [选项] [用户名]

示例:

id newuser

显示用户 newuser 的 UID、GID 及所属组。

whow — 显示当前登录用户

用途:

  • who:显示当前登录系统的用户列表。
  • w:显示当前登录用户及其活动信息。

语法:

who
w

示例:

who

输出示例:

newuser tty7         2024-04-27 10:00 (:0)
w

输出示例:

 10:00:00 up 10 days,  3:42,  2 users,  load average: 0.15, 0.20, 0.18
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
newuser  tty7       10:00    3:42m  0.10s  0.10s /bin/bash

last — 显示最近登录的用户

用途: 显示系统中最近登录过的用户信息。

语法:

last [选项] [用户名]

示例:

last

输出示例:

newuser  tty7         :0               Wed Apr 27 10:00 - still logged in
reboot   system boot  5.4.0-42-generic Wed Apr 27 09:59   still running

系统监控和日志命令

journalctl — 查看 systemd 日志

用途: 查看和管理由 systemd 维护的系统日志。

语法:

journalctl [选项]

常用选项:

  • -u:按服务单元过滤日志。
  • -f:实时跟踪日志输出。
  • -b:显示自上次启动以来的日志。
  • -p:按日志级别过滤。

示例:

sudo journalctl -u sshd -f

实时跟踪 sshd 服务的日志输出。

logrotate — 管理日志文件

用途: 自动轮换、压缩和删除旧的日志文件,防止日志文件过大。

语法:

logrotate [选项] 配置文件

常用选项:

  • -f:强制执行轮换,无视时间。
  • -d:调试模式,不执行实际操作。

示例:

sudo logrotate -f /etc/logrotate.conf

强制执行日志轮换。

sar — 收集和报告系统活动信息

用途: 收集和报告系统的 CPU、内存、磁盘、网络等活动信息,常用于性能分析。

语法:

sar [选项] [间隔] [次数]

示例:

sar -u 5 3

每 5 秒报告一次 CPU 使用情况,共报告 3 次。

iostat — 显示 CPU 和 I/O 统计

用途: 显示 CPU 利用率和各块设备的 I/O 统计信息,常用于性能监控。

语法:

iostat [选项] [间隔] [次数]

示例:

iostat -x 5 3

每 5 秒显示一次详细的 I/O 统计信息,共显示 3 次。

mpstat — 多处理器统计

用途: 显示各 CPU 核心的使用统计信息,适用于多核系统。

语法:

mpstat [选项] [间隔] [次数]

示例:

mpstat -P ALL 5 3

每 5 秒显示一次所有 CPU 核心的统计信息,共显示 3 次。


Shell 和脚本命令

bash — GNU Bourne-Again Shell

用途: 启动一个新的 Bash shell 会话,执行脚本或交互式命令。

语法:

bash [选项] [脚本文件]

示例:

bash script.sh

执行 script.sh 脚本。

sh — Bourne Shell

用途: 启动一个新的 Bourne shell 会话,执行脚本或交互式命令。

语法:

sh [选项] [脚本文件]

示例:

sh script.sh

执行 script.sh 脚本。

expr — 计算表达式

用途: 计算整数表达式,常用于脚本中的数学运算。

语法:

expr 表达式

示例:

expr 5 + 3

输出:8

test[ ] — 条件测试

用途: 在脚本中进行条件判断,如文件存在性、字符串比较、数值比较等。

语法:

test 条件
[ 条件 ]

示例:

if [ -f "/etc/passwd" ]; then
    echo "passwd 文件存在"
fi

&&|| — 条件执行操作符

用途: 根据前一个命令的成功与否,执行后续命令。

语法:

命令1 && 命令2
命令1 || 命令2

示例:

mkdir newdir && cd newdir

如果 mkdir newdir 成功,则执行 cd newdir

grep "error" logfile || echo "No errors found"

如果 grep 未找到匹配项,则输出 "No errors found"。

管道 | — 将一个命令的输出作为另一个命令的输入

用途: 连接多个命令,将前一个命令的输出传递给下一个命令。

语法:

命令1 | 命令2 | ...

示例:

ps aux | grep nginx | awk '{print $2}'

查找所有 nginx 进程的 PID。

重定向 >, >>, <, 2>, &> — 管理命令的输入和输出

用途: 将命令的输出重定向到文件或从文件中读取输入,管理标准输出和错误输出。

语法:

命令 > 文件          # 覆盖写入
命令 >> 文件         # 追加写入
命令 < 文件          # 从文件读取输入
命令 2> 错误文件     # 重定向标准错误
命令 &> 文件         # 重定向标准输出和错误

示例:

ls -l > output.txt

ls -l 的输出写入 output.txt,覆盖原内容。

ls -l >> output.txt

ls -l 的输出追加到 output.txt

command > output.txt 2> error.txt

将标准输出写入 output.txt,将标准错误写入 error.txt

xargs — 将输入转换为命令参数

用途: 将标准输入转换为命令行参数,常用于处理管道中的数据。

语法:

command | xargs [选项] 命令

示例:

find . -name "*.log" | xargs rm -f

删除当前目录及子目录下所有 .log 文件。


其他常用命令

cal — 显示日历

用途: 显示指定月份或年份的日历。

语法:

cal [月份] [年份]

示例:

cal 12 2024

显示 2024 年 12 月的日历。

bc — 计算器语言

用途: 进行高精度的数学运算,支持变量和脚本。

语法:

bc [选项]

示例:

echo "scale=2; 5/3" | bc

输出:1.66

dd — 数据复制和转换

用途: 低级别复制和转换文件,常用于创建磁盘映像或备份。

语法:

dd [选项] if=输入文件 of=输出文件

常用选项:

  • bs:设置块大小。
  • count:复制块的数量。
  • skip:跳过输入文件的块数。
  • seek:跳过输出文件的块数。

示例:

sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress

/dev/sda 的内容复制到 /dev/sdb,使用 4MB 的块大小,并显示进度。

whereis — 查找二进制文件、源代码和手册页

用途: 查找命令的二进制文件、源代码和手册页的位置。

语法:

whereis 命令

示例:

whereis ls

输出示例:

ls: /bin/ls /usr/share/man/man1/ls.1.gz

which — 查找命令的执行路径

用途: 查找命令在 PATH 环境变量中的执行路径。

语法:

which 命令

示例:

which bash

输出示例:

/bin/bash

updatedblocate — 更新数据库和快速查找文件

用途:

  • updatedb:更新 locate 命令使用的文件数据库。
  • locate:快速查找文件路径。

语法:

sudo updatedb
locate [选项] 文件名

示例:

sudo updatedb
locate passwd

更新数据库后,查找所有包含 passwd 的文件路径。

envprintenv — 显示环境变量

用途:

  • env:运行一个命令在修改过的环境中,或显示当前环境变量。
  • printenv:打印环境变量的值。

语法:

env [选项] [命令]
printenv [变量名]

示例:

env

显示当前所有环境变量。

printenv PATH

显示 PATH 环境变量的值。

clear — 清屏

用途: 清除终端屏幕上的所有内容。

语法:

clear

示例:

clear

清除终端屏幕内容。

sleep — 暂停执行

用途: 在脚本中暂停指定的时间。

语法:

sleep [时间][单位]

单位:

  • s:秒(默认)。
  • m:分钟。
  • h:小时。
  • d:天。

示例:

sleep 5

暂停 5 秒。

sleep 1m

暂停 1 分钟。

watch — 定期执行命令并显示结果

用途: 每隔一定时间执行一次指定命令,并实时显示其输出。

语法:

watch [选项] 命令

常用选项:

  • -n:指定时间间隔(秒)。
  • -d:高亮显示变化部分。

示例:

watch -n 2 ls -l

每 2 秒执行一次 ls -l,并显示结果。

whereiswhich — 查找命令的位置

用途:

  • whereis:查找命令的二进制文件、源代码和手册页。
  • which:查找命令的执行路径。

语法:

whereis 命令
which 命令

示例:

whereis gcc

输出示例:

gcc: /usr/bin/gcc /usr/share/man/man1/gcc.1.gz
which gcc

输出示例:

/usr/bin/gcc

bc — 任意精度计算器语言

用途: 进行高精度的数学运算,支持变量和脚本。

语法:

bc [选项]

示例:

echo "scale=5; 22/7" | bc

输出:3.14285


总结

本文在之前介绍的基础上,进一步扩展了 Linux 中几乎所有常用命令的详细说明,涵盖文件和目录管理、文本处理、系统管理、网络操作、包管理、安全管理、磁盘管理、用户和组管理、系统监控和日志、Shell 和脚本等多个方面。这些命令是 Linux 系统日常管理和使用的基础,掌握它们不仅有助于提高工作效率,还能增强系统管理和问题解决的能力。

建议读者在实际操作中多加练习,深入理解每个命令的功能和用法。通过不断实践,您将能够熟练运用这些命令,充分发挥 Linux 系统的强大优势。

此外,建议结合实际需求和工作环境,深入学习相关命令的高级用法和脚本编写技巧,以应对更复杂的系统管理和自动化任务。参考官方文档和社区资源,如 man 页面、在线教程和论坛,也是提升 Linux 命令行技能的重要途径。


附录:常用命令快速参考

命令 描述
ls 列出目录内容
cd 切换当前工作目录
pwd 显示当前工作目录的绝对路径
mkdir 创建新目录
rmdir 删除空目录
touch 创建空文件或更新文件时间戳
cp 复制文件或目录
mv 移动或重命名文件或目录
rm 删除文件或目录
find 查找文件
locate 快速查找文件路径
du 显示文件或目录的磁盘使用情况
df 显示文件系统的磁盘空间使用情况
ln 创建链接
basename 提取文件名
dirname 提取目录名
stat 显示文件或文件系统的状态
cat 连接文件并打印到标准输出
more 分页查看文件内容
less 分页查看文件内容,支持向前和向后翻页
head 查看文件的开头部分
tail 查看文件的结尾部分
grep 文本搜索工具
sed 流编辑器
awk 强大的文本处理工具
cut 按列提取文本
sort 排序文本
uniq 删除重复行
wc 统计字数、行数和字节数
diff 比较文件内容
tr 替换或删除字符
paste 合并文件的行
tee 读取标准输入并写入标准输出及文件
ps 查看当前进程
top 实时查看系统资源
htop 更友好的实时系统资源查看工具
kill 终止进程
killall 终止指定名称的所有进程
pkill 根据名称终止进程
pgrep 根据名称查找进程 ID
nice 启动一个具有特定优先级的进程
renice 修改已运行进程的优先级
chmod 修改文件权限
chown 修改文件所有者
chgrp 修改文件所属组
sudo 以超级用户权限执行命令
su 切换用户
passwd 修改用户密码
shutdown 关闭或重启系统
reboot 重启系统
cron 定时任务管理
crontab 编辑和管理定时任务
ping 测试网络连通性
ifconfig 配置网络接口(已被 ip 命令取代)
ip 配置网络接口
netstat 显示网络连接
ss 显示套接字统计信息
scp 安全复制文件
ssh 安全远程登录
wget 下载文件
curl 数据传输工具
ftp 文件传输协议
dig DNS 查询工具
traceroute 路由追踪
nslookup DNS 查询工具
host DNS 查询工具
nmap 网络扫描工具
route 显示和修改路由表
hostname 显示或设置系统主机名
arp 查看和修改 ARP 缓存
apt Debian/Ubuntu 的包管理工具
yum CentOS/RHEL 的包管理工具
dnf Fedora 的包管理工具
pacman Arch Linux 的包管理工具
zypper openSUSE 的包管理工具
snap 通用包管理工具
flatpak 通用包管理工具
iptables 配置防火墙
firewalld 动态防火墙管理工具
ssh-keygen 生成 SSH 密钥对
gpg GNU 隐私保护工具
fail2ban 防止暴力破解的工具
fdisk 磁盘分区工具
parted 分区编辑工具
mkfs 创建文件系统
fsck 文件系统检查和修复
mount 挂载文件系统
umount 卸载文件系统
blkid 显示块设备的 UUID 和标签
lsblk 列出块设备信息
useradd 添加用户
userdel 删除用户
usermod 修改用户信息
groupadd 添加组
groupdel 删除组
groupmod 修改组信息
id 显示用户和组信息
who 显示当前登录用户
w 显示当前登录用户及其活动信息
last 显示最近登录的用户
journalctl 查看 systemd 日志
logrotate 管理日志文件
sar 收集和报告系统活动信息
iostat 显示 CPU 和 I/O 统计
mpstat 多处理器统计
bash 启动 Bash shell
sh 启动 Bourne shell
echo 显示一段文本
export 设置环境变量
alias 创建命令别名
unalias 删除命令别名
source 在当前 shell 中执行脚本
expr 计算表达式
test 条件测试
[ 条件测试(等同于 test
&& 条件执行操作符
`
` `
> 重定向标准输出
>> 追加重定向标准输出
< 重定向标准输入
2> 重定向标准错误
&> 重定向标准输出和错误
xargs 将输入转换为命令参数
cal 显示日历
bc 计算器语言
dd 数据复制和转换
whereis 查找命令的位置
which 查找命令的执行路径
updatedb 更新 locate 的数据库
locate 快速查找文件路径
env 显示或运行命令在修改的环境中
printenv 打印环境变量
clear 清屏
sleep 暂停执行
watch 定期执行命令并显示结果

通过系统地学习和实践上述命令,您将能够更高效地使用 Linux 系统,无论是在日常操作、系统管理还是高级开发任务中。记住,掌握命令行的关键在于持续的练习和应用,将理论知识转化为实际技能。


评论