linux系统常见及常用命令(超详细:系统篇)-CSDN博客
linux系统常见及常用的命令操作(进程管理、网络通信篇)-CSDN博客
一、包管理、压缩解压缩:
1. get-apt:用于处理软件包的安装、升级和删除
apt-get
是 Debian、Ubuntu系列Linux的包管理工具,用于处理软件包的安装、升级和删除;
格式:apt-get [选项] [操作]
选项及参数
install
:安装新包。remove
:删除包。update
:更新包列表。upgrade
:升级所有已安装的包。dist-upgrade
:智能升级,处理包依赖关系的变化。
- 常用命令操作:
# 使用示例:
# 更新包列表:
[root@hostname ~]# apt-get update
# 安装包:
[root@hostname ~]# apt-get install package
# 升级所有包:
[root@hostname ~]# apt-get upgrade
# 删除包:
[root@hostname ~]# apt-get remove package
注意事项:
- 使用
apt-get
时,建议先运行update
以确保包列表是最新的。- 升级操作可能需要重新启动服务或系统。
2. dnf:包管理工具
dnf
是 Fedora、CentOS 和 RHEL 8 及以上版本的包管理工具,替代了 yum;
格式:dnf [选项] [操作]
选项及参数:
install
:安装新包。remove
:删除包。update
:更新包。search
:搜索包。info
:显示包信息。
# 使用示例:
# 安装包:
[root@hostname ~]# dnf install package
# 更新包:
[root@hostname ~]# dnf update package
# 删除包:
[root@hostname ~]# dnf remove package
# 搜索包:
[root@hostname ~]# dnf search keyword
3. yum:包管理工具
yum
是 CentOS 和 RHEL 7 及以下版本的包管理工具,用于安装、卸载和管理 .rpm
包。
格式:yum [选项] [操作]
选项及参数:
install
:安装指定的软件包。remove
:卸载指定的软件包。update
:更新所有已安装的软件包到最新版本。upgrade
:等同于update
,更新所有已安装的软件包。list
:列出可用的软件包或已安装的软件包。info
:显示软件包的详细信息。search
:搜索软件包。clean
:清理本地的缓存数据。reinstall
:重新安装软件包。
- 常用命令操作:
# 使用示例:
# 安装软件包:
[root@hostname ~]# yum install vim
# 卸载软件包
[root@hostname ~]# yum remove vim
# 更新所有软件包
[root@hostname ~]# yum update
# 列出所有可用的软件包
[root@hostname ~]# yum list available
# 清理缓存
[root@hostname ~]# yum clean all
4. rpm:管理套件
rpm
(Red Hat Package Manager)是一个用于安装、卸载、升级和查询 RPM 软件包的命令行工具。以下是 rpm
命令的详细解释,包括常用操作、选项及示例。
http:// 推荐一个面试网站(看个人需求):面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷
常用选项及操作:
-i
:安装指定的软件包-e
:卸载指定的软件包-U
:升级软件包。如果软件包已安装,则升级到新版本;如果未安装,则进行安装--replacepkgs
:强制重新安装已经存在的软件包-q
:查询软件包的详细信息-qi
:显示已安装软件包的详细信息-ql
:列出软件包中包含的文件-qf
:查找给定文件属于哪个软件包-V
:验证已安装软件包的完整性和文件属性--filesbypkg
:列出软件包的所有文件及其校验和
- 常用命令操作:
# 使用示例:
# 安装软件包:
[root@hostname ~]# rpm -i vim-8.2.0-1.el7.x86_64.rpm
# 卸载软件包:
[root@hostname ~]# rpm -e vim
# 升级软件包:
[root@hostname ~]# rpm -U vim-8.2.1-1.el7.x86_64.rpm
# 重新安装软件包:
[root@hostname ~]# rpm -i --replacepkgs vim-8.2.0-1.el7.x86_64.rpm
# 显示软件包信息:
[root@hostname ~]# rpm -qi vim
# 列出软件包文件:
[root@hostname ~]# rpm -ql vim
# 查找文件所属的软件包
[root@hostname ~]# rpm -qf /usr/bin/vim
注意事项:
- 权限要求:大多数
rpm
操作需要 root 权限。确保使用sudo
或以 root 用户身份执行。- 依赖管理:
rpm
不自动处理依赖关系。可以使用yum
或dnf
工具来管理依赖。- 验证完整性:使用
rpm -V
定期验证软件包的完整性,以确保系统稳定性。- 备份数据:在执行卸载或升级操作前,建议备份重要数据。
5. tar:归档工具,常与压缩工具结合使用
tar
是用于创建和操作归档文件的工具,通常用于将多个文件和目录打包成一个归档文件,或从归档文件中提取文件。它支持多种压缩格式。
格式:tar [选项] [归档文件名] [文件或目录]
选项及参数:
-c
:创建新的归档文件。-x
:从归档文件中提取文件。-t
:列出归档文件的内容。-v
:显示详细操作过程(verbose)。-f
:指定归档文件的名称。-z
:通过gzip
压缩或解压归档文件。-j
:通过bzip2
压缩或解压归档文件。-J
:通过xz
压缩或解压归档文件。
- 常用命令操作:
# 使用示例:
# 创建归档文件:
[root@hostname ~]# tar -cvf archive.tar file1 file2
# 创建并压缩归档文件:
[root@hostname ~]# tar -czvf archive.tar.gz file1 file2
# 提取归档文件:
[root@hostname ~]# tar -xvf archive.tar
# 提取并解压缩归档文件:
[root@hostname ~]# tar -xzvf archive.tar.gz
注意事项:
- 使用
-f
选项时,归档文件名应紧跟在选项后面。- 压缩选项(如
-z
、-j
、-J
)应放在-f
之前。
6. gzip 与 gunzip:压缩及解压缩文件(通常使用 tar)
(1)gizp 命令:
gzip
用于压缩单个文件生成 .gz
格式的压缩文件
格式:gzip [选项] [文件]
选项及参数:
-d
:解压缩文件。-c
:将压缩结果输出到标准输出。-k
:保留原始文件。-r
:递归处理目录。
- 常见命令操作:
# 使用示例
# 压缩文件:
[root@hostname ~]# gzip file
# 解压缩文件:
[root@hostname ~]# gzip -d file.gz
# 保留原始文件:
[root@hostname ~]# gzip -k file
注意事项:
- 压缩后原始文件会被替换,使用
-k
选项可以保留原始文件。gzip
只能处理单个文件,如果需要压缩多个文件,先使用tar
打包。
(2)gunzip 命令:
gunzip
是用于解压 .gz
文件的工具,可以将 .gz
文件解压回原始文件。
格式:gunzip [选项] [文件]
选项及参数:
-c
:将解压缩结果输出到标准输出。-k
:保留原始.gz
文件。-r
:递归处理目录。
- 常用命令操作:
# 使用示例:
# 解压缩文件:
[root@hostname ~]# gunzip file.gz
# 解压缩并保留 .gz 文件:
[root@hostname ~]# gunzip -k file.gz
注意事项:
gunzip
与gzip -d
功能相同,可以互换使用。- 使用
-k
选项可以保留.gz
文件。
7. zip 与 unzip:创建及解压缩zip格式的压缩文件(通常使用 tar)
(1)zip 命令:
zip
是用于创建 .zip
压缩文件的工具,支持将文件和目录打包并压缩。
格式:zip [选项] [压缩文件名] [文件或目录]
选项及参数:
-r
:递归处理目录。-e
:使用密码加密压缩文件。-u
:更新已有的压缩文件。-x
:排除特定文件。
- 常用命令操作:
# 创建 .zip 文件:
[root@hostname ~]# zip archive.zip file1 file2
# 递归压缩目录:
[root@hostname ~]# zip -r archive.zip directory
# 使用密码加密:
[root@hostname ~]# zip -e archive.zip file
注意事项:
zip
支持压缩文件和目录,但需要使用-r
选项来递归处理目录。- 密码加密的
.zip
文件使用时需要提供密码。
(2)unzip 命令:
unzip
用于解压 .zip
文件,支持将文件解压到指定目录,查看压缩文件内容等。
格式:unzip [选项] [压缩文件]
选项及参数:
-d
:指定解压目录-l
:列出压缩文件的内容-o
:覆盖已存在的文件-x
:排除特定文件
- 常用命令操作:
# 使用示例
# 解压文件:
[root@hostname ~]# unzip archive.zip
# 解压到指定目录:
[root@hostname ~]# unzip archive.zip -d /path/to/directory
# 列出内容:
[root@hostname ~]# unzip -l archive.zip
注意事项:
- 解压到目录时,确保目标目录存在或使用
mkdir
创建目录。- 使用
-o
选项时,已存在的文件将被覆盖。
二、文件和目录操作:
1. ls:显示指定工作目录下的内容(文件和目录)
ls
是 Unix 和类 Unix 操作系统中用于列出目录内容的命令。它有很多选项,可以用来改变输出的格式和详细程度。
格式:ls {选项} 文件或目录
常用选项:
- -A:查看隐藏文件
- -a:以更完整的查看所有的文件
- -l:以长格式的形式显示目录的内容
-R:递归查看,把这个目录下所有的子目录都显示出来
- -d:和l连用,显示目录本身的属性
- -h:和l连用,以易读的方式显示(带单位)
- 常见命令操作:
# 使用示例:
# 显示详细信息列表,包括文件类型、权限、链接数、所有者、组、文件大小和修改时间等
[root@hostname ~]# ls -l
# 列出所有文件,包括隐藏文件(即以点 . 开头的文件)
[root@hostname ~]# ls -a
# 结合 -l 和 -a 选项,显示详细信息,并包括隐藏文件
[root@hostname ~]# ls -la
# 与 -l 选项一起使用时,-h 选项将文件大小以更易读的格式显示(如 KB、MB)
[root@hostname ~]# ls -lh
# 递归地列出所有子目录中的文件和目录
[root@hostname ~]# ls -R
# 列出目录本身而不是目录中的内容。这个选项与 * 通配符一起使用时非常有用
[root@hostname ~]# ls -d
2. mkdir:创建新目录
用于创建新目录的命令,允许用户在指定路径下创建一个或多个目录。
# 基本用法:
# 创建单个目录:
[root@hostname ~]# mkdir directory_name
# 创建多个目录:
[root@hostname ~]# mkdir dir1 dir2 dir3
# 常用选项及使用示例:
# -p:创建目录时,如果需要创建的目录的父目录不存在,则同时创建这些父目录。这对于创建多级目录结构非常有用
[root@hostname ~]# mkdir -p /path/to/new_directory
# -m:设置新目录的权限模式。这允许用户在创建目录时指定权限
[root@hostname ~]# mkdir -m 755 new_directory
# -v:显示创建目录的详细信息。这可以帮助用户确认哪些目录已被创建
[root@hostname ~]# mkdir -v new_directory
3. touch:创建空文件或修改文件时间戳
用于创建空文件或修改文件的时间戳。这个命令在文件处理和脚本编写中非常有用,尤其是在需要创建文件或更新时间戳的情况下
# 基本用法:
# 创建空文件:
[root@hostname ~]# touch filename
同时:这个命令将更新 filename 文件的访问时间(atime)和修改时间(mtime)为当前时间。
如果文件已经存在,原有内容不会改变
# 常用选项及使用示例:
# -a:只更新文件的访问时间(atime),不改变修改时间(mtime)
[root@hostname ~]# touch -a filename
# -m:只更新文件的修改时间(mtime),不改变访问时间(atime)
[root@hostname ~]# touch -m filename
# -t:使用指定的时间戳来设置文件的时间。时间格式为 [[CC]YY]MMDDhhmm[.ss],其中:
CC:世纪
YY:年份
MM:月份
DD:日期
hh:小时
mm:分钟
ss:秒(可选)
[root@hostname ~]# touch -t 202308131530.45 filename
解释:这将把 filename 的时间戳设置为 2023年8月13日15:30:45
# -c:如果文件不存在,则不创建文件。这对于只更新现有文件的时间戳时非常有用
[root@hostname ~]# touch -c filename
4. cp:复制文件或目录
主要用于复制文件和目录;
格式:cp [选项] 源文件 目标文件
源文件:你想要复制的文件或目录
目标文件:复制后的文件或目录
常用选项:
-r
:递归复制目录及其内容。-i
:在覆盖文件前询问确认。-u
:只在源文件比目标文件新或目标文件不存在时复制。-v
:显示详细的操作过程。
# 复制单个文件:将文件 file1.txt 复制到 file2.txt
cp file1.txt file2.txt
# 复制多个文件到目标目录:将 file1.txt 和 file2.txt 复制到目录 backup
cp file1.txt file2.txt backup/
# 递归地复制 dir1 目录到 dir2:
[root@hostname ~]# cp -r dir1 dir2
5. scp:安全的复制文件到远程计算机 或 从远程计算机到本计算机
scp
(Secure Copy Protocol)是一个用于在计算机之间安全地复制文件或目录的命令,基于 SSH(Secure Shell)协议。scp
在执行文件传输时会加密数据流,以确保数据的安全性。
格式:scp [选项] 源路径 目标路径
1. 源路径:要复制的文件或目录的位置
2. 目标路径:复制文件或目录的目标位置
# 源路径和目标路径格式:
scp 支持三种路径格式:
1. 本地路径:如 file.txt 或 /path/to/file.txt。
2. 远程路径:以 user@host:/path/to/file 格式指定,user 是远程主机的用户名,host 是主机名或 IP 地址,/path/to/file 是远程文件的路径。
3. 本地到远程路径:/path/to/file user@host:/path/to/destination。
4. 远程到本地路径:user@host:/path/to/file /path/to/local/destination。
常用选项:
-r
:递归复制目录及其内容。-i
:指定 SSH 密钥文件(通常用于指定私钥)。-P port
:指定 SSH 连接的端口号(注意是大写的-P
)。-p
:保留文件的时间戳、权限等属性。-q
:安静模式,不显示进度信息。-v
:详细模式,显示更多的调试信息。-C
:启用压缩,减少传输数据的量。
# 使用示例:
# 从本地复制文件到远程主机:将本地的 file.txt 文件复制到远程主机 /home/user/ 目录中
[root@hostname ~]# scp file.txt user@remotehost:/home/user/
# 从远程主机复制文件到本地:将远程主机上的 /home/user/file.txt 文件复制到本地的当前目录
[root@hostname ~]# scp user@remotehost:/home/user/file.txt .
# 递归复制目录到远程主机:将本地的 dir 目录及其所有内容复制到远程主机的 /home/user/ 目录中
[root@hostname ~]# scp -r dir user@remotehost:/home/user/
# 从远程主机递归复制目录到本地:将远程主机上的 /home/user/dir 目录及其所有内容复制到本地的当前目录
[root@hostname ~]# scp -r user@remotehost:/home/user/dir .
# 指定 SSH 端口号:如果远程主机的 SSH 服务器运行在非默认端口(例如 2222),可以指定端口号
[root@hostname ~]# scp -P 2222 file.txt user@remotehost:/home/user/
6. mv:移动文件或目录,也可以用于重命名
mv
(move)命令在 Unix/Linux 系统中用于移动或重命名文件和目录。它的基本功能是将文件或目录从一个位置移动到另一个位置,也可以用来重命名文件或目录。
# 基本语法:
mv [选项] 源路径 目标路径
1. 源路径:要移动或重命名的文件或目录的位置
2. 目标路径:目标位置或者新的名称
常用选项:
-i
:在覆盖文件之前询问确认。如果目标路径已有同名文件,它会要求用户确认是否覆盖-f
:强制移动,不询问确认,直接覆盖目标路径已有的文件。如果目标文件存在,它会被直接替换-u
:只在源文件比目标文件新,或目标文件不存在时移动文件-v
:显示详细的操作过程,包括移动的文件或目录信息-n
:不覆盖已存在的文件。只有在目标文件不存在时才进行移动操作
# 使用示例:
# 移动文件到新目录:将 file1.txt 文件移动到 /path/to/destination/ 目录中
[root@hostname ~]# mv file1.txt /path/to/destination/
# 移动并重命名文件:将 file1.txt 文件移动到同一目录下并重命名为 file2.txt
[root@hostname ~]# mv file1.txt file2.txt
# 移动多个文件到目标目录:将 file1.txt 和 file2.txt 两个文件移动到 /path/to/destination/ 目录中
[root@hostname ~]# mv file1.txt file2.txt /path/to/destination/
# 移动目录:将 dir1 目录及其所有内容移动到 /path/to/destination/ 目录中
[root@hostname ~]# mv dir1 /path/to/destination/
7. ln:创建硬链接或软链接(符号链接)
ln
命令在 Unix/Linux 系统中用于创建文件的链接。它可以创建硬链接(hard links)和符号链接(symbolic links,也称为软链接)。链接是一种指向文件或目录的引用机制,使得同一文件或目录可以有多个名字或路径。
# 基本语法:ln [选项] 源路径 目标路径
1. 源路径:要创建链接的原始文件或目录
2. 目标路径:新创建的链接的路径或名称
(1)硬链接和符号链接的区别:
硬链接(Hard Link)
- 硬链接是指向文件系统中同一数据块的另一个文件名。硬链接与原始文件在文件系统中具有相同的 inode 号码,意味着它们实际上指向同一数据。
- 硬链接不能跨文件系统创建,也不能链接到目录(除非是超级用户)。删除硬链接不会影响原始文件,只有当所有硬链接都被删除后,文件数据才会从磁盘上删除。
符号链接(Symbolic Link)
- 符号链接是指向原始文件路径的特殊文件。它包含一个路径名,系统通过这个路径名访问原始文件。
- 符号链接可以跨文件系统创建,并且可以链接到目录。删除符号链接不会删除原始文件,但如果原始文件被删除,符号链接会变成“悬空链接”,无法再访问文件。
- 软链接:特点
- 1.软链接是存放另一个文件的路径的形式存在。
- 2.软链接可以 跨文件系统 ,硬链接不可以。
- 3.软链接可以对一个不存在的文件名进行链接,硬链接必须要有源文件。
- 4.软链接可以对目录进行链接。
硬链接:特点
硬链接,以文件副本的形式存在。但不占用实际空间。
不允许给目录创建硬链接。
硬链接只有在同一个文件系统中才能创建。
删除其中一个硬链接文件并不影响其他有相同 inode 号的文件。
常用选项:
-s
:创建符号链接(软链接)。如果不使用-s
,ln
将创建硬链接。-f
:强制创建链接。如果目标路径已经存在文件或链接,它会被覆盖。-i
:在覆盖目标文件时询问确认。-v
:显示详细信息。在创建链接时,显示正在创建的链接及其目标信息。-n
:当目标路径是一个目录时,不对其进行覆盖(通常用于防止误覆盖目录)。
- 常用命令操作:
# 使用示例:
# 创建软链接(符号链接):创建符号链接 link_to_file 指向 file.txt
[root@hostname ~]# ln -s file.txt link_to_file
# 创建硬链接:创建硬链接 link_to_file 指向 file.txt
[root@hostname ~]# ln file.txt link_to_file
# 强制创建链接:如果目标路径已有文件,强制创建链接(覆盖目标文件)
[root@hostname ~]# ln -sf file.txt existing_file
# 显示详细信息:创建符号链接,并显示详细信息
[root@hostname ~]# ln -sv file.txt link_to_file
8. rm:删除文件或目录(使用时,请三思,三思,三思)
rm
命令是 Unix/Linux 系统中的一个用于删除文件和目录的命令。rm
是 "remove" 的缩写,它可以用来删除指定的文件或目录;
格式:rm [选项] 文件...
文件:要删除的一个或多个文件路径
常用选项:
-f
:强制删除(force),即使文件或目录是只读的,也不会提示确认,忽略不存在的文件错误。-i
:交互模式(interactive),在删除每个文件之前会提示确认。-I
:较少的交互模式,在删除大量文件时提示确认。-r
或-R
:递归删除(recursive),删除指定目录及其所有内容,包括子目录和文件。-d
:仅删除空目录。如果目录不为空,删除操作会失败。-v
:详细模式(verbose),显示删除操作的详细信息。--no-preserve-root
:禁用对根目录的保护,允许删除根目录及其所有内容(需要非常小心)。--preserve-root
:默认选项,防止删除根目录(/
)及其内容。
- 常用命令操作:
# 使用示例:
# 删除单个文件:删除 file.txt 文件。如果 file.txt 是只读文件,并且没有使用 -f 选项,系统会提示确认删除操作。
[root@hostname ~]# rm file.txt
# 删除多个文件:删除 file1.txt、file2.txt 和 file3.txt 文件
[root@hostname ~]# rm file1.txt file2.txt file3.txt
# 强制删除文件:强制删除 file.txt 文件,即使文件是只读的,也不会提示确认
[root@hostname ~]# rm -f file.txt
# 删除空目录:删除名为 emptydir 的空目录。如果目录不为空,删除操作将会失败
[root@hostname ~]# rm -d emptydir
# 递归删除目录及其内容:删除 mydir 目录及其所有内容,包括子目录和文件。要小心使用此选项,因为它会删除目录下的所有内容而不会进行进一步确认
[root@hostname ~]# rm -r mydir
# 递归删除并强制删除:递归删除并强制删除(不要轻易使用)
[root@hostname ~]# rm -rf mydir
注意事项:
不可恢复:使用
rm
命令删除的文件通常不可恢复。不同于垃圾箱或回收站,rm
命令会永久删除文件和目录。因此,在使用rm
命令时要特别小心。权限:删除文件或目录需要相应的权限。如果用户没有足够的权限,删除操作将会失败。
根目录保护:默认情况下,
rm
命令会保护根目录(/
),防止误删除系统文件和目录。但可以通过--no-preserve-root
选项禁用这种保护(应谨慎使用)。防误删除:使用
-i
选项可以帮助防止意外删除文件,尤其是在删除多个文件时。误删恢复:在删除重要文件时,建议先备份文件或目录,以防误删。系统中有一些恢复工具,如
testdisk
和extundelete
,可以尝试恢复误删的数据,但不保证能恢复所有数据。
9. echo:
echo
命令是 Unix/Linux 系统中的一个用于在终端输出文本或变量值的基本命令。它常用于脚本中打印信息、调试程序、生成输出等。echo
命令将其参数打印到标准输出(通常是终端屏幕)。
格式:echo [选项] [字符串]
1. 选项:echo 命令的各种选项,用于控制输出的格式。
2. 字符串:要输出的文本或变量。如果字符串中包含特殊字符,可以使用引号(单引号或双引号)括起来。
常用选项:
-n
:不输出结尾的换行符。默认情况下,echo
会在输出的末尾添加一个换行符。-e
:启用转义字符的解析。echo
会识别反斜杠(\
)后面的特殊字符(如\n
、\t
等)。注意,不同的 Unix/Linux 版本可能会有所不同,在一些系统中,-e
选项是默认启用的。-E
:禁用转义字符的解析(这是echo
的默认行为)。常用转义字符:
\n
:换行符\t
:制表符\\
:反斜杠(\
)\a
:警报声(响铃)\b
:退格符\c
:不输出结尾的换行符(类似于-n
选项)
- 常用命令操作:
# 使用示例:
# 输出简单文本:会在终端上显示 Hello, World!
[root@hostname ~]# echo "Hello, World!"
# 输出多个字符串:会输出 Hello, World!,字符串之间用空格分隔
[root@hostname ~]# echo "Hello," "World!"
# 使用转义字符:使用 \n 实现换行
[root@hostname ~]# echo -e "Hello,\nWorld!"
输出:
Hello,
World!
推荐一个面试网站(看个人需求):面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷
标签:文件,hostname,链接,linux,操作,txt,root,目录 From: https://blog.csdn.net/m0_64473089/article/details/141160184