Linux系统常用命令

Linux 系统中的命令行工具非常强大,是日常操作、管理系统和开发中不可或缺的工具。下面我将详细介绍一些常用的 Linux 命令,并附上常见的用法和示例,帮助你更好地理解它们的用途。


1. 文件和目录管理命令

  • ls
    列出目录内容。常用选项:
    • ls -l:长格式显示,包括权限、所有者、大小和修改时间。
    • ls -a:显示所有文件(包括隐藏文件)。
    • 示例:ls -la /home/user
  • cd
    切换当前工作目录。
    • 示例:cd /var/log 切换到 /var/log 目录;cd .. 返回上一级目录。
  • pwd
    显示当前工作目录的完整路径。
    • 示例:pwd
  • mkdir
    创建新目录。
    • 示例:mkdir new_folder 创建名为 new_folder 的目录;mkdir -p /tmp/a/b 递归创建多级目录。
  • rmdir
    删除空目录。
    • 示例:rmdir empty_folder
  • cp
    复制文件或目录。
    • 示例:cp file1.txt file2.txt 复制文件;cp -r folder1 folder2 递归复制目录。
  • mv
    移动或重命名文件、目录。
    • 示例:mv oldname.txt newname.txt 改名文件;mv file.txt /destination/path/ 移动文件。
  • rm
    删除文件或目录。
    • 示例:rm file.txt 删除单个文件;rm -r folder 递归删除目录;使用 -f 选项可强制删除。
  • touch
    创建空文件或更新文件的访问和修改时间。
    • 示例:touch newfile.txt

2. 文件查看和操作命令

  • cat
    连接并显示文件内容。
    • 示例:cat file.txt 显示文件内容;可以用来合并多个文件。
  • more / less
    分页查看文件内容。
    • 示例:less file.txt,使用上下键或 PgUp/PgDn 翻页。
    • less 功能比 more 强大,支持向前翻页。
  • head / tail
    显示文件的开头或结尾部分。
    • 示例:head -n 10 file.txt 查看前 10 行;tail -n 10 file.txt 查看后 10 行。
    • tail -f file.log 实时查看日志文件动态更新。
  • grep
    在文件中查找匹配特定模式的文本。
    • 示例:grep "error" /var/log/syslog 查找包含“error”的行;grep -r "main" ./src 递归搜索目录。
  • find
    在目录树中查找文件和目录。
    • 示例:find / -name "*.conf" 查找所有 .conf 文件;find . -type d -name "config" 查找当前目录下名称为 config 的目录。
  • diff
    比较两个文件或目录的差异。
    • 示例:diff file1.txt file2.txt

3. 权限和用户管理

  • chmod
    改变文件或目录的权限。
    • 示例:chmod 755 script.sh 将 script.sh 设置为所有者可读写执行,组和其他用户可读执行。
  • chown
    改变文件或目录的所有者和群组。
    • 示例:chown user:group file.txt 将 file.txt 的所有者改为 user,群组改为 group。
  • su / sudo
    切换用户或以超级用户身份执行命令。
    • su 切换到其他用户身份;
    • sudo command 用管理员权限执行命令,前提是当前用户在 sudoers 列表中。

4. 压缩与归档

  • tar
    用于打包和压缩文件。
    • 示例:tar -cvf archive.tar /path/to/dir 打包目录;
    • tar -zxvf archive.tar.gz 解压 tar.gz 文件。
    • 选项说明:-c 创建,-v 显示过程,-f 指定文件,-z 使用 gzip 压缩。
  • gzip / gunzip
    用于压缩或解压单个文件。
    • 示例:gzip file.txt 压缩文件;gunzip file.txt.gz 解压文件。
  • zip / unzip
    用于创建和解压 .zip 格式的压缩包。
    • 示例:zip archive.zip file1.txt file2.txt 创建压缩包;unzip archive.zip 解压。

5. 系统监控与管理

  • ps
    列出当前运行的进程。
    • 示例:ps aux 显示所有用户的所有进程;ps -ef 是另一种格式的显示方式。
  • top / htop
    实时显示系统资源使用情况。
    • 示例:top 显示 CPU、内存等信息;htop 是增强版,需要额外安装。
  • free
    查看系统内存使用情况。
    • 示例:free -h 以易读格式显示内存信息。
  • df
    显示文件系统磁盘空间使用情况。
    • 示例:df -h 以人性化格式显示各分区使用情况。
  • du
    显示目录或文件的磁盘使用情况。
    • 示例:du -sh /path/to/dir 显示目录的总大小。
  • uname
    显示系统信息。
    • 示例:uname -a 显示所有相关信息(内核版本、系统架构等)。
  • uptime
    显示系统运行时间和负载情况。
    • 示例:uptime

6. 网络相关命令

  • ifconfig / ip
    配置和显示网络接口信息。
    • 示例:ifconfig(较老的工具)或 ip addr(推荐现代用法)。
  • ping
    测试网络连通性。
    • 示例:ping www.google.com 检查与目标主机的连接情况。
  • netstat / ss
    查看网络连接、路由表、接口统计等信息。
    • 示例:netstat -tulnp 显示所有监听端口;ss -tulw 类似用法,但更快更现代。
  • curl / wget
    从网络上下载内容。
    • 示例:wget http://example.com/file.zip 下载文件;
    • curl -O http://example.com/file.zip 也可以下载文件。
  • ssh
    通过安全通道连接远程主机。
    • 示例:ssh user@remote_host 远程登录服务器。
  • scp
    通过 SSH 协议在本地主机和远程主机间复制文件。
    • 示例:scp file.txt user@remote_host:/path/to/destination
    • 支持目录复制:scp -r folder user@remote_host:/path/to/destination

7. 进程管理

  • kill / killall
    结束进程。
    • 示例:kill PID 发送默认信号终止进程;
    • kill -9 PID 强制杀死进程;
    • killall process_name 根据名称结束所有相关进程。
  • bg / fg
    管理后台和前台任务。
    • 示例:
      • Ctrl+Z 将前台任务挂起;
      • bg 将任务放入后台运行;
      • fg 将后台任务调回前台。
  • jobs
    查看当前 shell 会话中的所有作业。
    • 示例:jobs

8. 环境变量及其他常用命令

  • echo
    在终端输出字符串或变量值。
    • 示例:echo "Hello, Linux!"echo $PATH 查看环境变量 PATH。
  • env
    显示当前环境变量。
    • 示例:env
  • export
    设置或导出环境变量。
    • 示例:export PATH=$PATH:/new/path
  • history
    显示命令历史记录,方便查找和重复使用之前的命令。
    • 示例:history
  • man
    显示命令的手册页,提供详细的用法和参数说明。
    • 示例:man ls 查看 ls 命令的详细文档。
  • alias
    为常用命令设置别名,简化输入。
    • 示例:alias ll='ls -la' 以后输入 ll 即可执行 ls -la。

这些只是 Linux 系统中众多命令的一部分。不同的场景下,可能还会用到如编辑器(vim、nano)、版本控制工具(git)、日志管理(journalctl)等其他工具。掌握这些常用命令,将极大提高你在 Linux 环境下的工作效率和系统管理能力。