爆肝万字带你超级详细全面了解Linux命令大全
🍁前言
🏆学习交流:👉在下周周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
的包文件,并包含file1
和file2
。-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 file
或chmod +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、进程相关操作命令
🏆进程查看和信息:
ps:
显示当前活动进程的快照。
- 示例:
ps aux
pstree:
以树状图显示进程层次关系。
- 示例:
pstree -p
top:
实时显示进程和系统资源使用情况。
- 示例:
top
htop:
交互式显示进程和系统资源使用情况。
- 示例:
htop
pgrep:
根据进程名查找进程 ID。
- 示例:
pgrep -l nginx
pidof:
根据进程名查找进程 ID。
- 示例:
pidof nginx
pmap:
显示进程的内存映射信息。
- 示例:
pmap 1234
lsof:
列出打开文件的进程。
- 示例:
lsof -p 1234
fuser:
显示使用文件或套接字的进程。
- 示例:
fuser -v /path/to/file
🏆进程管理:
kill:
发送信号给指定进程。
- 示例:
kill -9 1234
pkill:
根据进程名杀死进程。
- 示例:
pkill -9 nginx
killall:
根据进程名杀死所有匹配进程。
- 示例:
killall -9 nginx
renice:
修改正在运行的进程优先级。
- 示例:
renice +10 -p 1234
nice:
启动新进程时设置优先级。
- 示例:
nice -n 10 command
command:
要运行的命令。🏆进程监控:
top:
实时显示进程和系统资源使用情况。
- 示例:
top
htop:
交互式显示进程和系统资源使用情况。
- 示例:
htop
atop:
高级系统和进程性能监控。
- 示例:
atop
glances:
实时系统监控工具。
- 示例:
glances
dstat:
实时系统资源统计工具。
- 示例:
dstat
vmstat:
显示虚拟内存统计信息。
- 示例:
vmstat
iostat:
显示磁盘 I/O 统计信息。
- 示例:
iostat
sar:
系统活动报告工具。
- 示例:
sar
strace:
跟踪系统调用和信号。
- 示例:
strace -p 1234
🏆进程通信:
pipe:
创建进程间管道通信。
- 示例:
pipe
socket:
创建进程间套接字通信。
- 示例:
socket
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命令:
安装RPM软件包:
rpm -i <package.rpm>
例子:安装名为example.rpm
的RPM软件包:rpm -i example.rpm
升级已安装的RPM软件包:
rpm -U <package.rpm>
例子:升级名为example.rpm
的RPM软件包:rpm -U example.rpm
卸载RPM软件包:
rpm -e <package>
例子:卸载名为example
的RPM软件包:rpm -e example
查询已安装的RPM软件包:
rpm -q <package>
例子:查询名为example
的RPM软件包:rpm -q example
验证已安装的RPM软件包:
rpm -V <package>
例子:验证名为example
的RPM软件包:rpm -V example
🏆YUM命令:
安装软件包:
yum install <package>
例子:安装名为example
的软件包:yum install example
升级软件包:
yum update <package>
例子:升级名为example
的软件包:yum update example
卸载软件包:
yum remove <package>
例子:卸载名为example
的软件包:yum remove example
查询软件包信息:
yum info <package>
例子:查询名为example
的软件包信息:yum info example
搜索软件包:
yum search <keyword>
例子:搜索包含关键字example
的软件包:yum search example
列出所有可用的软件包:
yum list
例子:列出所有可用的软件包:yum list
清理YUM缓存:
yum clean all
例子:清理YUM缓存:yum clean all``
以下是一些常见的YUM配置文件路径:
/etc/yum.conf
: YUM的主配置文件。/etc/yum.repos.d/
: 仓库配置文件的目录。
🍁结语
这篇文章或多或少可能存在错误,欢迎各位大佬的指出