自学内容网 自学内容网

Linux 常用命令详解:从基础操作到进阶应用

Linux 常用命令详解:从基础操作到进阶应用

简介

Linux 是一个强大且灵活的操作系统,它在服务器、开发环境和个人计算机中得到了广泛的应用。Linux 的命令行界面提供了丰富的工具和命令,可以帮助用户高效地管理系统、处理文件、监控性能和进行网络操作。熟练掌握这些命令是每个 Linux 用户和系统管理员的必备技能。

本文详细介绍了 Linux 系统中常用的命令,涵盖文件和目录操作、文件查看和编辑、系统信息和管理、用户和权限管理、网络管理、压缩和解压缩、进程管理、搜索和查找等方面的内容。通过本文,你将能够全面了解并熟练使用这些命令,从而提高在 Linux 环境中的工作效率。

一、文件和目录操作

1. ls

列出目录内容。

  • ls -l:详细列表显示。
    $ ls -l
    total 12
    drwxr-xr-x 2 user user 4096 Jul 24 12:34 dir1
    -rw-r--r-- 1 user user  123 Jul 24 12:34 file1.txt
    
  • ls -a:显示所有文件,包括隐藏文件。
    $ ls -a
    .  ..  .hidden  dir1  file1.txt
    
  • ls -lh:以人类可读的格式详细列表显示。
    $ ls -lh
    total 12K
    drwxr-xr-x 2 user user 4.0K Jul 24 12:34 dir1
    -rw-r--r-- 1 user user  123 Jul 24 12:34 file1.txt
    
2. cd

切换目录。

  • cd [directory]:切换到指定目录。
    $ cd /path/to/directory
    
  • cd ..:返回上一级目录。
    $ cd ..
    
  • cd ~:切换到当前用户的主目录。
    $ cd ~
    
3. pwd

显示当前工作目录路径。

$ pwd
/home/user
4. mkdir

创建新目录。

  • mkdir [directory]:创建目录。
    $ mkdir new_directory
    
  • mkdir -p [directory]:创建多级目录。
    $ mkdir -p parent_directory/child_directory
    
5. rmdir

删除空目录。

  • rmdir [directory]:删除指定空目录。
    $ rmdir empty_directory
    
6. cp

复制文件或目录。

  • cp [source] [destination]:复制文件或目录。
    $ cp file1.txt backup.txt
    
  • cp -r [source] [destination]:递归复制目录。
    $ cp -r dir1 backup_dir1
    
7. mv

移动或重命名文件或目录。

  • mv [source] [destination]:移动或重命名文件或目录。
    $ mv file1.txt new_file1.txt
    $ mv file1.txt /new/path/
    
8. rm

删除文件或目录。

  • rm [file]:删除文件。
    $ rm file1.txt
    
  • rm -r [directory]:递归删除目录及其内容。
    $ rm -r dir1
    
  • rm -rf [directory]:强制递归删除目录及其内容(危险操作)。
    $ rm -rf dir1
    
9. touch

创建空文件或更新文件的时间戳。

  • touch [file]:创建空文件或更新时间戳。
    $ touch newfile.txt
    

二、文件查看和编辑

1. cat

查看文件内容。

  • cat [file]:查看文件内容。
    $ cat file1.txt
    
  • cat [file1] [file2] > [newfile]:合并文件内容。
    $ cat file1.txt file2.txt > combined.txt
    
2. more

分屏查看文件内容。

  • more [file]:分屏查看文件内容。
    $ more file1.txt
    
3. less

分屏查看文件内容,支持向前翻页。

  • less [file]:分屏查看文件内容。
    $ less file1.txt
    
4. head

查看文件开头部分。

  • head [file]:查看文件开头部分。
    $ head file1.txt
    
  • head -n 10 [file]:查看文件的前 10 行。
    $ head -n 10 file1.txt
    
5. tail

查看文件结尾部分。

  • tail [file]:查看文件结尾部分。
    $ tail file1.txt
    
  • tail -n 10 [file]:查看文件的最后 10 行。
    $ tail -n 10 file1.txt
    
  • tail -f [file]:实时查看文件更新(常用于日志文件)。
    $ tail -f logfile.txt
    
6. nano

简单文本编辑器。

  • nano [file]:编辑文件。
    $ nano file1.txt
    
7. vim

功能强大的文本编辑器。

  • vim [file]:编辑文件。
    $ vim file1.txt
    
Vim 基本操作指令
  • 模式切换

    • i:进入插入模式。
    • Esc:返回普通模式。
    • ::进入命令模式。
  • 移动光标

    • h:左移光标。
    • j:下移光标。
    • k:上移光标。
    • l:右移光标。
    • w:移动到下一个单词开头。
    • b:移动到前一个单词开头。
    • 0:移动到行首。
    • $:移动到行尾。
  • 编辑文本

    • x:删除当前字符。
    • dd:删除当前行。
    • dw:删除当前单词。
    • u:撤销上一步操作。
    • yy:复制当前行。
    • p:粘贴。
  • 搜索和替换

    • /pattern:向下搜索模式。
    • ?pattern:向上搜索模式。
    • n:下一个匹配。
    • N:上一个匹配。
    • :s/old/new:替换当前行第一个匹配。
    • :s/old/new/g:替换当前行所有匹配。
    • :%s/old/new/g:替换整个文件中的所有匹配。
  • 文件操作

    • :w:保存文件。
    • :q:退出。
    • :wq:保存并退出。
    • :q!:强制退出(不保存)。
8. emacs

另一个功能强大的文本编辑器。

  • emacs [file]:编辑文件。
    $ emacs file1.txt
    

三、系统信息和管理

1. top

实时显示系统中的进程信息。

  • top:显示实时系统状态。
    $ top
    
  • htop:增强版的 top,需要单独安装。
    $ htop
    
2. df

显示文件系统磁盘空间使用情况。

  • df:显示磁盘使用情况。
    $ df
    
  • df -h:以人类可读的格式显示磁盘使用情况。
    $ df -h
    
3. du

显示目录或文件的磁盘使用情况。

  • du [directory]:显示磁盘使用情况。
    $ du /path/to/directory
    
  • du -h [directory]:以人类可读的格式显示。
    $ du -h /path/to/directory
    
  • du -sh [directory]:显示目录或文件的总大小。
    $ du -sh /path/to/directory
    
4. free

显示系统内存使用情况。

  • free:显示内存使用情况。
    $ free
    
  • free -h:以人类可读的格式显示。
    $ free -h
    
5. uname

显示系统信息。

  • uname -a:显示所有系统信息。
    $ uname -a
    
6. uptime

显示系统运行时间和负载。

  • uptime:显示系统运行时间、用户数和负载。
    $ uptime
    
7. dmesg

查看系统启动信息和内核日志。

  • dmesg:显示内核环缓冲区的消息。
    $ dmesg
    
8. systemctl

管理系统服务(适用于 systemd 系统)。

  • systemctl start [service]:启动服务。
    $ systemctl start nginx
    
  • systemctl stop [service]:停止服务。
    $ systemctl stop nginx
    
  • systemctl restart [service]:重启服务。
    $ systemctl restart nginx
    
  • systemctl status [service]:查看服务状态。
    $ systemctl status nginx
    
  • systemctl enable [service]:开机自动启动服务。
    $ systemctl enable nginx
    
  • systemctl disable [service]:取消开机自动启动服务。
    $ systemctl disable nginx
    
  • systemctl start firewall:启动防火墙服务。
    $ systemctl start firewalld
    

四、用户和权限管理

1. whoami

显示当前用户。

  • whoami:显示当前登录用户的用户名。
    $ whoami
    
2. id

显示用户信息。

  • id [user]:显示指定用户的信息。
    $ id
    $ id username
    
3. chmod

修改文件权限。

  • chmod [permissions] [file]:修改文件权限。
    $ chmod 755 script.sh
    
  • chmod +x [file]:添加执行权限。
    $ chmod +x script.sh
    
chmod 权限详细示例
  • 权限符号含义

    • r:读权限(4)。
    • w:写权限(2)。
    • x:执行权限(1)。
    • -:无权限(0)。
  • 权限组合

    • 7:读、写、执行(4 + 2 + 1)。
    • 6:读、写(4 + 2)。
    • 5:读、执行(4 + 1)。
    • 4:读(4)。
    • 3:写、执行(2 + 1)。
    • 2:写(2)。
    • 1:执行(1)。
    • 0:无(0)。
  • 示例

    $ chmod 755 script.sh  # 所有者读写执行,组用户和其他用户读执行
    $ chmod 644 file.txt   # 所有者读写,组用户和其他用户读
    $ chmod +x script.sh   # 所有用户添加执行权限
    
4. chown

修改文件所有者和组。

  • chown [owner]:[group] [file]:修改文件所有者和组。
    $ chown user:group file1.txt
    
chown 权限详细示例
  • 更改文件所有者

    $ chown newuser file1.txt  # 更改所有者为 newuser
    
  • 更改文件所有者和组

    $ chown newuser:newgroup file1.txt  # 更改所有者为 newuser,组为 newgroup
    
  • 递归更改目录及其内容的所有者

    $ chown -R newuser:newgroup /path/to/directory  # 递归更改
    
5. chgrp

修改文件所属组。

  • chgrp [group] [file]:修改文件所属组。
    $ chgrp group file1.txt
    
chgrp 权限详细示例
  • 更改文件所属组

    $ chgrp newgroup file1.txt  # 更改组为 newgroup
    
  • 递归更改目录及其内容的所属组

    $ chgrp -R newgroup /path/to/directory  # 递归更改
    
6. sudo

以超级用户权限执行命令。

  • sudo [command]:以超级用户权限执行命令。
    $ sudo apt update
    
7. su

切换用户。

  • su [user]:切换到指定用户。
    $ su -
    $ su - username
    
8. crontab

定时任务管理。

  • crontab -e:编辑当前用户的定时任务。
    $ crontab -e
    
crontab 示例
  • 添加每小时运行的任务

    0 * * * * /path/to/command
    
  • 添加每天午夜运行的任务

    0 0 * * * /path/to/command
    
  • 添加每周日凌晨 3 点运行的任务

    0 3 * * 0 /path/to/command
    

五、网络管理

1. ping

测试与主机的连接。

  • ping [host]:测试与主机的连接。
    $ ping google.com
    
2. ifconfig

显示或配置网络接口(旧版)。

  • ifconfig:显示网络接口信息。
    $ ifconfig
    
3. ip

显示或配置网络接口(推荐)。

  • ip addr:显示网络接口信息。
    $ ip addr
    
  • ip link set [interface] up:启用网络接口。
    $ ip link set eth0 up
    
  • ip link set [interface] down:禁用网络接口。
    $ ip link set eth0 down
    
4. netstat

显示网络连接、路由表和接口统计信息。

  • netstat -tuln:显示所有监听的 tcp 和 udp 端口。
    $ netstat -tuln
    
5. ss

显示网络连接和套接字统计信息(更现代的工具)。

  • ss:显示套接字信息。
    $ ss
    
  • ss -tuln:显示所有监听的 tcp 和 udp 套接字。
    $ ss -tuln
    
6. wget

下载文件。

  • wget [url]:下载指定 URL 的文件。
    $ wget http://example.com/file.zip
    
7. curl

传输数据。

  • curl [url]:传输数据或获取 URL 内容。
    $ curl http://example.com
    

六、压缩和解压缩

1. tar

打包和解压文件。

  • tar -cvf [archive.tar] [file/dir]:创建 tar 包。
    $ tar -cvf archive.tar file1.txt dir1
    
  • tar -xvf [archive.tar]:解压 tar 包。
    $ tar -xvf archive.tar
    
  • tar -czvf [archive.tar.gz] [file/dir]:创建 gzip 压缩的 tar 包。
    $ tar -czvf archive.tar.gz file1.txt dir1
    
  • tar -xzvf [archive.tar.gz]:解压 gzip 压缩的 tar 包。
    $ tar -xzvf archive.tar.gz
    
2. gzip

压缩和解压缩文件。

  • gzip [file]:压缩文件。
    $ gzip file1.txt
    
  • gunzip [file.gz]:解压 gzip 文件。
    $ gunzip file1.txt.gz
    
3. zip

创建和解压 zip 文件。

  • zip [archive.zip] [file/dir]:创建 zip 包。
    $ zip archive.zip file1.txt dir1
    
  • unzip [archive.zip]:解压 zip 包。
    $ unzip archive.zip
    

七、进程管理

1. ps

显示当前进程。

  • ps:显示当前会话的进程。
    $ ps
    
  • ps aux:显示所有进程。
    $ ps aux
    
  • ps -ef:显示详细格式的进程信息。
    $ ps -ef
    
2. kill

终止进程。

  • kill [pid]:终止指定进程。
    $ kill 1234
    
  • kill -9 [pid]:强制终止指定进程。
    $ kill -9 1234
    
3. pkill

根据进程名称终止进程。

  • pkill [process_name]:终止指定名称的进程。
    $ pkill firefox
    
4. bg

将进程放到后台运行。

  • bg:将最近的作业放到后台运行。
    $ bg
    
5. fg

将后台进程放到前台运行。

  • fg:将最近的作业放到前台运行。
    $ fg
    
6. jobs

显示当前会话的后台作业。

  • jobs:显示当前会话的后台作业。
    $ jobs
    

八、搜索和查找

1. find

搜索文件和目录。

  • find [path] -name [pattern]:按名称搜索文件或目录。
    $ find /home/user -name "*.txt"
    
  • find [path] -type [f/d] -name [pattern]:按类型和名称搜索文件或目录。
    $ find /home/user -type f -name "*.txt"
    
  • find [path] -mtime [n]:搜索 n 天前修改的文件。
    $ find /home/user -mtime -7  # 最近 7 天修改的文件
    
2. grep

在文件中搜索文本。

  • grep [pattern] [file]:在文件中搜索模式。
    $ grep "search_term" file1.txt
    
  • grep -r [pattern] [directory]:递归搜索目录中的模式。
    $ grep -r "search_term" /path/to/directory
    
  • grep -i [pattern] [file]:忽略大小写进行搜索。
    $ grep -i "search_term" file1.txt
    
3. locate

快速查找文件或目录(基于数据库)。

  • locate [pattern]:查找文件或目录。
    $ locate "*.txt"
    
4. awk

适用于数据提取和报告生成。

  • awk '{print $1}' [file]:打印文件的第一列。
    $ awk '{print $1}' file1.txt
    
  • awk -F: '{print $1}' /etc/passwd:以冒号为分隔符,打印 /etc/passwd 文件的第一列。
    $ awk -F: '{print $1}' /etc/passwd
    
5. sed

流编辑器,用于文本替换、插入、删除等操作。

  • sed 's/old/new/g' [file]:将文件中的所有 “old” 替换为 “new”。
    $ sed 's/old/new/g' file1.txt
    
  • sed -n '1,5p' [file]:显示文件的第 1 到第 5 行。
    $ sed -n '1,5p' file1.txt
    

九、其他

1. alias

创建命令别名。

  • alias [name]='[command]':创建命令别名。
    $ alias ll='ls -la'
    
  • unalias [name]:删除命令别名。
    $ unalias ll
    
2. date

显示或设置系统日期和时间。

  • date:显示当前日期和时间。
    $ date
    
  • date -s "2023-07-24 18:30:00":设置系统日期和时间。
    $ date -s "2023-07-24 18:30:00"
    
3. history

显示命令历史。

  • history:显示命令历史。
    $ history
    
  • !n:执行历史中的第 n 条命令。
    $ !100
    
4. echo

输出文本。

  • echo [text]:输出文本。
    $ echo "Hello, World!"
    
  • echo $PATH:显示环境变量值。
    $ echo $PATH
    
5. man

查看命令的手册页。

  • man [command]:查看命令的手册页。
    $ man ls
    
6. exit

退出终端。

  • exit:退出当前终端会话。
    $ exit
    

结论

以上列出了 Linux 系统中一些常用的命令及其用法,并提供了详细的例子。这些命令涵盖了文件和目录操作、文件查看和编辑、系统信息和管理、用户和权限管理、网络管理、压缩和解压缩、进程管理、搜索和查找以及其他常见任务。掌握这些命令可以极大地提高你在 Linux 环境中的工作效率。建议在实际操作中多加练习,以便熟练掌握这些命令。

通过本文,你不仅可以了解各个命令的基本用法,还能掌握一些高级技巧,从而在实际工作中更加得心应手。希望本文对你学习和使用 Linux 命令有所帮助。


原文地址:https://blog.csdn.net/qq_38411796/article/details/140653964

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!