菜鸟科技网

Linux必备命令有哪些?

Linux作为服务器和开发环境的主流操作系统,掌握其必备命令是高效工作的基础,以下从文件管理、系统监控、网络配置、文本处理、软件管理五个维度,详细解析常用命令的核心功能与使用场景,并附操作示例和注意事项。

Linux必备命令有哪些?-图1
(图片来源网络,侵删)

文件与目录管理命令

文件操作是Linux日常使用中最频繁的任务,以下命令覆盖了创建、移动、查看、删除等核心需求:

  1. ls(列出目录内容)
    基础用法:ls 仅显示当前目录文件名。
    常用选项:

    • -l:显示详细信息(权限、所有者、大小、修改时间),例如ls -l /home会列出home目录下所有文件的权限位为drwxr-xr-x的目录结构。
    • -a:显示隐藏文件(以开头的文件),如ls -a会显示.bashrc等配置文件。
    • -h:配合-l以人类可读格式显示文件大小(如1K、234M),例如ls -lh将文件大小从字节转换为更直观的单位。
  2. cd(切换目录)

    • cd /var/log:切换到系统日志目录。
    • cd ..:返回上级目录。
    • cd ~cd:直接返回用户主目录(如/home/username)。
    • cd -:在最近两次访问的目录间切换,例如从/etc切换到/usr后,cd -会返回/etc
  3. cp(复制文件/目录)

    Linux必备命令有哪些?-图2
    (图片来源网络,侵删)
    • cp file1.txt file2.txt:复制文件并重命名。
    • cp -r dir1/ dir2/:递归复制整个目录(必须加-r选项)。
    • cp -p file.txt /backup/:保留文件权限、时间戳等属性,适合备份重要配置文件。
  4. mv(移动/重命名文件)

    • mv oldname.txt newname.txt:重命名文件。
    • mv /tmp/file.log /var/log/:将文件移动到目标目录。
    • mv dir1/ dir2/:若dir2不存在,则重命名dir1为dir2;若dir2存在,则将dir1移动到dir2下。
  5. rm(删除文件/目录)

    • rm file.txt:删除文件(不可恢复,需谨慎)。
    • rm -r dir/:递归删除目录及其内容。
    • rm -f file.txt:强制删除,忽略不存在的文件提示(如rm -f *.tmp批量删除临时文件)。
  6. mkdir(创建目录)

    • mkdir newdir:创建单层目录。
    • mkdir -p parent/child/grandchild:递归创建多级目录(若父目录不存在则自动创建)。
  7. touch(创建空文件/更新时间戳)

    Linux必备命令有哪些?-图3
    (图片来源网络,侵删)
    • touch newfile.txt:创建空文件(若文件存在则更新其访问和修改时间为当前时间)。

系统监控与信息查询命令

排查服务器问题时,需快速掌握系统资源使用情况:

  1. top(动态监控进程)
    实时显示进程的CPU、内存占用,按P按CPU排序、M按内存排序、q退出,例如发现java进程占用CPU过高时,可通过top -p <PID>单独监控该进程。

  2. df(磁盘空间使用)

    • df -h:以人类可读格式显示各分区使用情况(如/dev/sda1已用80%)。
    • df -i:查看inode使用量,适用于文件数量多但单个文件小的场景(如日志目录)。
  3. free(内存使用)

    • free -h:显示内存和交换分区使用情况,buff/cache列需关注,表示可回收的缓存内存。
  4. ps(查看进程状态)

    • ps aux:显示所有进程的详细信息,USER列显示进程所有者,%CPU%MEM分别对应CPU和内存占用率。
    • ps -ef | grep nginx:查找与nginx相关的进程。
  5. uname(系统信息)

    • uname -a:显示内核版本、主机名等信息,例如Linux ubuntu 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

网络配置与诊断命令

网络问题排查依赖以下命令定位故障点:

  1. ping(测试网络连通性)

    • ping -c 4 8.8.8.8:发送4个ICMP包测试与Google DNS的连通性,time列显示往返时间。
  2. ifconfig(网络接口配置)

    • ifconfig eth0:查看网卡eth0的IP地址(如inet 192.168.1.100)、子网掩码等。
    • ifconfig eth0 up/down:启用或禁用网卡。
  3. netstat(网络连接状态)

    • netstat -tuln:显示监听的TCP(t)和UDP(u)端口,n表示以数字形式显示地址(避免DNS解析延迟)。
    • netstat -an | grep ESTABLISHED:查看已建立的TCP连接。
  4. ss(替代netstat的命令)

    • ss -tulnp:功能与netstat -tuln类似,但速度更快,p选项显示进程ID和名称。
  5. curl(网络请求工具)

    • curl -I http://example.com:获取HTTP响应头,检查服务是否正常(如状态码200)。
    • curl -o file.zip http://example.com/file.zip:下载文件并指定保存名。

文本处理命令

日志分析和配置修改常用以下命令高效处理文本:

  1. cat(查看文件内容)

    • cat /etc/passwd:直接显示文件全部内容(适合小文件)。
    • cat -n file.txt:显示行号,便于定位错误。
  2. less(分页查看文件)

    • less /var/log/syslog:支持上下翻页()、搜索(/keyword)、退出(q),适合大文件查看。
  3. grep(文本搜索)

    • grep "error" /var/log/nginx/error.log:搜索包含"error"的行。
    • grep -v "warning" file.txt:排除包含"warning"的行。
    • grep -n "root" /etc/passwd:显示匹配行的行号。
  4. sed(流编辑器)

    • sed 's/old/new/g' file.txt:全局替换文件中的"old"为"new"(原文件不变,需重定向保存)。
    • sed -i 's/127.0.0.1/192.168.1.1/g' config.conf:直接修改原文件。
  5. awk(文本分析工具)

    • awk '{print $1, $NF}' /var/log/access.log:打印每行的第1列和最后一列(如IP和请求路径)。
    • awk -F: '{print $1}' /etc/passwd:以冒号为分隔符,仅显示用户名列。

软件管理命令

不同发行版使用不同的包管理工具:

  1. Debian/Ubuntu(apt)

    • sudo apt update:更新软件包列表。
    • sudo apt install nginx:安装Nginx。
    • sudo apt remove nginx:卸载Nginx(保留配置文件)。
  2. CentOS/RHEL(yum/dnf)

    • sudo yum update:更新所有软件包。
    • sudo yum install httpd:安装Apache。
    • sudo yum erase httpd:完全卸载Apache。
  3. 编译安装(source)

    • tar -xvf source.tar.gz && cd source && ./configure && make && sudo make install:适用于从源码编译安装软件(如Nginx、MySQL)。

常用命令速查表

功能分类 命令 常用选项及示例
文件管理 ls -l(详细信息)、-a(隐藏文件)
cp -r(递归目录)、-p(保留属性)
系统监控 top P(CPU排序)、M(内存排序)
df -h(人类可读)、-i(inode使用)
网络诊断 ping -c 4(指定包数)
ss -tulnp(监听端口及进程)
文本处理 grep -n(显示行号)、-v(排除匹配)
sed s/old/new/g(全局替换)
软件管理 apt/yum install(安装)、remove(卸载)

相关问答FAQs

Q1: 如何快速查找大文件并清理磁盘空间?
A1: 使用find命令按大小查找文件,例如find /var -type f -size +100M查找/var目录下超过100MB的文件,结合du -sh *查看目录大小,定位后通过rm删除无用文件(如日志),若磁盘inode耗尽,需用find / -type f -name "*.tmp"删除临时文件。

Q2: 如何后台运行命令并查看输出?
A2: 使用nohup命令使进程在退出终端后仍运行,例如nohup python script.py > output.log 2>&1 &,其中>将标准输出重定向到output.log,2>&1将错误输出合并到标准输出,&表示后台运行,后续可通过tail -f output.log实时查看日志。

分享:
扫描分享到社交APP
上一篇
下一篇