linux 指令

本文详细介绍了Linux系统中的各种命令,包括内部和外部命令、命令格式、命令扩展,以及常用命令如帮助查询、文件系统操作等。还讨论了文件类型、通配符的使用,用户和组管理,以及文件权限的含义。对于日常使用和系统管理,这些内容至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux 指令

命令

●内部命令,随Shell启动,常驻内存
●外部命令,需要找到文件加载进程,查找路径就是$PATH
。hash, 外部命令路径可以保存在一个hash表中

命令格式

命令本身可以接受选项和参数,而选项可以有自己的参数。
●短选项: -h使用-加一个字母,短选项可以合并,但是如果选项需要提供参数,必须放后面。 短选项往往都是最常用的选项,为了简化而提供
●长选项: -all使用–加单词,长选项不可以合并写
●Ctl+ c可以结束正在运行的命令
●\ 命令续行符
●;一行多个命令使用分号分割
●使用tab键补全,tab 2次可以提示补全的候选

命令扩展

在这里插入图片描述

常用命令

●查帮助

​ 。help 内部命令
​ 。man查看Man文档
​ 。命令h或命令–helpI

●命令

​ 。type命令类型 wc -l 统计条数
​ 。hostname 主机名
​ 。who登录信息, who am i或whoami, w
​ 。whatis 命令有什么功能
​ 。which 命令在哪里
​ 。whereis 命令程序二进制文件、man文档
​ 。 uname -a查看操作系统信息,比如内核版本-r
​ 。alias别名 。强制执行文件 bash+文件
​ 。echo 回显字符
​ ■-n取消自动附加最后的换行符
​ ■-e使用解释功能,$ echo -e “a\tb\nc"使用转义符
​ 。 date日期
​ ■date +”%Y%m%d %H:%M:%S"
​ ■date [MDDhhmm[[CC]YY][.ss]][.ss]]修改时间

●开关机
。halt, poweroff
。reboot重启
。shutdown [optionl... TIME
	■-r重启
	■-h关机
	■TIME: now立即执行; +3几分钟后执行; hh:mm几点几分开始执行
	■-c末执行前,还可以取消
●网络

​ 。 ping -c 20 -w 5 www. magedu. com
​ 。ip a
​ 。ss -tanlp

绝对路径和相对路径

●相对路径,不以/开始的路径
●绝对路径, 以/开始的路径
●因为常常当前工作路径会变化,有时候从当前路径为参照,找其它路径中的文件会出错,往往就从根开始写
绝对路径,减少路径错误
●相对路径用在相对于当前路径的某个文件, 相对关系不变的情况
●basename基名和dirname目录名

dirname /etc/ sysconfig/ network-scripts/ifcfg- ens33
/etc/sysconfig/ network-scripts

basename /etc/sysconfig/network-scripts/ ifcfg-ens33
ifcfg-ens33

文件类型

●-或f 普通文件
●d目录directory
●I 符号链接或软链接symbolic link,相当于快捷方式
●b块设备block device, 随机访问,磁盘
●c字符设备character device, 线性访问,键盘
●p管道pipe
●s socket文件

通配符Wildcard

● * 匹配0个或多个字符
● ?匹配一个字符
● [a-z]、 [A-Z]、 [0-9]、 [acdf]匹配一 个字符; 【^a-z】匹配a-z之外的任意- 个字符
● [:space:]空白字符; [:digit:]表示0-9; [:lower:]小写; [:upper:]大写; [:alpha:]字母; [:alnum:]字 母和数字等。
。当一个字符用,所以test[:alnum:]]

grep -E [a-z]+ 同等于 egrep [a-z]+

grep -v ^# -v:除什么之外 ^:以什么开头

文件系统命令

● Is列出目录内容

​ 。-a显示所有文件,包括隐藏文件,即以开头的文件
​ 。-l长格式显示。别名ll即Is -l。 显示了stat的部分内容
​ 。-h, -human-readable配合-I,人可阅读的,size显示为K、M、G等
​ 。-R递归目录
​ 。-d或-ld 显示目录自身
​ 。-i显示inode号

●stat 显示文件的信息(元数据metadata)

​ 。access time, atime,读取文件内容则设置
​ 。modify time, mtime,改变文件自身内容则设置。Is -I显示的时间就是mtime
​ 。change time, ctime, 元数据发生变化则设置

●cd 切换目录change directory

​ 。cd或cd ~回家
​ 。cd -最后两次目录切换

●pwd显示当前工作路径; basename基名,路径中最后-部分; dirname目录名
●file 显示文件格式
●cat 读取文件或stdin到stdout; tac每个文件倒着读取行
●more, less比more功能更强

​ 。回车向后- -行,y向前一-行
​ 。空格向后-页,b向前-页
​ 。d向后半页, u向前半页
​ 。g首行,G末行
​ 。u向前
​ 。/或?搜索
​ 。q退出
●head -n 20 /etc/passwd
●tail-n10 /etc/passwd; tail -f /var/log/messages
touch没有文件创建空文件,如果文件存在,改变时间戳
​ 。-a改变atime、 ctime
​ 。-m改变mtime、 ctime
​ 。-c如果文件不存在,则不创建
mkdir 创建目录
​ 。-p创建父目录
​ 。-v详情
tree递归显示目录树
​ 。-d只显示目录
​ 。-L n显示的最大层数
rmdir删除空录
rm慎用!!!
​ 。-i交互式提醒; -f强制不提醒
​ 。-r递归删除
​ 。rm -rf
In创建链接文件
​ 。-S 创建符号链接
​ 。-v详情
cp复制目录或文件,从源复制到目标。默认不递归复制
​ 。如果源是文件
​ ■目标是文件,目标不存在,直接创建指定名称文件。如果目标存在,覆盖
​ ■目标是路径,复制到指定的路径下,不存在新建,存在则覆盖
​ 。如果源是目录
​ ■目标是文件,不可以
​ ■目标是目录
​ ■如果目标目录存在,就在该目标目录下复制源目录内容
​ ■如果不存在,创建目标目录,复制源的内容
​ 。如果有多个源,目标只能是目录了,且目标必须存在
​ 。-i交互式提醒; -f强制覆盖不提示
​ 。-R-r递归复制
​ 。-perserv 保留指定的元数据信息,all保留所有即包含权限、属主、属组等
​ 。-d表示–no-dereference -preserv=links不复制源文件,只复制链接名
​ 。-a归档,相当于-dR --reserv=all, 递归复制所有文件包括软链接,但不跟踪软链接
mv移动或重命名
​ 。和cp很像
find [指定目录][指定条件] [指定动作] [指定动作]
​ 。find / -name *.py

符号链接

$ ln -sv test test.link
$ stat test
$ stat test.link
$ stat -L test.link
使用In命令加上-s选项就可以创建符号链接,也称软链接。软链接也是文件,60个字符以内,在软链接的inode entry中记录着链接到的文件的路径(相对或绝对路径字符串)。而大多数软链接记录的路径字符串长度都小于60,应当尽量避免为软链接分配块,太浪费空间了。
软链接里面记录着路径字符串,所以软链接的size就是路径字符串的长度。
stat的-L选项跟进符号链接。

inoda

每一个文件包括目录都有唯一的一个inode号

目录也是文件,在目录文件本身的数据.上存储着其下的文件的文件名到inode号的映射信息。

一般inode表会占用磁盘空间的1%,所以inode记录数有限制。可能会造成文件太多, inode用完了,可以磁盘还
有空间。因此,小文件多,要适当增加inode空间。inode不跨分区。
查看inode可以使用ls -i
在这里插入图片描述
●假设1个block为4KB
●有15个块指针区, 每个块指针占4个字节
●direct block直接块指针,有12个,那么所有直接块指针最大管理48KB的数据
●single indirecti间接块指针1个,指针占4个字节,1个块就可以存储1 k即1024个指针, 1K * 4KB=4MB, 说明间接块指针可以管理4MB数据
●double indirect二级间接块指针1个,一级指针可以存1K个指针,每一个-级指针有可以保持1K个二级指针,由此可得1K* 1K* 4K=4G,可以管理4G数据
●triple indirect三级间接块指针1个, 4G* 1K= 4T,可以管理4T数据

文件查找

​ /的inode在ext文件系统中是保留的,inode是2。
​ 假设需要查找/d1/f1这个文件,首先找到inode表中查找2对应的块block. /是目录,所以块信息中存储的是它里面的子目录或文件的inode号和文件名。匹配d1文件名后就知道了它的inode号,假设是1234。
​ 再去inode表中找1234对应的inode entry中块信息,然后读取块中信息,由于d1也是目录,从中找出f1和f1的inode。
​ 使用f1的inode去inode表中找到f1的块信息,就可以读取f1的数据了。
注:文件名是目录的数据,也就是说存在目录的块上。

硬链接:如果两个文件没有跨分区,且2个文件指向同一个inode,这就是硬链接,即文件的引用计数。ln test test1来创建文件test1,硬链接数加1。如果硬链接数为0,则文件才被清除了。

进程的状态返回值

​ 每一个进程可以有输入和输出,但是每一个进程还可以有一 个状态返回值, 来表示进程是否成功地执行。
​ 0在绝大多数操作系统中都表示成功;
​ 非0表示进程一定没有成功执行,但非零数表示什么意思,要看不同程序的帮助文档或编程手册。在bash中使用$?查看这个状态返回值。 echo $? 来查看

文件描述符

一切皆文件。每一个打开的文件分配一个文件描述符(Flle Descriptor),负整数。

在这里插入图片描述
管道
使用 |,上一个程序的标准输出通过管道送给下一个命令的标准输入。

重定向
重定向就是改变程序的输入或输出。
●>输出重定向: 相当于 w+ 把标准输出或者文件内容输出给目标 在最后添加 &> c = 2>&1 = 1>&2 在>c前面添加 2>&1 相当于 2 指向1的引用stdout 1也指向stdout 则都只接受stdout id abc > c 2>/dev/null stdout = c stderr = null(黑洞)
●》追加输出重定向:相当于尾部追加
●<输入重定向 :cat < c 原来读取键盘输出内容现在换出读取文件c内容字 符流
●<< Here Document >> cat > test << EOF:直接编辑test文件 buffer 遇到EOF之后结束
输出重定向和输出追加重定向

表示1先指向文件,2指向1,也就指向该文件 >files 2>&1
2>&1 > files表示2指向1即stdout,然后1重新指向一个文件

输入重定向

Here Document

用户和组

*nix(unix)是多用户系统

用户
。管理员
■root用户是必须有的管理员账户,特权用户,无所不能。慎用
■uid为0
■家目录在/root
。系统用户
■普通授权用户,不用登录,- -般不需要家目录
■uid 1-499,CentOS7 1-999
。普通用户
■普通授权用户,交互式登录,需要家目录在/home/
■uid 500+,CentOS 1000+
。用户id为2字节无符号整数,0是root, 其它用户使用1-65535

。用户属于不同的组
。管理员组
■名为root, gid为0
。系统组
■普通组,gid为1-499, CentOS7 1-999
。普通组
■普通组, gid为500+,CentOS 1000+
用户的组
。主要组、基本组primary group
■每一个用户都仅能属于一个组,这个组称为主组,创建用户是指定
。附加组supplementary group
■一个用户可以属于零个或多个附加组

主要配置文件

●/etc/passwd保存用户及id、主组id等属性信息 nologin 不允许登录 bash 登录需要密码
。登录名:密码(shadow中):uid:gid主组:注释:家目录:shell
●/etc/shadow保存用户密码及相关属性
●/etc/group组及属性信息
。组名:组密码(gshadow中):gid:以当前组为附加组的用户列表逗号分隔

用户和组命令

用户、组

​ 。id
​ ■id 当前用户
​ ■id wayne指定用户信息
​ ■-u用户id; -g主组; -G附加组; -n使用名字
​ 。useradd
​ ■-r 创建系统用户,默认没有家目录
​ ■-u UID指定uid
​ ■-g GID指定主组,如果没有指定,则创建与用户名相同的同名主组
​ ■-m系统用户默认不创建家目录,使用该选项创建家目录
​ ■-M非系统用户默认创建家目录,使用该选项则不创建
​ ■-d 指定家目录
​ ■-s 指定shell,查看/etc/shells
​ ■-G g1[g2,…]指定用户的附加组,附加组必须存在 usermod -aG user1 wayne 为wayne加个附加组 user1
​ 。su切换用户
​ ■su- wayne常用,登录式切换,读取该用户的配置文件,并切换到该用户的家目录
​ ■suwayne 用得少,非登录式切换,不读取用户配置文件,也不改变当前工作目录
​ ; # su wayne -C "id"常用,只是为了使用wayne用户启动- 个程序,没必要登录
​ ■当前是root用户, su切换时,无需密码,其它用户切换需要密码
​ 。passwd
​ ■; passwod当前用户修改密码
​ ■# echo 12345678 I passwd - -stdin wayne为wayne用户设置密码
​ ■密码应该足够强,或有过期
​ ■-d删除密码; -I锁定用户; -u解锁用户
​ ■-Xx maxdays密码最大使用期限,超过宽限期后用户将不能自己修改密码
​ ■-w warndays提前多少天警告密码要到期了; i inactivedays超期后修改密码的宽限期
usermod修改用户、userdel 删除用户
groupadd增加组、groupmod修改组、 groupdel删除组

进程的安全上下文

每一个进程启动起来,都有一个用户身份,这个身份决定着进程能访问什么资源。
文件的元数据中定义了权限mode,三部分为属主、属组、其它。
Read Write Execute
r w x
-ord rwx rwx rwx
FileType Owner Group Other Users

当一个进程访问-个资源时,首先进行属主权限匹配,未匹配再进行属组、附加组权限匹配。
如果都没匹配上,那么就是other其它用户,就匹配mode中的最后部分。

文件权限含义

在这里插入图片描述

权限命令
chmod
。-R 目录递归设置,不推荐
。chmod [OPTION… OCTAL-MODE FL…使用3位八进制数修改文件mode
。chmod [OPTION… MODE[MODE]… FILE…
■修改某-组3位权限u、g、o、a
■u=、g=、o=、a=、ug=、 uo=、 go=
■修改组内3位中的某- -位
■u+、g+、o+、a+、+
■u-、g、o-、a-、-
umask
。目录-般有x才能cd进入,文件-一般不要随便给x权限
。默认情况下,管理员umask是022,普通用户是002
。文件666-022=644
。目录为777-022=755
。umask 022修改掩码,非永久有效

在这里插入图片描述
chown
。-R目录递归修改
。| chown [OPTION]… [OINER][: [GROUP]] FILE… 改文件的属主、属组

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值