Linux常用命令
侧边栏壁纸
  • 累计撰写 7 篇文章
  • 累计收到 1 条评论

Linux常用命令

Minpub
2025-11-20 / 1 评论 / 16 阅读 / 正在检测是否收录...

一、文件与目录操作

这是最基础也最常用的命令组,用于管理服务器上的文件和文件夹。

  1. ls:列出目录内容。

    • ls -l:以长格式显示,包含权限、大小、修改时间等详细信息。
    • ls -a:显示所有文件,包括以 “.” 开头的隐藏文件。
  2. cd:切换当前工作目录。

    • cd /home:切换到/home目录。
    • cd ..:切换到上一级目录。
    • cd ~:切换到当前用户的家目录。
  3. pwd:显示当前工作目录的绝对路径。
  4. mkdir:创建新目录。

    • mkdir test:创建名为test的目录。
    • mkdir -p /a/b/c:递归创建多级目录,即使上级目录不存在。
  5. rm:删除文件或目录。

    • rm file.txt:删除file.txt文件(需确认)。
    • rm -f file.txt:强制删除文件,无需确认。
    • rm -rf dir:强制递归删除目录及其所有内容,使用时务必谨慎
  6. cp:复制文件或目录。

    • cp file1.txt file2.txt:将file1.txt复制为file2.txt
    • cp -r dir1 dir2:递归复制dir1目录及其内容到dir2
  7. mv:移动或重命名文件 / 目录。

    • mv file1.txt /home:将file1.txt移动到/home目录。
    • mv oldname.txt newname.txt:将oldname.txt重命名为newname.txt

二、系统信息查看

用于了解服务器的硬件、系统版本、资源使用等状态。

  1. uname:查看系统内核信息。

    • uname -r:显示内核版本,如3.10.0-1160.el7.x86_64
    • uname -a:显示完整的系统信息,包括内核、主机名、架构等。
  2. cat /etc/centos-release:查看 CentOS 的具体版本,如CentOS Linux release 7.9.2009 (Core)
  3. free:查看内存使用情况。

    • free -h:以人类可读的格式(如 GB、MB)显示内存信息。
  4. df:查看磁盘分区使用情况。

    • df -h:以人类可读的格式显示各分区的容量、已用、可用空间。
  5. top:实时查看系统进程和资源占用(CPU、内存)。

    • q键退出top界面。
  6. ps:查看当前运行的进程。

    • ps aux:显示所有用户的所有进程详细信息。

三、用户与权限管理

用于创建用户、分配权限,保障系统安全。

  1. useradd:创建新用户。

    • useradd testuser:创建名为testuser的用户。
  2. passwd:设置或修改用户密码。

    • passwd testuser:为testuser设置密码(输入时密码不显示)。
  3. userdel:删除用户。

    • userdel testuser:删除testuser用户(默认不删除家目录)。
    • userdel -r testuser:删除用户的同时,删除其家目录。
  4. chmod:修改文件或目录的权限。

    • chmod 755 file.sh:设置file.sh的权限为所有者可读可写可执行,其他用户可读可执行。
    • chmod +x file.sh:为file.sh添加执行权限。
  5. chown:修改文件或目录的所有者和所属组。

    • chown testuser:testuser file.txt:将file.txt的所有者和所属组都改为testuser

四、软件包管理(YUM)

CentOS 7 及以下默认使用 YUM 包管理器,用于安装、更新、卸载软件。

  1. yum install:安装软件包。

    • yum install nginx:安装 Nginx 服务。
  2. yum update:更新软件包。

    • yum update nginx:仅更新 Nginx。
    • yum update:更新系统中所有可更新的软件包。
  3. yum remove:卸载软件包。

    • yum remove nginx:卸载 Nginx 服务。
  4. yum list:列出已安装或可安装的软件包。

    • yum list installed:列出所有已安装的软件包。
  5. yum search:搜索软件包。

    • yum search redis:搜索与redis相关的软件包。

五、服务管理(systemctl)

CentOS 7 及以上使用systemctl管理系统服务,替代了传统的service命令。

  1. 启动服务systemctl start nginx
  2. 停止服务systemctl stop nginx
  3. 重启服务systemctl restart nginx
  4. 查看服务状态systemctl status nginx
  5. 设置开机自启systemctl enable nginx
  6. 取消开机自启systemctl disable nginx

六、网络操作

用于配置和查看服务器的网络信息。

  1. ifconfig:查看或配置网卡信息(部分系统需安装net-tools包)。
  2. ip addr:查看网卡 IP 地址(CentOS 7 及以上推荐使用)。
  3. ping:测试与目标主机的网络连通性。

    • ping www.baidu.com:测试与百度的连通性,按Ctrl+C停止。
  4. netstat:查看网络连接状态(需安装net-tools包)。

    • netstat -tuln:查看所有监听中的 TCP 和 UDP 端口。
  5. curl/wget:下载文件或测试 URL。

    • curl www.baidu.com:获取百度首页的 HTML 内容。
    • wget https://xxx.com/file.tar.gz:下载指定 URL 的文件。

七、文件内容操作

  1. cat:查看文件内容(适合小文件)。

    • cat file.txt:直接显示文件全部内容。
    • cat -n file.txt:显示内容并带行号。
  2. more/less:分页查看大文件内容。

    • more largefile.txt:按页显示,按空格翻页,q退出。
    • less largefile.txt:支持上下滚动、搜索(输入/关键词查找,n下一个),更灵活。
  3. head/tail:查看文件开头或结尾内容。

    • head -n 10 file.txt:显示文件前 10 行。
    • tail -n 20 file.txt:显示文件后 20 行。
    • tail -f /var/log/messages:实时跟踪文件新增内容(常用于查看日志,Ctrl+C退出)。
  4. grep:在文件中搜索关键词(强大的文本过滤工具)。

    • grep "error" /var/log/nginx/error.log:在 Nginx 错误日志中搜索包含 “error” 的行。
    • grep -i "Error" file.txt:忽略大小写搜索。
    • grep -r "test" /home:递归搜索/home目录下所有文件中包含 “test” 的内容。
  5. sed:文本替换(非交互式编辑)。

    • sed -i 's/old/new/g' file.txt:将文件中所有 “old” 替换为 “new”(-i直接修改原文件,谨慎使用)。
  6. touch:创建空文件或更新文件时间戳。

    • touch newfile.txt:创建空文件。
    • touch -d "2023-01-01" file.txt:修改文件的修改时间为指定日期。

八、压缩与解压

  1. tar:打包 / 解压文件(常用与.tar.tar.gz.tar.bz2等格式)。

    • 打包并压缩为.tar.gztar -zcvf archive.tar.gz dir/z用 gzip 压缩,c创建,v显示过程,f指定文件名)。
    • 解压.tar.gztar -zxvf archive.tar.gzx解压)。
    • 解压.tar.bz2tar -jxvf archive.tar.bz2j用 bzip2 压缩)。
  2. zip/unzip:处理.zip格式。

    • 压缩:zip -r archive.zip dir/-r递归压缩目录)。
    • 解压:unzip archive.zip(解压到当前目录)。
    • 查看压缩包内容:unzip -l archive.zip
  3. gzip/gunzip:压缩 / 解压单个文件(仅支持.gz格式,会删除原文件)。

    • 压缩:gzip file.txt(生成file.txt.gz,删除file.txt)。
    • 解压:gunzip file.txt.gz(生成file.txt,删除file.gz)。

九、进程管理进阶

  1. kill:终止进程(需知道进程 ID,可通过pstop获取)。

    • kill 1234:发送终止信号给 ID 为 1234 的进程(默认信号 15,优雅终止)。
    • kill -9 1234:强制终止进程(信号 9,用于无法优雅终止的进程,谨慎使用)。
  2. pkill:按进程名终止进程。

    • pkill nginx:终止所有名为nginx的进程。
  3. pgrep:按名称查找进程 ID。

    • pgrep nginx:返回所有nginx进程的 ID。
  4. nohup:后台运行进程,断开终端后不终止。

    • nohup ./script.sh &:后台运行script.sh,输出日志到nohup.out
    • nohup ./my_script.sh > my_log.log 2>&1 & 指定日志文件
    • &:将命令放入后台运行(即使不加 nohup& 也能让命令在后台运行,但终端关闭后会终止)。两者结合:实现 “后台运行 + 终端关闭不终止”。
    • 2>&1:将标准错误(stderr,如错误信息)也重定向到 my_log.log(与 stdout 合并)。
    • nohup ./my_script.sh > /dev/null 2>&1 & 不输出日志文件

十、磁盘与存储管理

  1. du:查看文件 / 目录占用的磁盘空间。

    • du -sh /home:以人类可读格式显示/home目录总大小(s汇总,h人性化)。
    • du -h --max-depth=1 /var:显示/var下一级子目录的大小。
  2. fdisk:磁盘分区管理(需 root 权限)。

    • fdisk -l:列出所有磁盘及分区信息。
    • fdisk /dev/sda:对/dev/sda磁盘进行分区操作(进入交互模式)。
  3. mount/umount:挂载 / 卸载文件系统。

    • 挂载 U 盘(假设设备为/dev/sdb1):mount /dev/sdb1 /mnt/usb
    • 卸载:umount /mnt/usb(卸载前确保无程序使用该目录)。
  4. lsblk:查看磁盘分区布局(更直观的树形结构)。

    • lsblk:列出所有块设备(磁盘、分区)的名称、大小、挂载点等。

十一、系统日志与时间管理

  1. 查看系统日志

    • /var/log/messages:系统通用日志(需 root 权限)。
    • /var/log/secure:用户登录、权限相关日志(如 SSH 登录失败记录)。
    • journalctl:CentOS 7 + 的日志管理工具(替代传统日志文件)。

      • journalctl -u nginx:查看 Nginx 服务的日志。
      • journalctl --since "1 hour ago":查看 1 小时内的日志。
  2. 时间管理

    • date:显示当前系统时间。
    • date -s "2025-10-24 15:30:00":手动设置系统时间(需 root)。
    • timedatectl:查看 / 设置时区和时间同步。

      • timedatectl set-timezone Asia/Shanghai:设置时区为上海。
      • timedatectl set-ntp yes:开启网络时间同步(NTP)。

十二、其他实用命令

  1. clear:清空终端屏幕(快捷键Ctrl+L也可)。
  2. history:查看历史命令记录。

    • history | grep "yum":搜索包含 “yum” 的历史命令。
    • !123:执行历史记录中第 123 条命令。
  3. ln:创建链接文件(类似 Windows 快捷方式)。

    • 软链接(推荐):ln -s /usr/local/bin/python3 /usr/bin/python(删除原文件后链接失效)。
    • 硬链接:ln file.txt file_link(与原文件共享 inode,删除原文件不影响链接)。
  4. scp:远程复制文件(基于 SSH)。

    • 本地到远程:scp localfile.txt user@remote_ip:/home/
    • 远程到本地:scp user@remote_ip:/home/file.txt ./
  5. ssh:远程登录服务器。

    • ssh user@remote_ip:通过用户名 + IP 登录。
    • ssh -p 2222 user@remote_ip:指定端口(默认 22)登录。

查看端口

netstat -tulnp | grep 8080

查看进程

ps aux | grep python
0

评论 (1)

取消
  1. 头像
    Minpub 作者
    Windows 10 · Google Chrome

    emmm...

    回复