在工作中常用到的 Linux 命令总结

发布于:2024-11-02 ⋅ 阅读:(127) ⋅ 点赞:(0)

引言

我之前找工作面试的时候。几乎每次面试几乎都会问到 Linux 常用命令,会问一些命令的应用场景。目的是考察我们是否在实际开发中经常用、用得熟练。今天我就来系统地总结一下开发过程中最常用的 Linux 命令,算是一个复习总结。

基本操作

文件管理类命令

在日常开发中,文件和目录的操作是最基础、最常用的操作之一。以下是常用的文件管理类命令,包括 lscdcpmvrmmkdir,并附上具体说明和使用示例。

1. ls - 列出目录内容

ls 命令用于显示当前目录下的文件和目录列表,提供各种参数来辅助查看详细信息。

  • 常用参数

    • -l:显示详细信息,包括权限、所有者、文件大小等。
    • -a:显示所有文件,包括隐藏文件(以.开头的文件)。
  • 示例

    ls -l    # 显示当前目录的文件详细信息
    ls -a    # 显示包括隐藏文件在内的所有文件
    ls -lh   # 显示文件的详细信息并以易读的格式展示大小
    
2. cd - 切换目录

cd(Change Directory)命令用于在不同目录之间切换。

  • 用法

    • cd 目录路径:切换到指定路径的目录。
    • cd .. :返回到上一级目录。
    • cd ~ :切换到当前用户的主目录。
  • 示例

    cd /var/log      # 切换到 /var/log 目录
    cd ..            # 返回上一级目录
    cd ~             # 返回主目录
    
3. cp - 复制文件和目录

cp 命令用于复制文件或目录,支持递归复制目录。

  • 常用参数

    • -r:递归复制整个目录。
    • -i:提示确认覆盖。
  • 示例

    cp file.txt /backup/        # 将 file.txt 文件复制到 /backup/ 目录
    cp -r /source /destination  # 递归复制 /source 目录到 /destination
    
4. mv - 移动或重命名文件和目录

mv 命令用于移动文件或目录,也可以用来重命名文件。

  • 用法

    • mv 源文件 目标文件:将文件或目录移动到新位置。
    • mv 旧名称 新名称:对文件或目录进行重命名。
  • 示例

    mv file.txt /backup/      # 将 file.txt 移动到 /backup/ 目录
    mv oldname.txt newname.txt # 将 oldname.txt 重命名为 newname.txt
    
5. rm - 删除文件和目录

rm 命令用于删除文件或目录,删除操作不可逆,需小心使用。

  • 常用参数

    • -r:递归删除目录及其内容。
    • -i:删除前进行确认。
    • -f:强制删除,不提示。
  • 示例

    rm file.txt         # 删除文件 file.txt
    rm -r /backup/test  # 递归删除 /backup/test 目录
    rm -f temp.log      # 强制删除 temp.log 文件
    
6. mkdir - 创建新目录

mkdir 命令用于创建新目录。

  • 常用参数

    • -p:创建多层级目录(不存在的父目录会被自动创建)。
  • 示例

    mkdir newfolder            # 创建一个新目录 newfolder
    mkdir -p /backup/logs      # 递归创建 /backup/logs 目录
    

文件查看命令

在开发中,我们经常需要查看文件的某一部分内容或筛选出特定的信息。以下是常用的文件查看命令,包括 catmorelesstailhead,并附带了使用示例。

1. cat - 显示文件内容

cat 命令一次性输出文件的所有内容,适合查看小型文件内容。

  • 用法

    • cat 文件名:显示整个文件内容。
    • cat 文件1 文件2 > 合并文件:将多个文件内容合并输出到新文件。
  • 示例

    cat logfile.txt              # 显示 logfile.txt 文件的所有内容
    cat file1.txt file2.txt > combined.txt  # 合并 file1 和 file2 内容到 combined.txt
    
2. more - 分页显示文件内容

more 命令用于分页显示文件内容,适合逐页查看大文件。

  • 常用操作

    • 空格键 翻页,按 q 退出查看。
  • 示例

    more /var/log/syslog         # 分页查看系统日志
    
3. less - 高效分页查看文件内容

less 命令和 more 类似,但支持前后翻页和搜索,适合查看大文件内容。

  • 常用操作

    • 空格键 向下翻页,按 b 向上翻页。
    • 输入 /关键词 可以搜索关键词,按 n 跳到下一个匹配。
  • 示例

    less /var/log/syslog         # 分页查看日志内容并支持前后翻页
    
4. tail - 查看文件末尾

tail 命令用于查看文件的最后几行内容,适合检查日志的最新输出。

  • 常用参数

    • -n 行数:显示指定行数的末尾内容。
    • -f:实时追踪文件的新内容。
  • 示例

    tail -n 20 /var/log/syslog   # 查看系统日志的最后 20 行
    tail -f /var/log/syslog      # 实时追踪系统日志的新内容
    
5. head - 查看文件开头

head 命令用于查看文件的开头部分内容。

  • 常用参数

    • -n 行数:显示指定行数的开头内容。
  • 示例

    head -n 10 logfile.txt       # 查看文件开头的 10 行
    

文本处理命令

文本处理命令用于从文件中查找、提取、替换内容,非常适合快速分析文件中的信息。以下是 grepsedawk 命令的详细说明和示例。

1. grep - 搜索文本内容

grep 命令用于查找文件中匹配特定模式的行。它可以根据关键词、时间戳或正则表达式来筛选内容。

  • 常用参数

    • -i:忽略大小写。
    • -r:递归搜索目录中的文件。
    • -A 行数-B 行数:显示匹配行的前后若干行。
  • 示例

    grep "ERROR" /var/log/syslog           # 查找系统日志中包含 "ERROR" 的行
    grep -i "warning" logfile.txt           # 忽略大小写查找 "warning"
    grep '2024-10-31 12:00' /var/log/syslog # 查找系统日志中 2024 年 10 月 31 日中午 12:00 的记录
    grep -A 5 -B 5 "ERROR" /var/log/syslog  # 查找包含 "ERROR" 的行,并显示前后 5 行
    
2. sed - 流编辑器

sed(Stream Editor)用于对文本进行批量替换、删除等操作,还可以用于显示文件的特定行范围。

  • 常用操作

    • 替换sed 's/旧内容/新内容/g' 文件名,替换所有匹配内容。
    • 修改文件-i 参数直接修改文件。
    • 查看中间部分sed -n '起始行,结束行p' 文件名
  • 示例

    sed 's/old/new/g' file.txt               # 将文件中的 "old" 替换为 "new"
    sed -i 's/error/ERROR/g' logfile.txt      # 替换日志文件中的 "error" 为 "ERROR" 并保存
    sed -n '100,200p' /var/log/syslog         # 查看系统日志的第 100 到 200 行
    
3. awk - 文本数据处理工具

awk 是一个强大的文本处理工具,擅长按列操作文件内容,适合格式化和提取数据。

  • 常用操作

    • 按列打印awk '{print $列号}' 打印指定列内容。
    • 匹配模式打印awk '/模式/' 打印匹配的行。
  • 示例

    awk '{print $1, $3}' data.txt             # 打印文件中第一和第三列
    awk '/ERROR/ {print $0}' logfile.txt      # 打印包含 "ERROR" 的整行
    

文本下载和文件管理命令

在开发中,下载文件、压缩和解压文件是常见的操作,尤其是处理日志文件、配置文件或安装软件包时。


1. wget - 下载文件

wget 是一个非交互式的文件下载工具,支持 HTTP、HTTPS 和 FTP 协议,适合下载文件或网页。

  • 常用参数

    • -O 文件名:将下载的文件保存为指定文件名。
    • -c:断点续传,如果下载中断,可以从中断点继续下载。
    • -r:递归下载,适合下载整个目录或网站(需小心使用)。
  • 示例

    wget http://example.com/file.zip       # 下载指定 URL 的文件
    wget -O customname.zip http://example.com/file.zip  # 将文件保存为 customname.zip
    wget -c http://example.com/largefile.iso # 断点续传下载大文件
    
2. curl - 获取或上传数据

curl 命令支持多种协议,用于发送 HTTP 请求、上传或下载文件。它是调试 HTTP API 的好工具。

  • 常用参数

    • -O:将下载内容保存为远程文件的同名文件。
    • -I:仅获取响应头。
    • -d:发送数据(POST 请求时使用)。
  • 示例

    curl -O http://example.com/file.tar.gz  # 下载文件并保存为同名文件
    curl -I http://example.com              # 查看 HTTP 响应头
    curl -d "param=value" -X POST http://example.com/api  # 发送 POST 请求
    

压缩和解压缩命令

文件压缩和解压缩命令帮助我们节省存储空间和传输时间,常用的有 targzipzipunzip

1. tar - 打包与解包

tar 是 Linux 下常用的打包和解包工具,可以将多个文件或目录打包成一个文件(不压缩),也可以直接生成压缩文件。

  • 常用参数

    • -c:创建新的 tar 包。
    • -x:解压 tar 包。
    • -v:显示详细过程。
    • -f:指定文件名。
    • -z:使用 gzip 压缩或解压缩。
    • -j:使用 bzip2 压缩或解压缩。
  • 示例

    tar -cvf archive.tar /path/to/files    # 将目录打包成 tar 文件(不压缩)
    tar -czvf archive.tar.gz /path/to/files # 将目录打包并使用 gzip 压缩
    tar -xvf archive.tar                   # 解压 tar 包
    tar -xzvf archive.tar.gz               # 解压 gzip 压缩的 tar 包
    
2. gzip - 压缩文件

gzip 命令用于压缩文件,生成的文件会以 .gz 作为扩展名。注意,gzip 只能压缩单个文件。

  • 常用参数

    • -d:解压 gzip 文件。
  • 示例

    gzip filename                          # 将 filename 压缩为 filename.gz
    gzip -d filename.gz                    # 解压 gzip 文件
    
3. zip 和 unzip - 压缩和解压 zip 文件

zipunzip 命令分别用于创建和解压缩 zip 格式的压缩文件,这种格式在 Windows 和 Linux 系统之间通用。

  • 常用参数

    • zip

      • -r:递归压缩目录。
    • unzip

      • -d:指定解压目录。
  • 示例

    zip archive.zip file1 file2            # 将 file1 和 file2 压缩为 archive.zip
    zip -r archive.zip /path/to/directory  # 递归压缩整个目录
    unzip archive.zip                      # 解压 zip 文件
    unzip archive.zip -d /path/to/extract  # 解压到指定目录
    

文件分割和合并命令

1. split - 分割文件

split 命令用于将大文件分割成多个小文件,适合处理超大文件。

  • 常用参数

    • -b:指定分割后的文件大小。
    • -l:按行分割。
  • 示例

    split -b 100M largefile.bin part_       # 将 largefile.bin 分割为 100MB 的小文件
    split -l 1000 largefile.txt part_       # 每 1000 行分割一个文件
    
2. cat - 合并文件

cat 命令可以将分割的文件合并回一个文件。

  • 示例

    cat part_* > mergedfile.bin             # 合并分割的小文件为一个大文件
    

这些命令可以有效帮助我们管理文件的下载、压缩、解压缩以及分割与合并操作,是日常开发和维护中不可或缺的工具。


系统管理命令

系统管理命令帮助我们获取系统信息、管理用户权限和维护系统资源。在日常开发和运维中,这些命令可以用来检查系统状态、处理用户权限以及进行系统更新。

查看系统信息

这些命令用于检查系统的基本信息和资源使用情况,包括 unametopdfdufree

1. uname - 显示系统信息

uname 命令可以查看系统的基本信息,如内核名称、主机名称等。

  • 常用参数

    • -a:显示所有信息,包括内核名称、版本、架构等。
    • -r:显示内核版本。
  • 示例

    uname -a           # 查看完整的系统信息
    uname -r           # 查看系统内核版本
    
2. top - 实时查看系统性能

top 命令可以实时监控系统的资源使用情况,包括 CPU、内存和各进程的状态。

  • 常用操作

    • P:按 CPU 使用率排序。
    • M:按内存使用率排序。
    • q:退出查看。
  • 示例

    top                # 实时查看系统资源使用情况
    
3. df - 查看磁盘使用情况

df 命令用于查看磁盘分区的使用情况,帮助我们快速了解磁盘空间的占用情况。

  • 常用参数

    • -h:以人类易读的格式显示。
  • 示例

    df -h              # 以易读格式显示各分区的磁盘使用情况
    
4. du - 查看目录大小

du 命令用于显示指定目录或文件的大小,常用于分析磁盘空间的使用情况。

  • 常用参数

    • -h:以人类易读的格式显示。
    • -s:只显示总大小。
  • 示例

    du -sh /var/log    # 查看 /var/log 目录的总大小
    du -h /home        # 查看 /home 目录下每个文件和子目录的大小
    
5. free - 查看内存使用情况

free 命令用于显示系统的内存使用情况,包括物理内存和交换内存。

  • 常用参数

    • -h:以人类易读的格式显示。
  • 示例

    free -h            # 以人类可读格式显示内存使用情况
    

用户管理

用户管理命令用于查看和修改用户权限,包括 whoamisudochmodchown

1. whoami - 显示当前用户

whoami 命令用于显示当前登录的用户名,方便我们确认当前权限。

  • 示例

    whoami             # 显示当前登录的用户名
    
2. sudo - 以超级用户权限执行命令

sudo 命令用于以超级用户(root)权限运行命令,适合执行需要管理员权限的操作。

  • 示例

    sudo apt-get update    # 以超级用户权限更新系统
    sudo rm /root/temp.txt # 删除 root 目录下的文件(需要超级用户权限)
    
3. chmod - 修改文件权限

chmod 命令用于设置文件或目录的权限,通过指定权限值来控制读、写、执行权限。

  • 常用格式

    • chmod 权限 文件名:直接设置权限,例如 chmod 755 file.txt
    • 权限值说明:r=4(读)、w=2(写)、x=1(执行)。
  • 示例

    chmod 644 myfile.txt      # 设置文件为所有者可读写,其他人只读
    chmod +x script.sh        # 为文件添加执行权限
    
4. chown - 修改文件所有者

chown 命令用于更改文件或目录的拥有者或所属组,适用于更改文件的访问权限。

  • 常用格式

    • chown 用户:组 文件名:更改文件的用户和组。
  • 示例

    chown user1:usergroup myfile.txt  # 将 myfile.txt 的所有者设为 user1,组设为 usergroup
    chown -R user1 /home/user1        # 递归修改 /home/user1 目录及其内容的所有者
    

系统更新

在开发中,我们通常需要通过包管理器更新系统或安装依赖包。常见的包管理器有 apt-get(适用于 Debian 系和 Ubuntu 系统)和 yum(适用于 CentOS 和 RedHat 系统)。

1. apt-get - Debian 系统的包管理器

apt-get 是 Debian 系和 Ubuntu 系系统的包管理器,常用于安装、更新和删除软件包。

  • 常用命令

    • apt-get update:更新软件包列表。
    • apt-get upgrade:更新已安装的所有包。
    • apt-get install 软件包名:安装指定软件包。
  • 示例

    sudo apt-get update             # 更新软件包列表
    sudo apt-get upgrade            # 更新已安装的软件包
    sudo apt-get install git        # 安装 Git
    
2. yum - RedHat 系统的包管理器

yum 是 RedHat 系和 CentOS 系系统的包管理器,提供了类似的包安装和更新功能。

  • 常用命令

    • yum update:更新所有软件包。
    • yum install 软件包名:安装指定软件包。
    • yum remove 软件包名:卸载软件包。
  • 示例

    sudo yum update                 # 更新所有软件包
    sudo yum install git            # 安装 Git
    sudo yum remove httpd           # 卸载 Apache HTTP 服务器
    

网络管理命令

在开发和运维过程中,网络管理命令帮助我们检查网络连接状态、调试网络故障、管理端口和流量。这些命令可以有效地定位和排查网络问题。

查看网络信息

这些命令用于查看系统的网络连接状态和网络接口信息,包括 ifconfigpingnetstatcurl

1. ifconfig - 查看网络接口信息

ifconfig 命令显示系统的网络接口配置信息,包括 IP 地址、子网掩码、广播地址等。

  • 常用参数

    • 无参数时显示所有接口的基本信息。
  • 示例

    ifconfig                       # 显示所有网络接口的配置信息
    ifconfig eth0                  # 查看特定接口(eth0)的详细信息
    
2. ping - 测试网络连通性

ping 命令用于测试与目标主机的网络连接,验证网络是否连通。

  • 常用参数

    • -c 次数:指定发送的包数量。
    • -i 间隔:设置每次发送包的间隔时间。
  • 示例

    ping google.com                # 测试到 Google 的连通性
    ping -c 4 8.8.8.8              # 发送 4 个包测试到 8.8.8.8 的连接
    
3. netstat - 查看网络连接状态

netstat 命令用于显示网络连接、路由表和接口状态信息,适合快速检查网络端口的使用情况。

  • 常用参数

    • -t:显示 TCP 连接。
    • -u:显示 UDP 连接。
    • -l:显示监听状态的端口。
    • -n:以数字形式显示 IP 地址和端口号。
  • 示例

    netstat -tuln                  # 查看系统所有监听中的 TCP 和 UDP 端口
    netstat -an                    # 显示所有活动的网络连接
    
4. curl - 发送 HTTP 请求

curl 命令用于测试 HTTP 请求,获取指定 URL 的数据或响应头信息。它非常适合调试 API 接口或检测网站状态。

  • 常用参数

    • -I:仅获取响应头信息。
    • -X:指定请求方法,如 GETPOST 等。
    • -d:发送 POST 请求时的参数数据。
  • 示例

    curl http://example.com             # 获取网站主页的 HTML 内容
    curl -I http://example.com          # 只查看网站的响应头
    curl -X POST -d "param=value" http://example.com  # 发送 POST 请求
    

端口管理

端口管理命令帮助我们检查系统端口的状态,检测端口占用或配置防火墙规则,包括 nmaplsofiptables

1. nmap - 网络端口扫描

nmap(Network Mapper)是一款开源网络扫描工具,可以扫描指定主机的开放端口、服务信息和操作系统版本。它主要用于网络安全和端口占用检测。

  • 常用参数

    • -p 端口号:指定扫描的端口号。
    • -sS:执行 TCP SYN 扫描,快速检测端口状态。
    • -O:检测目标主机的操作系统。
  • 示例

    nmap 192.168.1.1                 # 扫描指定 IP 的开放端口
    nmap -p 80 192.168.1.1           # 检测 IP 的 80 端口状态
    nmap -sS 192.168.1.1             # 执行快速 TCP 扫描
    nmap -O 192.168.1.1              # 检测目标主机的操作系统
    
2. lsof - 查看端口占用

lsof(List Open Files)命令用于查看系统中被进程打开的文件,包括网络文件和端口。它可以帮助我们查找被特定端口占用的进程。

  • 常用参数

    • -i :端口号:显示使用指定端口的进程。
    • -t:仅显示进程 ID,便于和 kill 配合使用。
  • 示例

    lsof -i :8080                    # 查看 8080 端口被哪个进程占用
    lsof -t -i :8080 | xargs kill    # 终止占用 8080 端口的进程
    
3. iptables - 配置防火墙规则

iptables 是 Linux 系统的防火墙工具,可以通过设定规则来管理进出网络流量。它支持过滤、重定向和日志记录等功能。

  • 常用操作

    • 查看现有规则iptables -L 列出所有规则。
    • 允许端口iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
    • 拒绝端口iptables -A INPUT -p tcp --dport 端口号 -j DROP
    • 删除规则iptables -D INPUT 行号 删除指定规则。
  • 示例

    iptables -L                           # 列出当前所有防火墙规则
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # 开放 80 端口
    iptables -A INPUT -p tcp --dport 22 -j DROP    # 禁止外部访问 22 端口
    iptables -D INPUT 1                   # 删除第一条规则
    

进程管理命令

在 Linux 系统中,进程管理命令帮助我们查看和控制进程的状态、使用情况和优先级。以下是常用的进程管理命令,包括 pstopkillkillall,以及调整进程优先级的 nicerenice

进程查看与管理

这些命令用于查看系统中运行的进程、监控进程的资源占用情况,以及终止特定进程。

1. ps - 显示进程信息

ps 命令用于查看系统中的进程状态,常用于静态查看某一时刻的进程信息。

  • 常用参数

    • -e-A:显示所有进程。
    • -f:显示完整格式的进程信息。
    • aux:显示所有进程的详细信息,包括用户、CPU 和内存占用。
  • 示例

    ps -e                         # 列出所有进程
    ps -ef                        # 列出所有进程的完整信息
    ps aux                        # 详细显示所有进程的信息
    
2. top - 实时查看系统进程

top 命令用于实时监控系统的资源使用情况,包括 CPU、内存和各个进程的状态。它可以动态刷新,并支持排序和过滤。

  • 常用操作

    • P:按 CPU 使用率排序。
    • M:按内存使用率排序。
    • k:输入进程 ID(PID)以结束指定进程。
    • q:退出查看。
  • 示例

    top                            # 实时查看所有进程的资源使用情况
    
3. kill - 终止指定进程

kill 命令用于向指定进程发送信号,最常用于终止进程。

  • 常用参数

    • -9:强制终止进程。
    • -15(默认):正常终止进程,允许进程完成清理工作。
  • 示例

    kill 1234                      # 终止 PID 为 1234 的进程
    kill -9 1234                   # 强制终止 PID 为 1234 的进程
    
4. killall - 终止同名进程

killall 命令可以根据进程名称终止所有匹配的进程,非常适合同时结束多个同名进程。

  • 常用参数

    • -9:强制终止进程。
  • 示例

    killall apache2                # 终止所有 apache2 进程
    killall -9 chrome              # 强制终止所有 chrome 进程
    

进程优先级

在 Linux 系统中,进程的优先级决定了它获得 CPU 资源的优先顺序。可以使用 nicerenice 命令来调整进程的优先级。

1. nice - 启动进程并设置优先级

nice 命令用于以指定的优先级启动新进程。默认情况下,优先级范围是 -20(最高优先级)到 19(最低优先级),数值越高优先级越低。

  • 常用参数

    • -n:指定优先级值。
  • 示例

    nice -n 10 command             # 以优先级 10 启动一个新进程
    nice -n -5 ./myscript.sh       # 以高优先级(-5)运行 myscript.sh
    
2. renice - 调整运行中进程的优先级

renice 命令用于调整正在运行中的进程的优先级。

  • 常用参数

    • -n:指定新的优先级值。
    • -p:后接进程 ID(PID)来指定要调整优先级的进程。
  • 示例

    renice -n 5 -p 1234            # 将 PID 为 1234 的进程优先级调整为 5
    renice -n -10 -p 5678          # 提高 PID 为 5678 的进程优先级(优先级设置为 -10)
    

权限管理命令

在 Linux 系统中,权限管理命令帮助我们控制用户和进程对文件和目录的访问权限,同时也可以创建、删除用户和组。以下是常用的权限管理命令,包括 chmodchownchgrp,以及用户和组管理的 adduserdeluserpasswd


文件权限管理

文件权限管理命令用于设置文件或目录的读、写和执行权限,包括 chmodchownchgrp

1. chmod - 修改文件权限

chmod 命令用于更改文件或目录的权限,可以通过数字(如 755)或符号(如 u+x)指定权限。

  • 常用格式

    • 数字表示法:每一位数字表示不同的用户权限(用户、组和其他人)。例如,chmod 755 filename 表示所有者有读写执行权限,组和其他人只有读和执行权限。

    • 符号表示法

      • u:所有者(user)
      • g:组(group)
      • o:其他用户(others)
      • + :添加权限、-:移除权限、=:设置为指定权限
  • 示例

    chmod 755 myscript.sh           # 设置文件权限为所有者可读写执行,组和其他用户可读执行
    chmod u+x script.sh             # 添加执行权限给文件所有者
    chmod g-w file.txt              # 移除组的写权限
    
2. chown - 更改文件所有者

chown 命令用于更改文件或目录的所有者和所属组。它可以将文件归属从一个用户转移给另一个用户或组。

  • 常用格式

    • chown 用户:组 文件名:更改文件的用户和组。
    • -R:递归更改目录及其内部所有文件的所有者和组。
  • 示例

    chown user1 myfile.txt          # 将 myfile.txt 的所有者改为 user1
    chown user1:usergroup myfile.txt # 将文件所有者设为 user1,组设为 usergroup
    chown -R user1 /home/user1      # 递归更改 /home/user1 目录及其内容的所有者
    
3. chgrp - 更改文件所属组

chgrp 命令用于更改文件或目录的组,适用于保持文件所有者不变的情况下更改文件的所属组。

  • 用法

    • chgrp 组名 文件名:更改文件的组。
    • -R:递归更改目录及其所有子文件的组。
  • 示例

    chgrp usergroup myfile.txt      # 更改 myfile.txt 文件的组为 usergroup
    chgrp -R developers /var/www    # 递归更改 /var/www 目录下所有文件的组为 developers
    

用户和组管理

用户和组管理命令用于创建、删除用户,设置密码,帮助系统管理员有效管理用户账户权限。

1. adduser - 添加新用户

adduser 命令用于创建新用户,并会提示设置密码、创建用户主目录和配置文件。

  • 用法

    • adduser 用户名:创建新用户并配置主目录。
  • 示例

    sudo adduser newuser            # 创建名为 newuser 的用户,并配置默认目录
    
2. deluser - 删除用户

deluser 命令用于删除用户账户,可以选择是否删除用户的主目录。

  • 常用参数

    • --remove-home:同时删除用户的主目录和配置信息。
  • 示例

    sudo deluser olduser            # 删除 olduser 用户,但保留主目录
    sudo deluser --remove-home tempuser  # 删除 tempuser 用户及其主目录
    
3. passwd - 修改用户密码

passwd 命令用于设置或更改用户的密码。只有管理员可以更改其他用户的密码。

  • 用法

    • passwd 用户名:为指定用户设置密码。
  • 示例

    passwd                           # 更改当前用户密码
    sudo passwd user1                # 为 user1 用户设置新密码
    

速查表

以上这些 Linux 命令是日常开发和系统维护中最常用的命令,涵盖了文件管理、系统管理、网络管理、进程控制、权限设置以及文件下载、压缩等多方面的需求。为了方便快速查找和记忆,我整理了下各类命令的速查表。


分类 命令 用途说明 示例
基本文件操作 ls 列出目录内容 ls -l 查看详细列表
cd 切换目录 cd /path/to/dir 切换目录
cp 复制文件或目录 cp file.txt /backup/ 复制文件
mv 移动或重命名文件 mv oldname newname 重命名文件
rm 删除文件或目录 rm -r directory 递归删除目录
mkdir 创建新目录 mkdir newdir 创建目录
文件查看 cat 查看文件内容 cat filename 显示文件内容
more 分页显示文件内容 more filename 分页查看文件
less 高效分页查看文件内容 less filename 前后翻页查看文件
tail 查看文件尾部内容 tail -n 10 filename 查看最后 10 行
head 查看文件开头内容 head -n 10 filename 查看前 10 行
文本处理 grep 搜索文件中的文本模式 grep "error" filename 搜索包含 “error” 的行
sed 替换或编辑文本 sed 's/old/new/g' filename 替换所有匹配项
awk 按列处理文本数据 awk '{print $1}' filename 打印文件第一列
系统管理 uname 查看系统信息 uname -a 显示完整系统信息
top 实时查看系统资源使用 top 实时监控 CPU、内存等资源
df 查看磁盘使用情况 df -h 以人类可读格式显示磁盘使用
du 查看目录大小 du -sh /path/to/dir 显示目录总大小
free 查看内存使用情况 free -h 显示内存使用情况
用户和权限管理 whoami 查看当前用户 whoami 显示当前登录的用户名
sudo 以超级用户权限执行命令 sudo command 以管理员权限执行命令
chmod 修改文件权限 chmod 755 filename 设置权限
chown 更改文件所有者和组 chown user:group filename 设置所有者和组
adduser 添加新用户 sudo adduser username 创建新用户
deluser 删除用户 sudo deluser username 删除用户
passwd 修改用户密码 passwd username 为用户设置密码
网络管理 ifconfig 查看网络接口配置 ifconfig 显示所有网络接口信息
ping 测试网络连通性 ping google.com 测试连接
netstat 查看网络连接状态 netstat -tuln 显示监听端口
curl 发送 HTTP 请求 curl -I http://example.com 查看响应头
端口管理 nmap 扫描开放端口 nmap 192.168.1.1 扫描指定 IP 的开放端口
lsof 查看端口占用 lsof -i :8080 查看端口 8080 的占用
iptables 配置防火墙规则 iptables -L 查看所有防火墙规则
进程管理 ps 显示系统进程 ps aux 查看所有进程信息
top 实时查看进程资源使用 top 动态监控系统进程
kill 终止指定进程 kill -9 PID 强制终止进程
killall 终止同名进程 killall process_name 终止所有同名进程
nice 启动进程并设置优先级 nice -n 10 command 启动新进程并设置优先级
renice 调整运行中进程的优先级 renice -n 5 -p PID 调整进程优先级
下载和文件管理 wget 下载文件 wget http://example.com/file.zip 下载文件
curl 下载或上传数据 curl -O http://example.com/file.zip 下载文件
压缩和解压缩 tar 打包和解包文件 tar -czvf archive.tar.gz /path/to/files 打包并压缩
gzip 压缩文件 gzip filename 压缩文件
zip 压缩为 zip 文件 zip archive.zip file1 file2 压缩多个文件
unzip 解压 zip 文件 unzip archive.zip 解压 zip 文件
文件分割和合并 split 分割文件 split -b 100M largefile.bin part_ 分割大文件
cat 合并文件 cat part_* > mergedfile.bin 合并分割文件

最后

上面总结的不能涵盖我们日常开发工作中全部能用到的命令 不过我们这边多用熟能生巧 掌握一些自己日常工作中经常用的几个就足够了。


网站公告

今日签到

点亮在社区的每一天
去签到