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

引言

我之前找工作面试的时候。几乎每次面试几乎都会问到 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 合并分割文件

最后

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/462128.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

img 标签的 object-fit 属性

设置图片固定尺寸后,可以通过 object-fit 属性调整图片展示的形式 object-fit: contain; 图片的长宽比不变,相应调整大小。 object-fit: cover; 当图片的长宽比与容器的长宽比不一致时,会被裁切。 object-fit: fill; 图片不再锁定长宽…

机器人领域中的scaling law:通过复现斯坦福机器人UMI——探讨数据规模化定律(含UMI的复现关键)

前言 在24年10.26/10.27两天,我司七月在线举办的七月大模型机器人线下营时,我们带着大家一步步复现UMI「关于什么是UMI,详见此文:UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读)」&…

scala---10.30

val、var package com_1030class Person {var name:String"rose"def sum(n1:Int,n2:Int):Int{n1n2} } object Person{def main(args: Array[String]): Unit {//创建person对象var personnew Person()println(person.sum(10,20))//30println(person.name)person.nam…

Oracle与SQL Server的语法区别

1)日期和日期转换函数。 SQL: SELECT A.*, CASE WHEN NVL(PAA009,) OR PAA009 >Convert(Varchar(10), SYSDATE,120) THEN Y ELSE N END AS ActiveUser FROM POWPAA A WHERE PAA001admin or PAA002admin Oracle: SELECT A.*, CASE WHEN NVL(PAA009,) or PAA009&…

让Chrome⽀持⼩于12px 的⽂字⽅式有哪些?区别?

让Chrome⽀持⼩于12px 的⽂字⽅式有哪些?区别? 1、背景 Chrome 中⽂版浏览器会默认设定⻚⾯的最⼩字号是12px,英⽂版没有限制 原由 Chrome 团队认为汉字⼩于12px就会增加识别难度 • 中⽂版浏览器 与⽹⻚语⾔⽆关,取决于⽤户在C…

慢即是快,少即是多

慢即是快 “慢即是快”是一种强调质量而非速度的哲学或策略。以下是它的一些应用和解释: 1. 精准与质量: - 通过慢工出细活,确保任务或项目的每个步骤都高质量完成,避免因匆忙带来的错误和返工。最终,虽然过程看似…

Hadoop期末复习(完整版)

前言(全部为语雀导出,个人所写,仅用于学习!!!!) 复习之前我们要有目的性,明确考什么,不考什么。 对于hadoop来说,首先理论方面是跑不掉的&#x…

微信小程序中,点击视频,没有跳转播放,可能是因为没有在app.json中正确注册视频播放页面的路径

const customMethodMap {handlePreview(e) {const { item: { url } } e?.currentTarget?.datasetconsole.log(Clicked item URL:, url); // 输出URLconst type url.split(.)[url.split(.)?.length - 1]console.log(File type:, type); // 输出文件类型console.log(isDoc(…

Effective C++ 学习笔记二

Effective C 学习笔记二 文章目录 Effective C 学习笔记二别让异常逃离析构函数绝不在构造和析构的过程中调用virtual函数令operator 返回一个reference to *this在operator中处理"自我赋值"C四种转换 别让异常逃离析构函数 C 并不禁止析构函数吐出异常,…

python如何安装扩展包

1、扩展包 Python安装额外的扩展包,一般使用anconda进行管理。 1、1安装命令 一般我们在anconda中通过pip install 包名 的方式进行安装,不过由于这些包在国外下载,因此需要配置合适的镜像促使其下载更快。 1、2 镜像源配置 1、2、1 一次…

Manus在虚拟现实仿真模拟中的应用案例分享

Manus虚拟现实手套作为一种高精度的人机交互设备,在仿真模拟领域展现出了巨大的应用潜力。通过提供实时、准确的手指动作捕捉数据,Manus手套为多个行业带来了前所未有的仿真体验,推动了技术发展和应用创新。 技术特点 1. 高精度手指跟踪 Ma…

查缺补漏----关于指令执行的题型

建议写完2009年,以及2015年对应题再看: 对于指令的执行要注意下面两点,理解了之后,题目都是非常套路化的: (1)读/写主存的指令与其他指令的书写不太一样: 读主存: 地址--->MAR M…

【Android】Java开发语言规范

Java语言规范 命名风格 **类名:**使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO,所有单词的首字母大写**方法名、参数名、成员变量、局部变量:**统一使用 lowerCam…

SpringBoot【实用篇】- 配置高级

文章目录 目标:1.ConfigurationProperties2.宽松绑定/松散绑定3. 常用计量单位绑定4.数据校验 目标: ConfigurationProperties宽松绑定/松散绑定常用计量单位绑定数据校验 1.ConfigurationProperties ConfigurationProperties 在学习yml的时候我们了解…

​Java面试经典 150 题.P13. 罗马数字转整数(012)​

本题来自:力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解: class Solution {public int romanToInt(String s) {int sum…

TS 项目中给常用的路径定义一个别名 tsconfig.json

TS 项目中给常用的路径定义一个别名 tsconfig.json 在 TS 项目中,可以定义一些自定义的别名,来取代经常需要引用的一些文件路径。 比如 Vue 项目中你可以需要经常从 /src 中取文件,在每个层级的文件中引用时的相对路径 ../../src ../src 都不…

Centos7中docker安装教程-详细版

卸载旧版(如果有) yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine \docker-selinux 若没有: 检查网络: ping 8.8.8.8 …

电脑软件:推荐一款免费且实用的电脑开关机小工具

目录 一、软件简介 二、软件功能 三、软件特点 四、使用说明 五、软件下载 今天给大家推荐一款免费且实用的电脑开关机小工具KShutdown,有需要的朋友可以下载试一下! 一、软件简介 KShutdown是一款精巧且实用的定时自动关机小工具,对于…

SQL Server身份验证模式

SQL Server是一个广泛使用的关系数据库管理系统,通常使用两种身份验证模式:Windows身份验证和SQL Server身份验证。理解这些身份验证方式的概念与更改方式的操作,对于数据库管理员和开发者至关重要。本文将详细介绍身份验证方式的概念以及如何…

Golang | Leetcode Golang题解之第525题连续数组

题目: 题解: func findMaxLength(nums []int) (maxLength int) {mp : map[int]int{0: -1}counter : 0for i, num : range nums {if num 1 {counter} else {counter--}if prevIndex, has : mp[counter]; has {maxLength max(maxLength, i-prevIndex)} …