Linux常用命令

Linux常用命令

  • Linux命令可以组合使用

帮助指令

  • man(manual)是 Linux 中最常用的帮助命令,用于查看命令的手册页。

  • man [选项] 命令名
    
    • -k:搜索与关键词相关的手册页。
    • -f:显示命令的简短描述。
  • help 是 Shell 内置命令的帮助工具,用于查看 Shell 内置命令的用法。

  • help [命令名]
    
  • 大多数 Linux 命令支持 --help 选项,用于显示命令的简要帮助信息。

  • 命令名 --help
    

关机重启命令

  • 无论是重启还是关闭系统,首先都要执行sync命令,把内存中的数据写入磁盘
  • 目前的shutdown/reboot/halt等命令都在关机前进行了sync命令

关机命令

  • shutdown
    • 功能:安全地关闭系统。
    • 常用选项
      • shutdown -h now:立即关机。
      • shutdown -h +10:10 分钟后关机。
      • shutdown -h 20:00:在指定时间(20:00)关机。
      • shutdown -c:取消已计划的关机。

重启命令

  • reboot
    • 功能:立即重启系统。
    • 常用选项
      • reboot:立即重启。
  • shutdown -r
    • 功能:安全地重启系统。
    • 常用选项
      • shutdown -r now:立即重启。
      • shutdown -r +10:10 分钟后重启。
      • shutdown -r 20:00:在指定时间(20:00)重启。

用户相关命令

切换用户

  • 从权限高的用户切换到权限低的用户不需要输入密码,反之则需要

  • su:切换用户。默认情况下,如果不指定用户名,su 会切换到 root 用户。

    • 常用选项
      • su username:切换到指定用户。
        • su:切换用户,需要目标用户的密码。
      • su - username:切换到指定用户并加载其环境变量。
  • sudo:以超级用户权限执行命令。

    • 常用选项
      • sudo command:以 root 权限执行命令。
      • sudo -u username command:以指定用户权限执行命令。
        • su 不同,sudo 不需要知道目标用户的密码,只需要输入当前用户的密码。
  • sudo su 命令

    • sudo su 结合了 sudosu 的功能,允许用户切换到 root 或其他用户,而不需要知道目标用户的密码。
  • 切换用户后,可以使用 exitlogout 命令返回到原来的用户。

创建用户

  • useradd 命令

    • useradd 是一个底层命令,用于创建新用户。它提供了许多选项来定制用户属性。

    • useradd [选项] 用户名
      
    • 默认在/home文件夹下创建和用户名相同的文件夹作为用户主目录

    • 常用选项

      • -m--create-home:创建用户的主目录(通常位于 /home/用户名)。

      • -d--home-dir:指定用户的主目录路径。

        • useradd  -d /home/bob_home bob
          
        • 手动指定bob的主目录名称为bob_home

      • -s--shell:指定用户的默认 shell(如 /bin/bash)。

      • -g--gid:指定用户的主组(GID)。

      • -G--groups:指定用户的附加组(多个组用逗号分隔)。

      • -u--uid:指定用户的 UID。

      • -p--password:设置用户的密码(通常不推荐直接使用,因为密码需要加密)。

      • -e--expiredate:设置用户账户的过期日期(格式:YYYY-MM-DD)。

      • -c--comment:添加用户的描述信息(通常是用户的全名)。

设置用户密码

  • passwd 命令

    • 创建用户后,通常需要为其设置密码。

    • passwd 用户名
      
    • 然后在下一行为该用户设置密码

查看用户信息

  • whoami

    • 显示当前登录用户的用户名。如果其中切换用户则显示为第一次登录用户的用户名。
  • id

    • 显示当前用户或指定用户的 UID、GID 和所属组。

    • id [选项] [用户名]
      
    • 不加用户名则显示为当前用户

  • groups

    • 显示当前用户或指定用户所属的组。

    • groups [用户名]
      

修改用户属性

  • 创建用户后,可以使用 usermod 命令修改用户属性。

  • usermod  [选项] 用户名
    
  • 常用选项:

    • -d:修改用户的主目录。

    • -s:修改用户的默认 shell。

    • -g:修改用户的主组。

    • -G:修改用户的附加组。

    • -l:修改用户的登录名。

      • 将用户 alice 的登录名改为 alice_new

      • usermod -l alice_new alice
        
    • -e:修改账户的过期日期。

删除用户

  • 可以使用 userdel 命令删除用户。

  • 删除用户 alice,并删除其主目录:

    • sudo userdel -r alice
      
  • 删除用户 alice,不删除其主目录

    • sudo userdel alice
      

运行级别

  • 运行级别:定义了系统的不同操作模式。

  • 常用命令

    • runlevel:查看当前运行级别。
    • inittelinit:切换运行级别。
    • systemctl:在 systemd 系统中管理目标和服务。
  • 设置默认运行级别

    • 在传统 init 系统中修改 /etc/inittab
    • systemd 系统中使用 systemctl set-default
    目标 描述
    poweroff.target 关机(相当于运行级别 0)。
    rescue.target 单用户模式(相当于运行级别 1)。
    multi-user.target 多用户模式(相当于运行级别 3)。
    graphical.target 图形界面模式(相当于运行级别 5)。
    reboot.target 重启(相当于运行级别 6)。

目录相关指令

  • pwd(Print Working Directory)用于显示当前工作目录的绝对路径。

  • cd(Change Directory)用于切换当前工作目录。

    • 切换到当前用户的主目录

      • cd  
        #或者 
        cd ~
        
    • 切换到上一级目录:

      • cd ..
        # 切换到上两级目录
        cd ../..
        
    • 切换到上一次所在的目录:

      • cd -
        
  • ls(List)用于列出目录中的文件和子目录。

    • ls [选项] [目录路径]
      
    • 选项 说明
      -a 显示所有文件(包括隐藏文件)。
      -l 以长格式显示文件详细信息。
      -h -l 一起使用,以易读的格式显示文件大小。
      -R 递归列出子目录中的文件。
      -t 按修改时间排序(最近修改的在前)。
      -r 反向排序。
  • mkdir(Make Directory)用于创建目录。

    • mkdir [选项] 目录名
      
      • 选项 说明
        -p 递归创建目录(如果父目录不存在,则一并创建)。
        -m 设置目录的权限模式。
  • rmdir(Remove Directory)用于删除空目录。

    • rmdir [选项] 目录名
      
      • 选项 说明
        -p 递归删除空目录(如果父目录为空,则一并删除)。
  • rm(Remove)用于删除文件或目录。

    • rm [选项] 文件或目录
      
      • 选项 说明
        -r 递归删除目录及其内容。
        -f 强制删除(不提示确认)。
        -i 交互式删除(删除前提示确认)。
  • cp(Copy)用于复制文件或目录。

    • cp [选项] 源文件或目录 目标文件或目录
      
      • 选项 说明
        -r 递归复制目录及其内容。
        -i 交互式复制(覆盖前提示确认)。
        -v 显示复制过程。
  • mv(Move)用于移动或重命名文件或目录。

    • mv [选项] 源文件或目录 目标文件或目录
      
      • 选项 说明
        -i 交互式移动(覆盖前提示确认)。
        -v 显示移动过程。
  • history 命令

    • history [选项] [参数]
      
    • 选项 说明
      -c 清除当前会话的历史记录。
      -d 删除指定编号的历史记录。
      -a 将当前会话的历史记录追加到历史文件中。
      -r 从历史文件中读取历史记录到当前会话。
      -w 将当前会话的历史记录写入历史文件。
    • 显示用户在当前会话中执行过的命令历史记录。

      • history
        
    • 使用 ! 符号快速重复执行历史命令。

      • !2
        
      • 执行编号为 2 的命令

    • !!:执行上一条命令。

    • !string:执行最近一条以 string 开头的命令。

      • !echo
        
      • 执行最近一条以 echo 开头的命令。

文件相关指令

  • touch 用于创建空文件或更新文件的时间戳(文件已存在)。

    • touch [选项] 文件名
      
    • 选项 说明
      -a 仅更新访问时间。
      -m 仅更新修改时间。
      -c 如果文件不存在,则不创建文件。
  • cat(Concatenate)用于查看文件内容、创建文件、合并文件等。

    • cat [选项] [文件...]
      
    • 选项 说明
      -n 显示行号。
      -b 显示非空行的行号。
      -s 压缩连续的空行为一行。
    • 文件:可以指定一个或多个文件。如果未指定文件,则从标准输入读取内容。

    • 通过重定向创建新文件并输入内容

      • cat > newfile.txt
        
    • 将内容追加到文件末尾。

      • cat >> existingfile.txt
        
    • 将多个文件的内容合并输出到新文件。

      • cat file1.txt file2.txt > combined.txt
        
    • 如果未指定文件,cat 会从标准输入读取内容。

      • cat
        
    • 结合 moreless 分页查看文件内容:

      • cat largefile.txt | more
        
  • moreless 用于分页查看文件内容。

    • more 命令

    • more 文件名
      
    • 常用操作:

      • 空格键:向下翻页。
      • Enter 键:向下滚动一行。
      • q 键:退出。
  • lessmore 的增强版,支持上下滚动和搜索。

    • less 文件名
      
    • 常用操作:

      • 空格键:向下翻页。
      • b 键:向上翻页。
      • / 键:搜索内容。
      • q 键:退出。
  • headtail 用于查看文件的开头或结尾部分。

    • head [选项] 文件名
      
    • 选项 说明
      -n 显示前 N 行(默认 10 行)。
    • 查看文件的前 5 行:

      • head -n 5 file1.txt
        
  • tail 命令

    • tail [选项] 文件名
      
    • 选项 说明
      -n 显示最后 N 行(默认 10 行)。
      -f 实时跟踪文件的新内容(常用于查看日志)。
  • cp 命令

    • cp [选项] 源文件或目录 目标文件或目录
      
    • 源文件或目录:要复制的文件或目录。

    • 目标文件或目录:复制后的文件或目录路径。

    • 选项 说明
      -r-R 递归复制目录及其内容。
      -i 交互式复制(覆盖前提示确认)。
      -f 强制复制(覆盖目标文件时不提示)。
      -v 显示复制过程(verbose)。
      -p 保留文件的属性(如权限、时间戳等)。
      -a 归档模式,相当于 -dpR(保留所有属性并递归复制)。
      -u 仅复制源文件中比目标文件新的文件(更新模式)。
      -l 创建硬链接而非复制文件。
      -s 创建符号链接(软链接)而非复制文件。
    • 使用 -u 选项仅复制源文件中比目标文件新的文件。

      • cp -u file1.txt /home/alice/Documents/
        
      • 如果目标文件已存在且比源文件新,则不会复制。

    • 如果目标文件已存在,cp 会覆盖它(除非使用 -i 选项)。

    • 复制目录时,必须使用 -r-R 选项。

    • 使用 -a 选项可以保留文件的所有属性,适合备份操作。(会保留权限和时间戳等文件的元数据)

  • mv 命令

    • mv [选项] 源文件或目录 目标文件或目录
      
      • 重命名看移动的文件最后是不是以/结尾

      • 选项 说明
        -i 交互式操作(覆盖前提示确认)。
        -f 强制操作(覆盖目标文件时不提示)。
        -v 显示操作过程(verbose)。
        -n 不覆盖已存在的文件。
        -u 仅当源文件比目标文件新时移动。
    • 将文件归类到指定目录:

      • mv *.txt /home/alice/Documents/
        
    • 注意事项

      • 如果目标文件已存在,mv 会覆盖它(除非使用 -i-n 选项)。

      • 移动目录时,目录中的所有内容也会被移动。

      • 使用 -u 选项可以避免覆盖较新的文件。

      • mv dir1 dir2
        
        • 如果 dir2 不存在,则 dir1 被重命名为 dir2
        • 如果 dir2 已存在且是一个目录,则 dir1 会被移动到 dir2 目录下,成为 dir2/dir1
        • 这里dir1后面加不加/都是复制该目录而不是目录下的文件,对于普通目录mv dir1 dir2mv dir1/ dir2 的行为完全相同。
      • mv 1.txt /2.txt
        
        • 1.txt:源文件。
        • /2.txt:目标文件(绝对路径)。
        • 如果 /2.txt 不存在:
          • 1.txt 移动到根目录 / 下,并重命名为 2.txt
        • 如果 /2.txt 已存在:
          • 1.txt 移动到根目录 / 下,并覆盖原有的 /2.txt 文件。
        • /1.txt:表示根目录 / 下的文件 1.txt,普通用户通常没有权限访问。
        • ~/1.txt:表示当前用户的 home 目录下的文件 1.txt,普通用户可以访问和操作。
  • echo 用于将指定的内容输出到终端或文件。

    • 选项 说明
      -n 不输出末尾的换行符。
      -e 启用转义字符(如 \n\t 等)。
  • > 用于将命令的输出重定向到文件,覆盖文件内容。

    • # 命令 > 文件
      echo "Hello, World!" > file.txt
      ls > file.txt
      
  • >> 用于将命令的输出追加到文件末尾,不覆盖文件内容。

时间日期指令

  • date 是 Linux 中最常用的时间日期命令,用于显示或设置系统时间和日期。

  • date
    
  • date 支持自定义输出格式,使用 + 符号指定格式。

  • 符号 说明
    %Y 年份(如 2023)。
    %m 月份(01-12)。
    %d 日期(01-31)。
    %H 小时(00-23)。
    %M 分钟(00-59)。
    %S 秒(00-59)。
    %A 星期几(如 Monday)。
    %B 月份名称(如 October)。
  • # 显示当前日期和时间
    date +"%Y-%m-%d %H:%M:%S"
    
    # 显示当前年份
    date +"%Y"
    
  • 设置系统时间日期

    • 注意:设置系统时间需要 root 权限。

    • sudo date -s "YYYY-MM-DD HH:MM:SS"
      

查找相关指令

  • find 用于在目录树中查找文件或目录。

    • find [路径] [表达式]
      
      • 表达式 说明
        -name 按文件名查找。
        -type 按文件类型查找(如 f 表示文件,d 表示目录)。
        -mtime 按修改时间查找。
        -size 按文件大小查找(如 +100M 表示大于 100MB)。
      • 查找当前目录及其子目录中名为 file1.txt 的文件:

        • find . -name file1.txt
          
      • 查找 /home/alice 目录中所有扩展名为 .txt 的文件:

        • find /home/alice -name "*.txt"
          
      • 查找当前目录及其子目录中的所有普通文件。

        • find . -type f
          
      • 查找当前目录中最近 7 天内修改过的文件

        • find . -type f -mtime -7
          
      • 查找 /home 目录下所有大于 100MB 的文件:

        • find /home -type f -size +100M
          
      • find . 从当前目录开始查找,适用于查找当前目录及其子目录中的文件或目录。

      • find / 从根目录开始查找,适用于查找整个文件系统中的文件或目录。

      • * 匹配任意数量的字符(包括零个字符)。

      • ? 匹配单个字符。

  • locate 命令

    • locate 是一个快速查找文件的工具,基于系统文件数据库(通常每天更新一次)。

    • locate [选项] 文件名
      
    • 选项 说明
      -i 忽略大小写。
      -c 统计匹配的文件数量。
    • 快速定位 file.txt

    • locate file.txt
      
    • 使用前需要更新系统文件数据库

      • 如果文件数据库未更新,可以使用 updatedb 命令手动更新:

      • updatedb
        
  • which 命令

    • which 用于查找可执行文件的路径。

    • which 命令名
      
      • 查找 ls 命令的路径:

      • which ls
        
  • grep指令

    • grep 用于在文件或输入流中查找包含指定模式的行。

    • grep [选项] 模式 [文件...]
      
    • 模式:要查找的文本或正则表达式。

    • 文件:要搜索的文件。如果未指定文件,则从标准输入读取。

    选项 说明
    -i 忽略大小写。
    -v 反向查找(显示不匹配的行)。
    -r 递归查找目录中的文件。
    -n 显示匹配行的行号。
    -c 统计匹配的行数。
    -l 仅显示包含匹配模式的文件名。
    -E 使用扩展正则表达式(等同于 egrep)。
    -A 显示匹配行及其后 N 行。
    -B 显示匹配行及其前 N 行。
    -C 显示匹配行及其前后 N 行。
    • 反向查找(显示不匹配的行):

      • grep -v "error" file.txt
        
  • 管道符 |

    • 管道符 | 用于将一个命令的输出作为另一个命令的输入。

    • 命令1 | 命令2
      
      • 命令1:生成输出的命令。
      • 命令2:处理输入的命令。
    • ls 的输出传递给 grep,查找包含 file 的文件:

      • ls | grep "file"
        

解压和压缩

  • tar 命令

    • tar 是 Linux 中最常用的归档工具,支持创建、查看和解压 .tar.tar.gz.tar.bz2 等格式的文件。

    • tar [选项] [归档文件] [文件或目录...]
      
    • 选项:指定操作类型和附加功能。

    • 归档文件:生成的归档文件名。

    • 文件或目录:要打包或解压的文件或目录。

    • tar命令不指定zjJ就是.tar文件

    • 选项 说明
      -c 创建归档文件。
      -x 解压归档文件。
      -v 显示操作过程(verbose)。
      -f 指定归档文件名。
      -z 使用 gzip 压缩或解压(.tar.gz)。
      -j 使用 bzip2 压缩或解压(.tar.bz2)。
      -J 使用 xz 压缩或解压(.tar.xz)。
      -t 查看归档文件内容。
      -r 向归档文件中追加文件。
      -u 更新归档文件中的文件(仅添加比归档文件中新的文件)。
      -C 解压到指定目录。
    • 创建 .tar.gz 归档文件:

      • tar -czvf archive.tar.gz file1 file2 dir1
        
    • 解压 .tar.gz 文件:

      • tar -xzvf archive.tar.gz -C /home
        
  • zipunzip 命令

    • zip 用于创建 .zip 文件;unzip 用于解压 .zip 文件

    • 创建 .zip 文件:

      • zip archive.zip file1 file2 dir1
        
    • 解压 .zip 文件:

      • 使用-d来指定解压到指定目录

      • unzip archive.zip -d /home
        
posted @ 2025-03-26 20:14  QAQ001  阅读(26)  评论(0)    收藏  举报