爆肝万字带你超级详细全面了解Linux命令大全

🍁前言

👑作者主页:👉CSDN博客园

🏆学习交流:👉在下周周ovoの社区

对这篇万字博客目录总结如下:
关机命令、重启命令,创建用户、删除用户、修改密码、切换用户、切换到超级用户、禁用/解锁用户账户、修改信息、组管理、列出用户、修改用户属性、用户权限管理、用户信息管理、用户登录信息、系统管理员操作,浏览和切换目录、创建和删除目录、复制、移动和重命名目录、查找和搜索目录、查看目录信息、修改目录权限、查看目录使用情况,查看文件属性、修改文件权限,、复制、移动和重命名、删除、查找、查看文件内容、文件压缩和解压缩,更改文件或目录的所有者、更改文件或目录的所属组、更改文件或目录的权限、递归更改文件或目录的权限、修改文件或目录的所有者和所属组、查看文件或目录的权限信息、特权用户运行命令、修改特殊权限、改变文件或目录的访问控制列表,使用apt-get进行软件包管理、使用dpkg进行软件包管理、使用apt-cache进行软件包查询、使用apt-file进行文件查询、使用snap进行软件包管理、使用flatpak进行软件包管理,进程查看和信息、进程管理、进程监控、进程通信,网络配置和接口管理、网络连接和通信,RPM命令、YUM命令

🍁一、目录树结构


【上面为网络图片】


Ubuntu下常见的目录树结构及其作用我用下面的表格来表示【已按名称排序】:

目录结构名称 作用
/ 根目录,整个文件系统的起始点
/bin 存放可执行的用户命令和基本的系统命令
/boot 存放启动系统所需的文件,如内核和引导加载程序等
/dev 存放设备文件,包括硬件设备和外部设备的节点文件
/etc 存放系统配置文件和全局配置文件
/home 用户主目录的基础目录,每个用户在该目录下有一个以用户名命名的子目录
/lib 存放系统所需的共享库文件
/media 用于挂载可移动介质(如USB驱动器、光驱等)的目录
/mnt 用于挂载临时文件系统或其他文件系统的目录
/opt 存放可选的第三方软件包安装目录
/proc 虚拟文件系统,提供有关运行中的内核和进程的信息
/root root用户的主目录
/run 存放运行时文件和进程信息
/sbin 存放系统管理员使用的系统命令和程序
/srv 存放服务相关的数据文件
/sys 虚拟文件系统,提供了与内核和硬件相关的信息
/tmp 存放临时文件
/usr 存放系统级别的应用程序和文件
/var 存放变化的文件,如日志文件、数据库文件等

🍁二、Linux基础命令篇

👑2.1、开关机和重启命令

🏆1、关机命令:

  • sudo poweroff
    立即关闭系统。
  • sudo shutdown -h now
    立即关闭系统。
  • sudo shutdown -h +m
    在m分钟后关闭系统。
  • sudo halt
    关闭系统,类似于poweroff。

🏆****2、重启命令:

  • sudo reboot
    立即重启系统。
  • sudo shutdown -r now
    立即重启系统。
  • sudo shutdown -r +m
    在m分钟后重启系统。

👑2.2、用户管理相关命令

🏆创建用户

  • sudo adduser username
    创建一个新用户。
  • sudo useradd username
    创建一个新用户。
  • sudo useradd -m username:                                                
    非常强烈建议使用 不然你会出现以下错误:点此进入

🏆删除用户

  • sudo deluser username

删除一个用户。

  • sudo userdel username

删除一个用户。

🏆修改用户密码:

  • sudo passwd username
    为指定用户设置密码。

🏆切换用户:

  • su username
    切换到指定用户账户。

🏆切换到超级用户:

  • sudo command
    使用超级用户权限执行指定命令。

🏆禁用用户账户:

  • sudo usermod --expiredate 1 username
    禁用指定用户账户。

🏆解锁用户账户:

  • sudo usermod --expiredate "" username
    解锁指定用户账户。将指定用户的帐户过期日期设置为空字符串,从而使该用户的帐户永久有效。

🏆修改用户信息:

  • sudo usermod -c "New Comment" username
    修改用户的注释信息。

🏆用户组管理:

  • sudo groupadd groupname
    创建一个新用户组。
  • sudo groupdel groupname
    删除一个用户组。
  • sudo usermod -a -G groupname username
    将用户添加到指定用户组。

🏆列出用户:

  • cat /etc/passwd
    显示系统中的所有用户。

🏆修改用户属性:

  • usermod -l new_username username
    修改用户账户的用户名。
  • usermod -d new_home_directory username
    修改用户账户的家目录。
  • usermod -s new_shell username
    修改用户账户的默认 Shell。
  • usermod -aG groupname username
    将用户添加到指定用户组。

🏆用户权限管理:

  • visudo
    编辑 sudoers 文件,授权用户执行特定的管理员任务。
  • sudo
    以超级用户权限执行命令。

🏆用户信息管理:

  • chfn username
    修改用户账户的全名和其他信息。
  • chage
    更改用户账户的密码过期策略和其他选项。

🏆用户登录信息:

  • whoami
    显示当前用户的用户名。
  • w
    显示当前系统上已登录的用户和他们的活动情况。
  • last
    显示用户登录历史记录。
  • who
    显示当前登录系统的用户信息。

🏆切换用户:

  • su username
    切换到指定用户账户。
  • su -
    切换到目标用户的环境,并加载其环境配置文件。

🏆查看用户信息:

  • id username
    显示指定用户账户的 UID、GID 和所属的用户组。
  • finger username
    显示指定用户账户的详细信息。

🏆系统管理员操作:

  • sudo -l
    列出当前用户可以执行的特权命令。
  • sudo -u username command
    以指定用户身份执行命令。

👑2.3、目录相关操作命令

🏆浏览和切换目录:

  • pwd
    显示当前工作目录的路径。
  • ls
    列出当前目录中的文件和子目录。
  • cd directory
    切换到指定目录。
  • cd ..
    切换到当前目录的上级目录。
  • cd ~
    切换到当前用户的主目录。

🏆创建和删除目录:

  • mkdir directory
    创建一个新的目录。
  • mkdir -p directory/subdirectory
    创建目录及其子目录,如果不存在则创建。
  • rmdir directory
    删除空目录。
  • rm -r directory
    递归删除目录及其内容。

🏆复制、移动和重命名目录:

  • cp -r directory new_directory
    复制目录及其内容到新目录。
  • mv directory new_directory
    移动或重命名目录。

🏆查找和搜索目录:

  • find directory -name filename
    在指定目录及其子目录中搜索指定的文件。
  • locate filename
    通过文件数据库快速查找文件。

🏆查看目录信息:

  • ls -l
    以长格式显示目录中的文件和子目录。
  • ls -a
    显示包括隐藏文件在内的所有文件和子目录。
  • du -sh directory
    显示目录的总大小。
  • tree directory
    以树形结构显示目录和子目录。

🏆修改目录权限:

  • chmod permissions directory
    修改目录的权限。
  • chown user:group directory
    更改目录的所有者和所属用户组。

🏆查看目录使用情况:

  • df -h
    显示磁盘空间使用情况。
  • du -h directory
    显示目录的磁盘使用情况。

写在最后: 可以使用 man 命令加上命令名称来查看每个命令的详细用法和选项。

👑2.4、文件相关操作命令

🏆查看文件属性:

  • ls -l
    以长格式列出文件的详细属性信息。
  • ls -lh
    以人类可读的格式列出文件的详细属性信息。
  • stat filename
    显示文件的详细属性信息。

更多属性和作用如下表:

选项 解释
-l 以长格式列出文件的详细属性信息。
-a 列出包括隐藏文件在内的所有文件。
-h 以人类可读的格式显示文件大小。
-i 显示文件的索引节点号(inode)。
-p 在目录名后面加上斜杠(/)标识为目录。
-R 递归地列出目录及其子目录中的文件属性。
-s 显示文件或目录的大小(以块为单位)。
-t 按修改时间排序列出文件和目录。
-u 按访问时间(atime)排序列出文件和目录。
-c 以更简洁的格式显示文件属性,只显示文件名,不显示详细信息。
-g 显示文件所属组的属性信息。
-n 不执行排序操作,按文件在目录中的原始顺序列出。
-F 在文件名后面加上特殊符号,标识文件类型。
-d 仅列出目录的属性信息,而不是目录中的内容。

🏆修改文件权限:

  • chmod permissions filename
    修改文件的权限。
  • chown user:group filename
    更改文件的所有者和所属用户组。

🏆修改文件时间戳:

  • touch filename
    更新文件的访问时间和修改时间。
  • touch -a filename
    只更新文件的访问时间。
  • touch -m filename
    只更新文件的修改时间。

🏆复制、移动和重命名文件:

  • cp source_file destination_file
    复制文件到目标位置。
  • mv old_filename new_filename
    移动或重命名文件。

🏆删除文件:

  • rm filename
    删除文件。
  • rm -rf directory
    递归删除目录及其内容。

🏆查找文件:

  • find directory -name filename
    在指定目录及其子目录中搜索指定的文件。
  • locate filename
    通过文件数据库快速查找文件。

🏆查看文件内容:

  • cat filename
    显示文件的内容。
  • more filename
    逐页显示文件的内容。
  • less filename
    交互式地显示文件的内容。

🏆文件压缩和解压缩:

  • tar -czvf archive.tar.gz file1 file2
    将文件打包为 gzip 压缩的 tar 文件。
  • tar -xzvf archive.tar.gz
    解压缩 gzip 压缩的 tar 文件。

常见的 tar 命令选项以及它们的解释:

选项 解释
-c 创建(Create).tar 格式的包文件。
-x 解压缩(eXtract).tar 格式的包文件。
-f 指定包文件的名称。例如,tar -cf archive.tar file1 file2 表示创建名为 archive.tar 的包文件,并包含 file1file2
-v 显示详细信息(Verbose),在处理文件时显示正在执行的操作。
-z 使用 gzip 压缩或解压缩文件。
-j 使用 bzip2 压缩或解压缩文件。
-p 保留原始文件的权限和属性(Preserve)。
-t 列出(List)包文件中的文件。
-r 向包文件中追加文件。
-u 只复制包文件中比源文件新的文件(Update)。
-k 保留已存在的文件,不进行覆盖(Keep)。
-C 在指定的目录中进行操作。例如,tar -xf archive.tar -C /target_directory 表示将包文件解压缩到 /target_directory 目录下。

举几个例子:

1、创建一个包含多个文件的 tar 归档文件:

tar -cf archive.tar file1 file2 file3
该命令将创建一个名为 archive.tar 的 tar 归档文件,并将文件 file1、file2 和 file3 添加到归档中。

2、创建并使用 gzip 压缩文件:

tar -czf archive.tar.gz file1 file2 file3
该命令将创建一个名为 archive.tar.gz 的 tar 归档文件,并使用 gzip 压缩算法将文件压缩。

3、解压缩一个 tar 归档文件:

tar -xf archive.tar
该命令将解压缩名为 archive.tar 的 tar 归档文件,并将其提取到当前目录。

4、解压缩一个 gzip 压缩的 tar 归档文件:

tar -xzf archive.tar.gz
该命令将解压缩名为 archive.tar.gz 的 gzip 压缩的 tar 归档文件,并将其提取到当前目录。

5、列出 tar 归档文件中的内容:

tar -tf archive.tar
该命令将列出名为 archive.tar 的 tar 归档文件中包含的文件列表。

写在最后:

使用 man tar 命令来查看 tar 命令的完整文档,其中包含所有选项和更详细的说明。

👑2.5、权限管理相关操作命令

🏆更改文件或目录的所有者:

  • chown:
    更改文件或目录的所有者。
  • 用法:chown owner_name file_or_directory

🏆更改文件或目录的所属组:

  • chgrp:
    更改文件或目录的所属组。
  • 用法:chgrp group_name file_or_directory

🏆更改文件或目录的权限:

  • chmod:
    更改文件或目录的权限。

用法:

  • 使用数字形式:chmod permissions file_or_directory
  • 使用符号形式:chmod [ugoa]+[-+=]+[rwx] file_or_directory

🏆递归更改文件或目录的权限:

  • chmod -R:
    递归更改文件或目录以及其子目录的权限。
  • 用法:chmod -R permissions directory

🏆修改文件或目录的所有者和所属组:

  • chown:
    修改文件或目录的所有者和所属组。
  • 用法:chown owner_name:group_name file_or_directory

🏆查看文件或目录的权限信息:

  • ls -l:
    显示文件或目录的详细权限信息。
  • 用法:ls -l file_or_directory

🏆以特权用户运行命令:

  • sudo:
    以超级用户权限运行指定的命令。
  • 用法:sudo command

🏆修改特殊权限:

  • chmod +s:
    设置文件的 SetUID 或 SetGID 位。
  • chmod +t:
    设置目录的粘滞位。
  • 用法:chmod +s filechmod +t directory

🏆改变文件或目录的访问控制列表(ACL):

  • setfacl:
    设置文件或目录的访问控制列表。
  • getfacl:
    获取文件或目录的访问控制列表。

用法:

  • setfacl -m u:user:permissions file_or_directory
  • setfacl -m g:group:permissions file_or_directory
  • getfacl file_or_directory

👑2.6、 软件相关的操作命令

🏆使用 apt-get 进行软件包管理:

  • apt-get update:
    更新软件包列表。
  • apt-get upgrade:
    升级系统中所有已安装软件包到最新版本。
  • apt-get install package:
    安装指定的软件包。
  • apt-get remove package:
    卸载指定的软件包。
  • apt-get purge package:
    完全卸载指定的软件包,包括配置文件和依赖项。
  • apt-get autoremove:
    自动删除不再需要的依赖软件包。
  • apt-get autoclean:
    清理下载的软件包文件缓存,但保留已安装的软件包。
  • apt-get clean:
    清理下载的软件包文件缓存和已安装的软件包。
  • apt-get check:
    检查软件包的依赖关系是否完整。

🏆使用 dpkg 进行软件包管理:

  • dpkg -i package.deb:
    安装指定的 .deb 格式软件包。
  • dpkg -r package:
    卸载指定的软件包。
  • dpkg -P package:
    完全卸载指定的软件包,包括配置文件。
  • dpkg -l:
    列出系统中所有已安装的软件包。
  • dpkg -L package:
    显示指定软件包安装的文件列表。
  • dpkg -s package:
    显示指定软件包的详细信息,包括描述、版本、依赖项等。

🏆使用 apt-cache 进行软件包查询:

  • apt-cache search keyword:
    在可用的软件包列表中搜索指定的关键字。
  • apt-cache show package:
    显示指定软件包的详细信息,包括描述、版本、依赖项等。

🏆使用 apt-file 进行文件查询:

  • apt-file search filename:
    在已安装的软件包列表中搜索指定的文件。
  • apt-file update:
    更新 apt-file 数据库,以便进行文件搜索。

🏆使用 snap 进行软件包管理:

  • snap install package:
    安装指定的 Snap 软件包。
  • snap remove package:
    卸载指定的 Snap 软件包。
  • snap list:
    列出系统中所有已安装的 Snap 软件包。
  • snap info package:
    显示指定 Snap 软件包的详细信息。
  • snap refresh:
    刷新所有已安装的 Snap 软件包。

🏆使用 flatpak 进行软件包管理:

  • flatpak install package:
    安装指定的 Flatpak 软件包。
  • flatpak uninstall package:
    卸载指定的 Flatpak 软件包。
  • flatpak list:
    列出系统中所有已安装的 Flatpak 软件包。
  • flatpak info package:
    显示指定 Flatpak 软件包的详细信息。
  • flatpak update:
    更新所有已安装的 Flatpak 软件包。

对上面这几种软件管理方式进一步的解释

  • apt-get:这是 Ubuntu 系统中最常用的软件包管理工具之一。它使用 APT(Advanced Packaging Tool)作为后端工具,能够从软件源(repositories)中获取软件包,并进行安装、升级、卸载等操作。apt-get 使用的软件包格式是 .deb。
  • dpkg:这是 Ubuntu 系统中的底层软件包管理工具。它直接处理软件包文件(.deb),能够安装、卸载、查询已安装软件包等。dpkg 主要用于对单个软件包的管理,可以通过命令行进行操作。
  • apt-cache:这是 apt-get 的附属工具之一,用于查询软件包的信息。apt-cache 可以搜索软件包、显示软件包详细信息和依赖关系等。它主要用于在软件包列表中进行搜索和查询操作。
  • apt-file:这是另一个查询软件包内容的工具。与 apt-cache 不同,apt-file 可以查询未安装的软件包中的文件列表。它需要先更新数据库,然后可以根据文件名搜索软件包。
  • snap:这是一种用于 Ubuntu 的软件打包和分发格式。Snap 软件包是一种自包含的、跨平台的应用格式,包含了软件及其所有依赖项。Snap 包可以通过 snap 命令进行安装、卸载和更新。Snap 软件包具有良好的隔离性和版本管理能力。
  • flatpak:这是另一种用于 Ubuntu 的软件打包和分发格式。Flatpak 软件包也是一种自包含的、跨平台的应用格式,类似于 Snap 软件包。Flatpak 软件包可以通过 flatpak 命令进行安装、卸载和更新。Flatpak 软件包同样具有隔离性和版本管理能力。

👑2.7、进程相关操作命令

🏆进程查看和信息:

  1. ps:
    显示当前活动进程的快照。

    • 示例:ps aux
  2. pstree:
    以树状图显示进程层次关系。

    • 示例:pstree -p
  3. top:
    实时显示进程和系统资源使用情况。

    • 示例:top
  4. htop:
    交互式显示进程和系统资源使用情况。

    • 示例:htop
  5. pgrep:
    根据进程名查找进程 ID。

    • 示例:pgrep -l nginx
  6. pidof:
    根据进程名查找进程 ID。

    • 示例:pidof nginx
  7. pmap:
    显示进程的内存映射信息。

    • 示例:pmap 1234
  8. lsof:
    列出打开文件的进程。

    • 示例:lsof -p 1234
  9. fuser:
    显示使用文件或套接字的进程。

    • 示例:fuser -v /path/to/file

🏆进程管理:

  1. kill:
    发送信号给指定进程。

    • 示例:kill -9 1234
  2. pkill:
    根据进程名杀死进程。

    • 示例:pkill -9 nginx
  3. killall:
    根据进程名杀死所有匹配进程。

    • 示例:killall -9 nginx
  4. renice:
    修改正在运行的进程优先级。

    • 示例:renice +10 -p 1234
  5. nice:
    启动新进程时设置优先级。

    • 示例:nice -n 10 command
  6. command:
    要运行的命令。

🏆进程监控:

  1. top:
    实时显示进程和系统资源使用情况。

    • 示例:top
  2. htop:
    交互式显示进程和系统资源使用情况。

    • 示例:htop
  3. atop:
    高级系统和进程性能监控。

    • 示例:atop
  4. glances:
    实时系统监控工具。

    • 示例:glances
  5. dstat:
    实时系统资源统计工具。

    • 示例:dstat
  6. vmstat:
    显示虚拟内存统计信息。

    • 示例:vmstat
  7. iostat:
    显示磁盘 I/O 统计信息。

    • 示例:iostat
  8. sar:
    系统活动报告工具。

    • 示例:sar
  9. strace:
    跟踪系统调用和信号。

    • 示例:strace -p 1234

🏆进程通信:

  1. pipe:
    创建进程间管道通信。

    • 示例:pipe
  2. socket:
    创建进程间套接字通信。

    • 示例:socket
  3. shared memory:
    创建进程间共享内存通信。

    • 示例:shared memory

👑2.8、网络相关操作命令

🏆网络配置和接口管理

1、ifconfig
查看和配置网络接口信息。
选项:
        -a:显示所有网络接口。
        :指定要查看或配置的网络接口。
例子:
        ifconfig eth0:查看或配置名为 eth0 的网络接口。

2、ip
显示和管理网络接口信息。
选项:

  • address:显示或配置 IP 地址。
  • link:显示或配置链路状态。
  • route:显示或配置路由表。

例子:
        ip address show eth0:显示 eth0 的 IP 地址信息。
        ip link set eth0 up:启用 eth0 网络接口。

3、nmcli
NetworkManager 命令行工具,用于管理网络连接。
选项:

  • connection:管理网络连接配置。
  • device:管理网络设备。

例子:
        nmcli connection show:显示所有网络连接。
        nmcli device wifi list:显示可用的 Wi-Fi 网络。

4、networkctl
查看和控制 systemd 管理的网络设备和连接。
选项:

  • list:显示网络设备和连接列表。
  • status :显示特定网络接口的状态。

例子:
        networkctl list:显示网络设备和连接列表。
        networkctl status eth0:显示 eth0 网络接口的状态。

🏆网络连接和通信

1、ping
向指定主机发送 ICMP Echo 请求。
例子:
        ping google.com:向 google.com 发送 ICMP Echo 请求。
        curl:命令行工具,用于发送 HTTP 请求和显示响应。
例子:
        curl http://example.com:发送 GET 请求到 example.com 并显示响应。

2、wget
下载文件工具。
例子:
        wget http://example.com/file.txt:下载 example.com 上的文件 file.txt。

3、ssh
通过 SSH 协议远程登录到其他主机。
例子:
        ssh username@hostname:使用用户名和主机名远程登录。

4、scp
通过 SSH 协议进行安全文件传输。
例子:
        scp file.txt username@hostname:~:将本地文件 file.txt 上传到远程主机的用户目录。
5、ftp
文件传输协议客户端。
例子:
        ftp hostname:连接到指定的 FTP 服务器。
6、telnet
远程登录协议客户端。
例子:
        telnet hostname:连接到指定的 Telnet 服务器。

🏆网络诊断和监控

1、netstat
显示网络状态和统计信息。
选项:

  • -a:显示所有连接和监听端口。
  • -n:以数字格式显示 IP 和端口号。
  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。

例子:
        netstat -an:显示所有连接和监听端口的数字格式。

2、ss
Socket 统计工具,显示套接字相关信息。
选项:

  • -t:显示 TCP连接。
  • -u:显示 UDP 连接。
  • -n:以数字格式显示 IP 和端口号。

例子:
        ss -t:显示所有 TCP 连接的详细信息。
3、lsof
显示打开文件和网络连接的进程信息。
例子:
        lsof -i tcp:80:显示使用 TCP 80 端口的进程信息。
4、tcpdump:网络数据包捕获工具。
例子:
        tcpdump -i eth0:捕获 eth0 网络接口的数据包。
5、wireshark
图形化网络协议分析工具。
例子:
        wireshark:启动 Wireshark 图形界面。

👑2.9、RPM和YUM命令

🏆RPM命令:

  1. 安装RPM软件包:

    • rpm -i <package.rpm>
      例子:安装名为example.rpm的RPM软件包:rpm -i example.rpm
  2. 升级已安装的RPM软件包:

    • rpm -U <package.rpm>
      例子:升级名为example.rpm的RPM软件包:rpm -U example.rpm
  3. 卸载RPM软件包:

    • rpm -e <package>
      例子:卸载名为example的RPM软件包:rpm -e example
  4. 查询已安装的RPM软件包:

    • rpm -q <package>
      例子:查询名为example的RPM软件包:rpm -q example
  5. 验证已安装的RPM软件包:

    • rpm -V <package>
      例子:验证名为example的RPM软件包:rpm -V example

🏆YUM命令:

  1. 安装软件包:

    • yum install <package>
      例子:安装名为example的软件包:yum install example
  2. 升级软件包:

    • yum update <package>
      例子:升级名为example的软件包:yum update example
  3. 卸载软件包:

    • yum remove <package>
      例子:卸载名为example的软件包:yum remove example
  4. 查询软件包信息:

    • yum info <package>
      例子:查询名为example的软件包信息:yum info example
  5. 搜索软件包:

    • yum search <keyword>
      例子:搜索包含关键字example的软件包:yum search example
  6. 列出所有可用的软件包:

    • yum list
      例子:列出所有可用的软件包:yum list
  7. 清理YUM缓存:

    • yum clean all
      例子:清理YUM缓存:yum clean all``​​​​​​​

以下是一些常见的YUM配置文件路径:

  • /etc/yum.conf: YUM的主配置文件。
  • /etc/yum.repos.d/: 仓库配置文件的目录。

🍁结语

这篇文章或多或少可能存在错误,欢迎各位大佬的指出

posted @ 2023-06-17 20:55  在下周周ovo  阅读(221)  评论(0编辑  收藏  举报