• Linux基础命令汇总


    用户管理

    su

    • 切换用户:su  用户名    

    logname

    • 显示当前用户的登录用户名:logname

    useradd

    • 创建用户:useradd  用户名
    • 创建用户时指定用户的主组:useradd -g 组名 用户名    

    usermod

    • 添加附属组:usermod -G 组名 用户名
    • 添加多个附属组:usermod   -G  组名1,组名2,组名3   用户名
    • 去除附属组:usermod  -G  组名1,组名3  用户名(备注:这里将去除了组名2)

    userdel

    • 删除用户:userdel 用户名
    • 强制删除用户帐户:userdel  -f  用户名
    • 删除用户帐户和主目录:userdel -r 用户名  

    id

    • 查看用户的id:id  用户名(备注:uid:用户编号;gid:用户组编号;groups:附属组编号) 

    passwd

    • 给用户设置或修改密码:passwd  用户名

    cat

    • 查看系统中有哪些用户组:cat /etc/group
    • 通过查看passwd文件可以获取用户信息:cat  /etc/passwd  

    groupadd

    • 创建组:groupadd 组名
    • 创建组时指定组编号:groupadd -g 组编号 组名

    groupmod

    • 修改组编号:groupmod -g 组编号 组号
    • 修改用户的群组:usermod  -g  组名/组编号  用户名
    • 修改组名:groupmod -n 新组名 组名

    groupdel

    • 删除组:groupdel 组名(备注:如果要删除的组被用户设置成主组,则不能删除)

    文件或目录

    du

    • 查看指定文件的大小:du -s 文件  
    • 查看该目录及其下的所有文件的大小:du 目录  

    touch

    • 在当前目录下创建新的空文件:touch  filename.txt(备注:如果文件已经存在,它将保持不变)
    • 在当前目录下创建多个空文件:touch file1.txt file2.txt file3.txt
    • 更改文件的访问时间和修改时间为当前时间:touch -a -m filename.txt
    • 创建或更新带有特定时间戳的文件为指定的时间:touch -t 202309251430.00 filename.txt (备注:时间戳格式为:YYYYMMDDhhmm.ss)

    echo

    • 在终端中显示文本:echo "Hello, World!"
    • 将文本重定向到文件中:echo "文本" > 文件名(备注:如果文件不存在,它将被创建;如果已存在,它将被覆盖)
    • 将文本追加到文件的末尾:echo "文本" >> output.txt(备注:将文本追加到文件的末尾,而不是覆盖文件内容)

    rm

    • 删除文件或目录:rm  文件或目录名
    • 删除多个文件:rm  文件1  文件2  文件3
    • 递归删除目录及其内容::rm -r 目录    
    • 强制删除:rm -f 文件或目录名

    rmdir

    • 删除空目录:rmdir  空目录(备注:如果目录不为空,将会报错,该命令将无法删除它。rmdir 命令只能删除空目录。如果目录中包含文件或子目录,你需要使用 rm 命令来删除其内容,然后再使用 rmdir 删除空目录)
    • 删除多个空目录:rmdir 空目录1 空目录2 空目录3
    • 递归删除目录及其所有父目录:rmdir -p /path/to/mydirectory
    • 安静模式删除目录:rmdir -q mydirectory(备注:在删除目录时抑制错误消息,如果目录不存在也不会显示错误消息)

    chmod

    • 更改文件或目录的权限(使用数字表示权限):chmod   644  文件或目录(备注:r=4 w=2 x=1)
    • 更改文件或目录的权限(使用符号表示权限):chmod   u+rwx,g+rx,o+r   文件或目录(备注:  u 表示文件的所有者;g 表示文件所属组;o 表示其他用户(不是文件的所有者也不是文件所属组的用户))
    • 更改文件或目录的权限:chomd   u=rwx,g=wx,o=rw  文件或目录
    • 更改文件或目录的权限:chmod  uo-x,go+w,g-r 文件或目录    
    • 去除文件写入权限:chmod -w  file.txt
    • 赋予文件执行权限:chmod +x  script.sh
    • 修改文件的拥有者:chown  用户名  文件名
    • 修改文件的所属组:chown  :users  文件名
    • 将文件所有者和所属组更改为其他:chmod  所有者:所属组  file.txt
    • 更改文件或目录的所属组:chgrp  组名  文件或目录
    • 递归更改目录及其内容的所属组:chgrp -R 所属组 目录

    cp

    • 复制文件或目录:cp  源文件或目录  目标文件或目录 
    • 复制多个文件:cp  文件1  文件2  目录
    • 递归复制目录及其内容:cp  -r  源文件或目录  目标文件或目录 

    zip

    • 创建ZIP压缩文件:zip  target.zip  文件1  文件2(备注:创建一个名为 target.zip  的ZIP压缩文件,并将 文件1 和 文件2 添加到其中)
    • 递归压缩目录及其内容:zip  -r  target.zip  文件1  文件2
    • 添加文件到已存在的ZIP文件:zip  target.zip   文件名
    • 从ZIP文件删除文件:zip -d target.zip   文件名
    • 查看ZIP文件的内容列表:unzip -l  target.zip

    gz

    • 压缩文件(不保留源文件):gzip  file.txt(备注:将压缩文件file.txt,并创建一个名为 file.txt.gz 的GZIP压缩文件)
    • 递归压缩目录及其内容中的所有文件:gzip  -r  目录
    • 压缩并保留原始文件:gzip -k file.txt
    • 解压缩文件:gzip -d file.txt.gz(备注:解压缩 file.txt.gz 文件,将其还原为原始文件 file.txt)
    • 查看压缩文件的信息:gzip -l file.txt.gz

    tar.gz & tar.bz2

    • 创建压缩包:tar  -cvf  target.tar  file1  file2(备注:创建一个名为 target.tar 的压缩包,并将 file1 和 file2 添加到其中)
    • 添加文件到已存在的压缩包:tar -rvf  target.tar  newfile
    • 从压缩包中删除指定的文件:tar  --delete  -f  target.tar  file 
    • 列出压缩包的内容列表:tar -tvf target.tar 
    • 把文件压缩成.tar.gz格式:tar -czvf target.tar.gz  directory/(备注:在创建压缩包时对其进行gzip压缩,这将创建一个名为 target.tar.gz 的压缩文件)
    • 解压缩压缩包:tar -xvf target.tar 
    • 解压缩target.tar.gz文件中的内容:tar -xzvf target.tar.gz

    pwd

    • 显示用户的当前工作目录(以绝对路径方式表示):

    cd

    • 切换工作目录至绝对路径:cd  绝对路径   
    • 切换至当前所在目录:cd .
    • 切换至上一层目录:cd ..
    • 切换至上两级目录:cd ../ ..

    mkdir

    • 创建目录:mkdir 目录名
    • 创建多个目录:mkdir  目录名1  目录名2(备注:目录名之间使用的空格隔开)
    • 在路径下创建目录:mkdir  绝对路径/目录名 
    • 在不同的路径下创建多个目录:mkdir  路径1/目录名1  路径2/目录名2    
    • 创建目录时指定权限:mkdir -m 目录权限 目录名(例如:mkdir -m 777 hello)

    mv

    • 移动文件或目录(或用于文件或目录的重命名):mv   源文件或目录  目标文件或目录
    • 移动文件到另一个目录:mv file.txt  目录
    • 重命名文件:mv oldname.txt  newname.txt
    • 递归地移动目录及其内容:mv -r  sourcedir/  destination/
    • 强制覆盖目标位置已存在的文件:mv -f sourcefile.txt  destination/
    • 将文件移动到当前目录下并重命名:mv  /sourcedir/file.txt  newname.txt

    ls

    • 列出当前工作目录的文件和子目录的列表:ls
    • 列出指定目录的文件和子目录:ls  指定目录(绝对路径)
    • 以列表方式列出当前工作目录的详细信息:ls -l
    • 列出隐藏文件:ls -a(备注:列出包括以点开头的隐藏文件在内的所有文件和目录)
    • 使用通配符进行过滤:ls  *.txt(备注:列出所有扩展名为 .txt 的文件)

    cat 

    • 只读模式查看文件内容:cat 文件名(备注:也用选项有:-n(显示行号,包含空行)、-b(显示行号,不包含空行)、-v(查看非打印字符)
    • 合并多个文件的内容:cat  文件1  文件2
    • 将文件内容追加到另一个文件:cat  文件1 >> 文件2(备注:将文件1的内容追加到文件2的末尾)
    • 将文本输入到文件:cat > 文件(备注:这里将等待你输入文本,然后将输入的文本保存到文件中。要结束输入,请按 Ctrl + D)

    grep

    • 搜索文件中包含关键字的文本:grep "关键字" 文件名
    • 搜索文件夹(包括其子文件夹)中包含关键字的文本:grep -r "关键字" 目录
    • 搜索文件中包含关键字的文本时忽略大小写:grep -i "关键字" 文件名
    • 搜索文件中包含关键字的文本时显示匹配行的行号:grep -n "关键字" 文件名
    • 显示匹配行之前/之后的行:
    1. grep -B 2 "pattern" filename  # 显示匹配行之前的2行
    2. grep -A 3 "pattern" filename  # 显示匹配行之后的3行
    • 搜索文件中不包含关键字的行:grep -v "关键字" 文件名
    • 将搜索结果输出到文件:grep "关键字" 搜索文件名 > 输出文件名

    head

    • 查看文件的前M行:head  -n  M  文件名(备注:不使用选项-n 则默认显示10行内容)
    • 显示多个文件的开头部分:head   文件1  文件2 
    • 显示非打印字符:head -v 文件名

    find

    • 根据文件名在起始目录及其子目录中搜索文件:find 起始目录 -name "文件名"
    • 根据文件类型在起始目录及其子目录中搜索文件:find 起始目录 -type f

    备注:

              -type f 中的 f 表示要搜索的文件类型。具体来说,f 代表普通文件(regular file)。当你使用 -type f 选项时,find 命令会搜索指定目录及其子目录中的普通文件,而不包括目录、设备文件、符号链接或其他特殊文件类型。

              这是 -type 选项的一些常见参数和它们的含义:

    • f:代表普通文件。
    • d:代表目录。
    • l:代表符号链接(软链接)。
    • c:代表字符设备文件。
    • b:代表块设备文件。
    • p:代表命名管道(FIFO)。
    • s:代表套接字文件。

              因此,当你运行 find 起始目录 -type f 命令时,它会搜索起始目录及其子目录中的普通文件,并将它们列出或执行其他操作,具体取决于你的 find 命令的后续操作。

    • 根据文件大小在起始目录及其子目录中搜索文件:find  起始目录  -size  +1M(备注:查找大小大于1兆字节的文件)
    • 根据修改日期在起始目录及其子目录中搜索文件:find  起始目录  -mtime  -7(备注:查找最近7天内修改过的文件)
    • 根据文件权限在起始目录及其子目录中搜索文件:find  起始目录 -perm  644(备注:查找文件权限为644的文件)
    • 将匹配的文件输出到文件中:find  起始目录  -name  "*.txt"  > 文件(备注:这将在起始目录及其子目录中查找所有以 ".txt" 结尾的文件,并将结果输出到名为 files.txt 的文件中)

    系统管理

    ps

    • 列出当前用户的所有进程:ps
    • 列出所有进程的详细信息:ps -f
    • 查看运行中的进程:ps -r
    • 列出指定用户的进程:ps -u 用户名
    • 查找特定进程的信息:ps -p PID(备注:这将显示指定PID(进程ID)的进程的信息)

    top

    • 显示进程(任务)信息:top(备注:按q键退出)

    kill

    • 终止指定进程ID的进程:kill 进程ID(备注:向进程发送终止信号SIGTERM,使其正常退出)
    • 终止指定进程名的进程:pkill 进程名(备注:终止所有名为 "进程名" 的进程)
    • 强制终止进程:kill -9 进程ID(备注:向进程发送强制终止信号SIGKILL,强制终止进程)
    • 发送其他信号:kill -SIGNAL 进程ID(备注:可以使用 -SIGNAL 格式的选项来指定发送的信号类型)
    • 查看可用的信号名称和对应的编号:kill -l

    date

    • 显示当前系统的日期和时间:date(备注:通常的格式类似于 "Sat Sep 25 14:30:00 UTC 2023")
    • 以自定义格式显示日期和时间:date  "+%Y-%m-%d %H:%M:%S"(备注:这将以 "YYYY-MM-DD HH:MM:SS" 的格式显示当前日期和时间,例如 "2023-09-25 14:30:00")
    • 设置系统日期和时间为指定的值:date  --set  "2023-09-25 14:30:00"

    cal

    • 显示当前月份的日历:cal
    • 显示指定月份和年份的日历:cal 月份 年份

    history

    • 显示命令历史号和执行的命令的列表:history
    • 显示特定数量N的历史命令:history N
    • 清除命令历史记录:history -c
    • 将命令历史记录保存到文件:history -w 文件名

    clear

    • 清除屏幕上的所有文本:clear

    sudo

    • 以超级用户权限执行命令:sudo command(备注:需要输入用户密码验证身份)
    • 以其他用户的权限执行命令:sudo -u username command

    软件包管理

    rpm

             rpm 命令是在基于RPM包管理系统的Linux系统中用于管理软件包的命令。RPM(Red Hat Package Manager)是一种常见的包管理系统,用于安装、升级、查询和卸载软件包。

             请注意,rpm 命令用于管理RPM软件包,而不同的Linux发行版可能使用不同的包管理系统(如Debian的APT或Fedora的DNF)。因此,具体的包管理命令可能会因发行版而异。要查看有关 rpm 命令的更多详细信息和选项,请使用 man rpm 命令查看帮助文档。

    • 安装RPM软件包:rpm -i  package.rpm
    • 升级软件包:rpm -U package.rpm(备注:如果软件包不存在则安装它)
    • 查询已安装的软件包:rpm -q package-name
    • 显示软件包信息:rpm -qi package-name
    • 列出系统上所有已安装的软件包的名称:rpm -qa
    • 卸载软件包:rpm -e package-name
    • 查询软件包提供的文件:rpm -ql package-name
    • 查询软件包由哪个软件包依赖:rpm -q --whatrequires package-name
    • 查询软件包依赖哪个软件包:rpm -q --requires package-name

    yum

             yum 命令是在基于RPM包管理系统的Linux系统中用于安装、升级、删除和管理软件包的命令。它是一个包管理工具,常用于Red Hat、CentOS和Fedora等Linux发行版中。

             请注意,yum 命令在不同的Linux发行版中可能有不同的变体,例如在Fedora中使用 dnf 命令来执行相似的操作。要查看有关 yum 命令的更多详细信息和选项,请使用 man yum 命令查看帮助文档。

    • 安装软件包以及其依赖项:yum install package-name
    • 升级系统上已安装的软件包:yum update(备注:包括操作系统本身)
    • 升级特定的软件包:yum update package-name
    • 搜索可用的软件包:yum search 关键字
    • 列出所有已安装的软件包:yum list installed
    • 卸载软件包:yum remove package-name(备注:这将卸载软件包,但保留其配置文件)
    • 清理系统中的旧软件包文件:yum clean packages
    • 清理软件包的缓存:yum clean all(备注:包括元数据)
    • 列出软件包的信息:yum info package-name

    apt

             apt 命令是在基于Debian包管理系统的Linux系统中用于管理软件包的命令。它是一个包管理工具,常用于Debian、Ubuntu和其他基于Debian的Linux发行版中。         

             请注意,apt 命令是用于Debian包管理系统的工具,而在不同的Linux发行版中可能有不同的包管理工具和命令。要查看有关 apt 命令的更多详细信息和选项,请使用 man apt 命令查看帮助文档。

    • 更新系统上可用软件包的列表:apt update(备注:以便 apt 知道有哪些新的软件包可用)
    • 安装软件包以及其依赖项:apt install package-name
    • 升级系统上所有已安装的软件包:apt upgrade(备注:区别于yum 命令,apt upgrade不会升级操作系统本身)
    • 升级特定软件包:apt  install  --only-upgrade   package-name
    • 搜索包含关键字 keyword 的可用的软件包:apt search keyword
    • 列出所有已安装的软件包:dpkg -l(备注:这使用了 dpkg 命令而不是 apt 命令)
    • 卸载软件包:apt remove package-name(备注:卸载软件包,但保留其配置文件)
    • 清理软件包的缓存:apt clean(备注:删除下载的软件包文件,但不会删除已安装的软件包)
    • 列出软件包的信息:apt show package-name

    关机与重启

    • 现在立刻关机:shutdown -h now    
    • 10分钟后关机:shutdown -h 10    
    • 系统时间17:20时关机:shutdown -h 17:20
    • 立刻重启:shutdown -r now  
    • 取消重启或关机:shudown -c  
    • 关机:halt     
    • 关机:poweroff
    • 关机:init 0    
    • 重启:reboot
    • 重启:init 6    

  • 相关阅读:
    Leetcode 2119.反转两次的数字
    操作系统运行环境
    关于maven项目中依赖无法下载的解决方案
    linux版:TensorRT安装教程
    Tomcat设计思路
    Zebec节点Zepoch销量接近800个,生态发展信心十足
    Mybatis—SqlNode
    人脸识别系统之静态人脸识别
    西门子S7-1500作为智能设备共享功能
    Flink动态业务规则的实现
  • 原文地址:https://blog.csdn.net/weixin_60461563/article/details/133359964