写点什么

Linux 中常用的基础命令

作者:emanjusaka
  • 2024-01-23
    北京
  • 本文字数:4284 字

    阅读完需:约 14 分钟

Linux 中常用的基础命令

by emanjusaka from https://www.emanjusaka.top/2024/01/linux-base-command 彼岸花开可奈何

本文欢迎分享与聚合,全文转载请留下原文地址。


分类总结了 Linux 中的基础命令,可以收藏本文以后如果忘记了某些基础命令或者对某些命令不知道怎么用时,拿出本文快速查看各种命令的用法及作用。希望这个速查手册可以帮助到大家。

目录操作命令

ls

显示当前目录下的文件名


ls [选项] [文件名或目录名]

-a:显示所有文件

--color=when:支持颜色输出,when 的值默认是 always(总显示颜色),也可以是 never(从不显示颜色)和 auto(自动)

-d:显示目录信息,而不是目录下的文件

-h:人性化显示,按照我们习惯的单位显示文件大小

-i:显示文件的 i 节点号

-l:长格式显示



  • 第一列:权限

  • 第二列:引用计数。文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。

  • 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户

  • 第四列:所属组。默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组

  • 第五列:大小。默认单位是字节

  • 第六列:文件修改时间。文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间

  • 第七列:文件名

cd

切换所在目录的命令。


cd 目录名称


cd 命令的特殊符号:


  • ~代表用户的家目录

  • -代表上次所在目录

  • .代表当前目录

  • ..代表上级目录

mkdir

创建目录的命令


mkdir [选项] 目录名

-p:递归建立所需目录

rmdir

删除目录的命令


rmdir [选项] 目录名

-p:递归删除目录


只能删除空目录,不太常用。

tree

以树形结构显示目录下的文件


tree 目录名称

文件操作命令

touch

如果文件不存在,则会建立空文件;如果文件已经存在,则会修改文件的时间戳。


touch [选项] 文件名或目录名

-a: 只修改文件的访问时间(Access Time)

-c:如果文件不存在,则不建立新文件

-d:把文件的时间改为指定的时间

-m:只修改文件的数据修改时间(Modify Time)

stat

查看文件详细信息的命令


stat [选项] 文件名或目录名

-f:查看文件所在的文件系统信息,而不是查看文件的信息

cat

用来查看文件内容


cat [选项] 文件名

-A:相当于-vET 选项的整合,用于列出所有隐藏符号

-E:列出每行结尾的回车符 $

-n:显示行号

-T:把 Tab 键用^I 显示出来

-v:列出特殊字符

more

分屏显示文件的命令


more 文件名

交互命令:

  • 空格键:向下翻页

  • b:向上翻页

  • 回车键:向下滚动一行

  • /字符串:搜索指定的字符串

  • q:退出

less

分行显示命令


less 文件名

head

显示文件开头的命令


head [选项] 文件名

-n 行数:从文件头开始,显示指定行数

-v:显示文件名


默认显示文件的开头 10 行内容

tail

显示文件结尾的命令


tail [选项] 文件名

-n 行数:从文件结尾开始,显示指定行数

-f:监听文件的新增内容


默认显示文件的后 10 行

ln

在文件之间建立链接


ln [选项] 源文件 目标文件

-s:建立软链接文件。如果不加“-s”选项,则建立硬链接文件

-f:强制。如果目标文件已经存在,则删除目标文件后再建立链接文件


软链接文件的源文件必须写成绝对路径

目录和文件都能操作的命令

rm

删除文件或目录


rm [选项] 文件或目录

-f:强制删除(force)

-i:交互删除,在删除之前会询问用户

-r:递归删除,可以删除目录(recursive)

cp

复制文件和目录


cp [选项] 源文件 目标文件

-a:相当于-dpr 选项的集合

-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接

-i:询问,如果目标文件已经存在,则会询问是否覆盖

-l:把目标文件建立为源文件的硬链接文件,而不是复制源文件

-s:把目标文件建立为源文件的软链接文件,而不是复制源文件

-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)

-r:递归复制,用于复制目录

mv

移动文件或改名


mv [选项] 源文件 目标文件

-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖

-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)

-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户

-v:显示详细信息

权限管理命令


权限位的含义:

  • 第一位代表文件类型

  • 普通文件

  • b 块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1 就是这种文件

  • c 字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘等

  • d 目录文件。Linux 中一切皆文件,所以目录也是文件的一种。

  • l 软链接文件。

  • p 管道符文件。这是一种非常少见的特殊设备文件。

  • s 套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样的文件。

  • 第 2~4 位代表文件所有者的权限

  • r 代表 read,是读取权限。

  • w 代表 write,是写权限。

  • x 代表 execute,是执行权限。

  • 如果有字母,则代表拥有对应的权限;如果是”-“,则代表没有对应的权限。

  • 第 5~7 位代表文件所属组的权限,同样拥有”rwx“权限。

  • 第 8~10 位代表其他人的权限,同样拥有”rwx“ 权限。

如果在文件的权限位中含有. 则表示这个文件受 SELinux 的安全规则管理。

chmod

修改文件的权限模式


chmod [选项] 权限模式 文件名

-R:递归设置权限,也就是给子目录中的所有文件设定权限

权限模式:

  • -u:代表所有者(user)

  • -g:代表所属组(group)

  • -o:代表其他人(other)

  • -a:代表全部身份(all)

赋予方式:

  • -+:加入权限

  • --:减去权限

  • -=:设置权限

权限:

  • -r:读取权限

  • -w:写权限

  • -x:执行权限

数字权限:

  • 4:代表“r”权限

  • 2:代表“w”权限

  • 1:代表“x”权限

chown

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


chown [选项] 所有者:所属组 文件或目录

-R:递归设置权限,也就是给子目录中的所有文件设置权限

chgrp

修改文件和目录的所属组的命令


chgrp 所属组 文件或目录

帮助命令

man

显示联机帮助手册


man [选项] 命令

-f:查看命令拥有哪个级别的帮助

-k:查看和命令相关的所有帮助

info

获取命令的帮助

help

显示 Shell 内置命令的帮助


help 内置命令

搜索命令

whereis

查找二进制命令、源文件和帮助文档的命令


whereis [选项] 命令

-b:只查找二进制命令

-m:只查找帮助文档

which

列出命令的所在路径


which 命令

locate

按照文件名搜索文件


locate [选项] 文件名

-i:忽略大小写

find

在目录中搜索文件


find 搜索路径 [选项] 搜索内容

按照文件名搜索:

-name:按照文件名搜索

-iname:按照文件名搜索,不区分文件名大小写

-inum:按照 inode 号搜索

按照文件大小搜索:

-size [+-]大小:按照指定大小搜索文件

按照修改时间搜索:

-atime [+-]时间:按照文件访问时间搜索

-mtime [+-]时间:按照文件数据修改时间搜索

-ctime [+-]时间:按照文件状态修改时间搜索

按照权限搜索:

-perm 权限模式:查找文件权限刚好等于“权限模式”的文件

-perm -权限模式:查找文件权限全部包含“权限模式”的文件

-perm +权限模式:查找文件权限包含“权限模式”的任意一个权限的文件

按照所有者和所属组搜索:

-uid 用户 ID:按照用户 ID 查找所有者是指定 ID 的文件

-gid 组 ID:按照用户组 ID 查找所属组是指定 ID 的文件

-user 用户名:按照用户名查找所有者是指定用户的文件

-group 组名:按照组名查找所属组是指定用户组的文件

-nouser:查找没有所有者的文件

按照文件类型搜索:

-type d:查找目录

-type f:查找普通文件

-type l:查找软链接文件

逻辑运算符:

-a:and 逻辑与

-o:or 逻辑或

-not:not 逻辑非

压缩和解压缩命令

.zip 格式

zip

压缩文件或目录


zip [选项] 压缩包名 源文件或源目录

-r:压缩目录

unzip

列表、测试和提取压缩文件中的文件


unzip [选项] 压缩包名

-d:指定解压缩位置

.gz 格式

gzip

压缩文件或目录


gzip [选项] 源文件

-c:将压缩数据输出到标准输出中,可以用于保留源文件

-d:解压缩

-r:压缩目录

-v:显示压缩文件的信息

-数字:用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高。默认压缩比是-6

gunzip

解压缩文件或目录

.bz2 格式

bzip2

.bz2 格式的压缩命令


bzip2 [选项] 源文件

-d:解压缩

-k:压缩时,保留源文件

-v:显示压缩的详细信息

-数字:这个参数和 gzip 命令的作用一样,用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9 压缩比最高


注意,gzip 只是不会打包目录,但是如果使用“-r”选项,则可以分别压缩目录下的每个文件;而 bzip2 命令则根本不支持压缩目录,也没有“-r”选项。

bunzip2

.bz2 格式的解压缩命令


bunzip2 [选项] 源文件

-k:解压缩时,保留源文件

.tar 格式

tar

打包与解打包命令


打包:


tar [选项] [-f 压缩包名] 源文件或目录

-c:打包

-f:指定压缩包的文件名。压缩包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名

-v:显示打包文件过程


“-cvf” 一般是打包习惯用法


解打包:


tar [选项] 压缩包

-x:解打包

-f:指定压缩包的文件名

-v:显示打包文件过程

-t:测试,就是不解打包,只是查看包中有哪些文件

-C:指定解打包位置


“-xcf” 一般是解打包习惯用法

.tar.gz 和.tar.bz2 格式

tar [选项] 压缩包 源文件或目录

-z:压缩和解压缩“.tar.gz”格式

-j:压缩和解压缩".tar.bz2"格式

  • .tar.gz

  • 压缩

  • tar -zcvf tmp.tar.gz /tmp/

  • 解压缩

  • tar -zxvf tmp.tar.gz

  • .tar.bz2

  • 压缩

  • tar -jcvf tmp.tar.bz2 /tmp/

  • 解压缩

  • tar -jxvf tmp.tar.bz2

关机和重启命令

sync

刷新文件系统缓冲区


在关机或重启之前多执行几次 sync 命令。

shutdown

关机和重启


shutdown [选项] 时间 [警告信息]

-c:取消已经执行的 shutdown 命令

-h:关机

-r:重启

reboot

重启

halt 和 poweroff

关机

init

init 0 #关机

init 6 # 重启

常用网络命令

setup

setup 是一个简化命令,是 Red Hat 系列专有的命令,其他的 Linux 系列不一定有此命令。

ifconfig

Linux 中查看和临时修改 IP 地址的命令


ifconfig


临时配置 IP 地址


ifconfig eth0192.168.3.1 #使用标准子网掩码

ifconfig eth0192.168.3.1 netmask 255.255.255.0

ifup 和 ifdown

用于开启和关闭网卡


ifup eth0 #开启网卡

ifdown eth0 #关闭网卡

ping

向网络主机发送 ICMP 请求


ping [选项] IP

-b:后面加入广播地址,用于对整个网段进行探测

-c 次数:用于指定 ping 的次数

-s 字节:指定探测包的大小

netstat

输出网络连接、路由表、接口统计、伪装连接和组播成员


netstat [选项]

-a:列出所有网络状态,包括 Socket 程序

-c 秒数:指定每隔几秒刷新一次网络状态

-n:使用 IP 地址和端口号显示,不使用域名与服务名

-p:显示 PID 和程序名

-t:显示使用 TCP 协议端口的连接状况

-u:显示使用 UDP 协议端口的连接状况

-l:仅显示监听状态的连接

-r:显示路由表

write

向其他用户发送信息


write 用户名 [终端号]

wall

用于给所有登录用户发送信息,包括自己


wall 发送的信息

mail

发送和接收电子邮件


本文原创,才疏学浅,如有纰漏,欢迎指正。如果本文对您有所帮助,欢迎点赞,并期待您的反馈交流,共同成长。

原文地址: https://www.emanjusaka.top/2024/01/linux-base-command

微信公众号:emanjusaka 的编程栈

用户头像

emanjusaka

关注

还未添加个人签名 2022-04-29 加入

分享技术,共同成长。一个编程菜鸟的升级打怪之路~

评论

发布
暂无评论
Linux 中常用的基础命令_bash_emanjusaka_InfoQ写作社区