操作系统-linux-常用命令
通常都需要配合管道符|
和重定向符>
,>>
,<
补充一下:linux的程序有3个默认设备,标准输入0,标准输出1和标准错误2
运行命令时可以使用重定向符号定位到文件里面,有一个特殊用法 2>&1
,将标准错误也重定向到标准输出,当这三个默认设备作为重定向到目标文件时得加上&
常用快捷键
- ctrl+alt+t:打开一个新的终端,这种方式打开的终端是不同的pts,但是属于同一个tty
- ctrl+z:将当前进程放到后台,后台任务可以通过fg重新放到前台执行
- ctrl+c:中断当前终端
- ctrl+d:发送EOF给当前终端,相当于exit命令
- ctrl+s:暂停当前终端
- ctrl+q:取消暂停的终端
bg
查看后台任务及任务号
fg
将后台任务放到前台执行
|
|
shell编程
Shell 有两种执行命令的方式交互式和批处理
第一行 #!/bin/bash
表示使用的shell程序
Shell变量
CSDN weixin_39686634 CSDN Dust_Evc
- set命令显示当前shell的变量,包括当前用户的变量
- env命令显示当前用户的变量
- export命令显示当前导出成用户变量的shell变量
定义变量,中间不能有空格
|
|
使用变量:${variable}
,当variable不和其他字符串一起使用时可以去掉花括号,反例是:${variable}xxx
动态变量使用命令输出作为变量:$()
或反引号。其实就是开启一个子进程执行命令,并将标准输出返回
只读变量:readonly variable
删除变量:unset variable
,不能删除只读变量
Shell数组
只支持一维数组
定义数组:array_name=(xxx xxx)
读取数组:${array_name[index]}
将数组中的元素全部输出:$arrs[*]
和$arrs[@]
,因为shell里面都是识别字符串(不识别数组类型),所以for in遍历时得通过这种方式来遍历数组
获取数组长度:#
运算符,该运算符也可以计算字符串中单词个数或字符串中字符个数,所以:
|
|
删除数组中的元素:unset arrs[n]
删除数组:unset arrs
拼接数组:arr3=(${arr1[@]} ${arr2[@]})
Shell运算符
原生bash不支持算术运算,只支持逻辑运算
算术运算符+-*/%
使用awk和expr命令(expr不支持浮点运算)使用动态变量进行计算:val=$(expr 1 + 2)
条件表达式要放在方括号之间,并且要有空格:[ $a == $b ]
不过一般使用关系运算符-eq
(equal),-ne
(not equal),-gt
(greater than),-lt
(less than),-ge
(greater equal)和-le
(less equal)
逻辑运算符:!
(not),-o
(or),-a
(and),使用两个方括号括起来的条件表达式[[ ]]
可以直接用&&
(and)和||
(or)
字符串运算符和文件运算符见linux264教程
Shell结构命令
if else-if else 语句
|
|
for 循环
|
|
while 语句(condition为true表示无限循环)
|
|
until 循环
|
|
case,星号 * 捕获该值,类似default
|
|
跳出循环,break和continue
循环k次使用seq命令返回值来进行统计
|
|
Shell函数
|
|
可以显式return,如果没有return则以最后一条命令的输出为返回值(取值为0-255)
函数参数:${n}
获取第n个参数
参数个数:$#
读取返回值:$?
alias别名默认不允许传入参数,可以通过alias定义一个函数来使用
|
|
Shell输入/输出重定向
<
:输入重定向>
:输出重定向,重写>>
:输出重定向,追加
0为输入Stdin,1为输出Stdout,2为Stderr
当需要区分错误输出重定向和输出重定向时可以:cmd 1>xxx 2>xxx
Shell文件包含
source filename
执行子shell命令
$()
或``
:新建子进程执行命令exec
:使用当前shell执行命令
shell快捷键
- shift+左右:按单词移动光标
ctrl系列命令,相对字符操作
- ctrl+a:到当前行首(ahead)
- ctrl+e:到当前行尾(end)
- ctrl+f:往右移动一个字符(forward)
- ctrl+b:往左移动一个字符(backward)
- ctrl+u:删除该行光标所在位置以及左边的所有字符
- ctrl+k:删除…..右边….
alt系列命令,相对单词操作
- alt+f:往右移动一个单词(forward)
- alt+b:往左移动一个单词(backward)
- alt+d:删除光标所在位置到右边的一个单词(delete)
gnome-terminal
该命令默认启动一个新的pts,图形化界面很方便,且新pts的pwd与当前终端的pwd一致
常用选项
- –maximize:打开后自动最大化
- –full-screen:打开后全屏
- –title=“new title”:设置标题
- –window 和 –tab:打开多个终端,多个tab
- –:要执行的命令,通常是
gnome-terminal -- bash -c 'ls; exec bash'
,如果要传递参数给gnome则将参数添加到后面,比如gnome-terminal -- bash -c 'ls;echo $0;exec bash' $a
,这里要注意是从0开始计数的
可以通过read命令来避免直接关闭
seq
|
|
常用选项
- -s :使用指定字符串分隔数字,默认是换行符
date
当前系统时间
|
|
以下是常用的以纳秒为单位的unix时间戳
|
|
&
后台运行命令
nohup
nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。通常和后台运行命令&
一起使用
如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。
三剑客
grep
查找文件里符合条件的行并显示前n行,该行以及后m行
|
|
awk
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具
常见用法,提取符合正则表达式的行的某些字段
action 通常是print $n
,$n
是内建变量表示选择第n个字段
pattern也可以是布尔表达式
awk '{[pattern] action}' filenames
# 输出第二列包含 "th",并打印第二列与第四列
$ awk '$2 ~ /th/ {print $2,$4}' log.txt
# 输出包含 "re" 的行
$ awk '/re/ ' log.txt
# 忽略大小写
$ awk 'BEGIN{IGNORECASE=1} /this/' log.txt
# 过滤第一列大于2的行
$ awk '$1==2 {print $1,$3}' log.txt #命令
不使用print默认输出整行
-f file,file 为 awk 脚本
- BEGIN{ 这里面放的是执行前的语句 }
- END {这里面放的是处理完所有的行后要执行的语句 }
- {这里面放的是处理每一行时要执行的语句}
sed
以行为单位编辑文本
sed会修改源文件内容,所以尽量使用管道来实现不修改原文内容
|
|
其中nl是给每行添加行号后输出,另外也可以使用cat
|
|
-n或–quiet或–silent 仅显示script处理后的结果
动作说明:
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
- d :删除,因为是删除啊,所以 d 后面通常不接任何东东
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
- s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!例如 1,20s/old/new/g 就是啦
sort
从第n个字段将文本文件内容行加以排序并输出
|
|
wc
统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
|
|
显示顺序为行数,单词数和字节数
计划任务
at系列,只执行一次
- at - 将任务排队,在指定的时间执行。
- atq - 查看待执行的任务队列。
- atrm - 从队列中删除待执行的任务:atrm +at的id号
at 5pm+3days
时间点(hh:mm(小时:分钟),now,5pm,month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)),today(今天),tomorrow(明天)
+ 数字
+ time_units(minutes(分钟)、hours(小时)、days(天)、weeks(星期))
-f 执行文件.sh
crontab
- -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
- -r : 删除目前的时程表
- -l : 列出目前的时程表
时间格式如下:
|
|
在 /etc/crontab 中添加环境变量,在可执行命令之前添加命令 . /etc/profile;/bin/sh
,使得环境变量生效,例如:
|
|
和crontab相关的文件在/etc目录下,通过修改/etc目录下的crontab文件也能够定制计划任务
@reboot
标记的条目表示开机运行
|
|
crontab 可以执行多条命令,所以我们可以通过cd来决定去哪里执行命令
|
|
管道和重定向的坑
管道符连接的多个命令是并行执行的
对同一个文件进行读写
|
|
update-alternatives
update-alternatives 命令用于处理 Linux 系统中软件版本的切换,使其多版本共存。通过软链接的方式对版本进行管理。
该命令很简单但是作用很大,最典型的用法就是linux中的python版本管理,当然也可以用anaconda,但是update-alternative还可以用于其他软件的版本管理
- display 参数显示关于 Python 替换组的信息:
update-alternatives --display python
- config 参数选择候选项:
update-alternatives --config python
- install 参数用于添加一个命令的link值:
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
- remove 参数用于删除一个命令的link值,其附带的slave也将一起删除:
update-alternatives –remove python /usr/bin/python2.7
信号相关命令
- kill -l(前31个信号为常规信号,其余为实时信号)查看系统定义的信号列表
- man 7 signal 查看信号的详细信息
- ulimit -a 列出所有的参数选项
kill 可以使用程序名,:kill %python
可以使用ps命令、管道、grep和awk发送关闭信号:kill $(ps -a | grep chrome | awk '{print $1}')
CSDN 鸣凯维 linux下kill指令默认信号,Linux基础命令之kill命令
默认信号是SIGTERM
使用pkill可以使用进程名发送信号,基于正则匹配的方式,比如kill fire
会将名字匹配fire的进程关闭,类似上面的组合命令但是更简单,推荐使用pkill
常用信号
- SIGINT:程序终止信号。当用户按下CRTL+C时通知前台进程组终止进程。
- SIGKILL:用来立即结束程序的运行。不能被捕捉、阻塞或忽略,只能执行默认动作。
vim
复制粘贴
- v选定文字,V选定行,ctrl+v选定块,选择的时候可以用13里面的光标跳转快捷键
- shift+方向键按单词移动光标
- d剪切,dd剪切1行,dn加方向键向上向下删除n+1行,dw删除光标所在位置往右一个单词如果是空白则删除所有空白,dG删除到文件末尾,d0删除到文件起始
- y复制,和d一样
- p粘贴,默认粘贴当前行
- u撤销
- ctrl+r 重做上一个操作,用于取消撤销
:[range]s/from/to/[flags]
:替换,flag:i大小写不敏感,I大小写敏感,g全局如果没有每行只能替换一次,c每次替换询问,range常用%:/word
:搜索,n搜索下一个,N搜索上一个,也可以是?word
:noh
:取消高亮:set nu
:显示行号:set nonu
:不显示行号- gg光标回到起点,G光标回到末尾,$行末,0行首
- ctrl+n提词器,重复按选下一个,ctrl+N网上回一个
- ctrl+e屏幕向下滚动一行,ctrl+y屏幕向上滚动一行
- 行号+enter:转到行号所在行
- 选定文字shift+>右缩进,shift+<左缩进
- ctrl+v选定块按I,在首行插入字符,按esc插入的字符会在选定的行都插入,可用于多行注释
- :set fileencoding 查看当前文件编码方式,对其赋值可以修改当前文件编码方式
: set fileencoding = xxx
- sp filename:垂直分割打开新窗口,filename为空则打开当前窗口
- vsp filename:水平分割
- close:关闭窗口,其实也可以用q
- ctrl+w :按 上下左右,切换窗口;按+-><增加减少高度和宽度,如果先输入数字会增加相应的行数;_垂直最大化,|水平最大化;=设置为相同大小
- %(shift+%) :找到对应的另一个括号
vimdiff
|
|
source
执行一遍shell脚本
通常用于覆盖配置:source ~/.bashrc
passwd
配置密码,配合sudo配置root密码
iperf测试网络状态
服务端
iperf -s
客户端
iperf -c 10.0.0.1
dpkg
安装debian系列操作系统的.deb软件,ubuntu是基于debian的
|
|
systemd
systemctl为系统的启动和管理提供一套完整的解决方案
系统管理
systemctl是 Systemd 的主命令,用于管理系统
- sudo systemctl reboot:重启系统
- sudo systemctl poweroff:关闭系统,切断电源
- sudo systemctl halt:CPU停止工作
- sudo systemctl suspend:暂停系统
- sudo systemctl rescue:启动进入救援状态(单用户状态)
systemd-analyze命令用于查看启动耗时
- systemd-analyze:查看启动耗时
- systemd-analyze blame:查看每个服务的启动耗时
- systemd-analyze critical-chain:显示瀑布状的启动过程流
- systemd-analyze critical-chain atd.service:显示指定服务的启动流
hostnamectl命令用于查看当前主机的信息
- hostnamectl:显示当前主机的信息
- sudo hostnamectl set-hostname xxx:设置主机名
loginctl命令用于查看当前登录的用户
- loginctl list-sessions:列出当前session
- loginctl list-users:列出当前登录用户
- loginctl show-user xxx:列出显示指定用户的信息
Unit
Systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位)
systemctl list-units命令可以查看当前系统的所有 Unit:systemctl list-units --all
systemctl status命令用于查看系统状态和单个 Unit 的状态
- systemctl status:显示系统状态
- systemctl status bluetooth.service:显示单个 Unit 的状态
- systemctl -H root@rhel7.example.com status httpd.service:显示远程主机的某个 Unit 的状态
启动和停止 Unit(主要是 service)
- sudo systemctl start apache.service:立即启动一个服务
- sudo systemctl stop apache.service:立即停止一个服务
- sudo systemctl restart apache.service:重启一个服务
- sudo systemctl kill apache.service:杀死一个服务的所有子进程
- sudo systemctl daemon-reload:重载所有修改过的配置文件
- sudo systemctl reload apache.service:重新加载一个服务的配置文件
- systemctl show httpd.service:显示某个 Unit 的所有底层参数
Unit 之间存在依赖关系:A 依赖于 B,就意味着 Systemd 在启动 A 的时候,同时会去启动 B
- systemctl list-dependencies –all nginx.service:列出一个 Unit 的所有依赖
Unit 的配置文件
每一个 Unit 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit
Systemd 默认从目录/etc/systemd/system/读取配置文件,但是里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录,systemctl enable和systemctl disable命令用于在上面两个目录之间,建立和撤销符号链接关系(只有配置了WantedBy或RequiredBy的install区块的unit)。
你自己定义的unit配置文件可以手动添加到/etc/systemd/system/目录,来让systemd读取
配置文件的后缀名,就是该 Unit 的种类,比如sshd.socket,如果省略,Systemd 默认后缀名为.service
systemctl list-unit-files命令用于列出所有配置文件,–type参数列出指定类型
配置文件的状态,一共有四种:enabled已建立启动链接;disabled没建立启动链接;static该配置文件没有[Install]部分(无法执行),只能作为其他配置文件的依赖;masked该配置文件被禁止建立启动链接
配置文件的格式:
|
|
- [Unit]区块通常是配置文件的第一个区块,用来定义 Unit 的元数据,以及配置与其他 Unit 的关系
- [Service]区块用来 Service 的配置,只有 Service 类型的 Unit 才有这个区块
- [Install]通常是配置文件的最后一个区块,用来定义如何启动,以及是否开机启动(systemd开机默认会启动/etc/systemd/system里面的unit,配置了WantedBy或RequiredBy的unit在enable的时候会和前面说的一样自动建立符号链接,这样就能开机启动了)
Target
- systemctl list-unit-files –type=target:查看当前系统的所有 Target
- systemctl list-dependencies multi-user.target:查看一个 Target 包含的所有 Unit
- systemctl get-default:查看启动时的默认 Target
- sudo systemctl set-default multi-user.target:设置启动时的默认 Target
- sudo systemctl isolate multi-user.target:关闭前一个 Target 里面所有不属于后一个 Target 的进程,启动后一个Target
Target 与 传统 init RunLevel 的对应关系如下
|
|
- 默认的 RunLevel(在/etc/inittab文件设置)现在被默认的 Target 取代,位置是/etc/systemd/system/default.target
- 启动脚本的位置,以前是/etc/init.d目录,符号链接到不同的 RunLevel 目录 (比如/etc/rc3.d、/etc/rc5.d等),现在则存放在/lib/systemd/system和/etc/systemd/system目录
- 配置文件的位置,以前init进程的配置文件是/etc/inittab,各种服务的配置文件存放在/etc/sysconfig目录。现在的配置文件主要存放在/lib/systemd目录,在/etc/systemd目录里面的修改可以覆盖原始设置
日志管理
可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)
- sudo journalctl:查看所有日志(默认情况下 ,只保存本次启动的日志)
- sudo journalctl -k:查看内核日志(不显示应用日志)
- sudo journalctl -b -0:查看系统本次启动的日志
- sudo journalctl -b -1:查看上一次启动的日志(需更改设置)
- sudo journalctl -f:实时滚动显示最新日志
- sudo journalctl _PID=1:查看指定进程的日志
- journalctl -u nginx.service -u php-fpm.service –since today:合并显示多个 Unit 的日志
alias
设置命令的别名,对于很长且常用的命令可以在.bashrc文件使用这个命令来定义别名
|
|
alias默认不支持传参,可以使用alias定义一个函数来实现传参
|
|
export
在当前bash导出环境变量,当放到.bashrc文件时则每次启动bash都有该环境变量
|
|
free
查看内存使用情况
|
|
fdisk
此命令用于磁盘管理
查看所有磁盘使用情况
|
|
df
此命令用于管理文件系统
查看文件系统的挂载点以及挂载点存储使用情况
|
|
nautilus
打开文件资源管理器,常用命令:nautilus `pwd`
netstat和ss
CSDN 奋斗的啊强 Ubuntu常用命令[3]——netstat,systemctl,echo,chown
CSDN 云中漫步87 替代netstat的命令之一【ss】 使用实例
netstat和ss查看协议栈相关信息
尽量使用ss
|
|
- -a:显示所有套接字
- -n:不解析服务名
- -l:只显示监听套接字
- -t:仅显示 TCP 套接字
- -u:仅显示 UDP 套接字
- -p:显示套接字使用的进程
最常用选项
|
|
输出
- Netid:套接字的类型
- state:套接字的状态
- Recv-Q:连接到此套接字的用户程序未复制的字节数
- Send-Q:远程主机未确认的字节数
ps
|
|
通常和三剑客一起使用
查看父进程
|
|
ps中5种进程状态
- R运行状态(正在运行或就绪)
- S中断状态(休眠中, 等待某个条件的形成或接受到信号)
- U不可中断状态(收到信号不唤醒和不可运行, 必须等中断发生)
- Z僵死状态(进程已停止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- T停止状态(收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行)
pstree
pstree查看进程树
|
|
find
查找文件并进行相应的操作,复制删除等 ƒ
|
|
选项
- -name:按照文件名匹配文件
- -type:按照文件类型匹配文件,如
-type f
表示查找普通文件,-type d
表示查找目录 - -size:按照文件大小匹配文件,如
-size +1M
- -mtime:按照修改时间匹配文件
- -exec:对查找到的文件执行指定的命令
top
top命令经常用来监控linux的系统状况,能够通过读取/proc/stat文件实时显示系统中各个进程的资源占用情况
选项
- -d:刷新间隔,单位为秒
- -p:指定特定的pid进程号进行观察
- -bn:按批次执行top
显式页面操作
- ?:所有命令
- P:以CPU的使用资源排序进程
- M:以内存
- m:显示内存详情
- N:以pid
- T:以使用时间
- k:给pid发送信号
- r:给pid一个nice值
- q:退出
- 1:显示和关闭CPU每个核心的状态
- o:过滤,比如
PID>100
- Ctrl+o 显示当前生效的过滤器
- = 重置当前窗口的过滤器
+
重置全部窗口的过滤器
列信息
- pr,ni:优先级
- virt:虚拟内存
- res:物理内存
- shr:共享内存
sar
sar命令用于监控系统资源如CPU,内存,磁盘,IO和网络
命令格式:sar -类型 类型参数 采集间隔 采集次数
- -o:保存结果
- -f:读取结果
CPU
- sar -u 1 3 :实时采集系统CPU负载
- sar -p:查看当天的数据
- sar -q 1 3 :实时采集进程CPU负载
内存
- sar -r 1 3:系统内存负载
- sar -W 1 3:进程内存负载
I/O和传送速率监控与磁盘使用情况
- sar -b 1 3:设备IO信息
- sar -d 1 3 -p:设备磁盘负载也有IO信息
网络
- sar -n DEV 1 3
ab
ab 可以进行压力测试
|
|
lsof
查看打开的文件描述符
|
|
iptables
用于控制linux内核的netfilter防火墙
基础概念
这五个处理阶段都有自己的规则链,所以处理阶段也可以被称作链,规则其实就是匹配表
可以自定义链,自定义链只能被默认链引用来使用
默认定义的表有4种
- filter表:负责过滤功能,防火墙;内核模块:iptables_filter
- nat表:network address translation,网络地址转换功能;内核模块:iptable_nat
- mangle表:拆解报文,做出修改,并重新封装 的功能;iptable_mangle
- raw表:关闭nat表上启用的连接追踪机制;iptable_raw
链对应的规则表类型
- PREROUTING 的规则可以存在于:raw表,mangle表,nat表
- INPUT 的规则可以存在于:mangle表,filter表,(centos7中还有nat表,centos6中没有)
- FORWARD 的规则可以存在于:mangle表,filter表
- OUTPUT 的规则可以存在于:raw表mangle表,nat表,filter表
- POSTROUTING 的规则可以存在于:mangle表,nat表
表的条目中
- 匹配条件分为基本匹配条件与扩展匹配条件:基本匹配条件有源地址Source IP,目标地址 Destination IP,扩展匹配条件有源端口Source Port, 目标端口Destination Port等
- 处理动作:ACCEPT:允许数据包通过;DROP:直接丢弃数据包,不给任何回应信息;REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息;SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题等
具体命令
列举表条目
- iptables -t 表名
- iptables -L 链名
- iptables -t 表名 -L 链名
特殊选项
- -v:表示verbose,表示详细的,冗长的,当使用-v选项时,会显示出”计数器”的信息
- -n:表示不解析IP地址
- -x:表示显示计数器的精确值
规则管理
- -F:清空链的规则
- -I:添加规则,需要指明匹配条件和动作,比如
iptables -t filter -I INPUT -s 192.168.1.146 -j DROP
,-s为source之意,表示源地址,-j选项,指明当”匹配条件”被满足时,所对应的动作,添加序号可以在指定规则后面添加iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作
- -D:删除规则,根据表种规则的序号删除对应规则
- -R:修改规则,根据序号
- -P:修改默认规则
保存规则
- service iptables save:使规则永久生效,保存到
/etc/sysconfig/iptables
,也可以使用iptables-save > /etc/sysconfig/iptables
- iptables-restore:从文件重载规则,
iptables-restore < /etc/sysconfig/iptables
file
查看文件类型
|
|
perf
查看系统性能,硬件事件或软件事件
|
|
history
查看历史命令,和grep一起用
|
|
nsenter
进入子namespace,但是可以运行本地的命令
|
|
dd和hexdump
将磁盘的某块dump下来查看内容
mkdir
|
|
chmod
在Linux中,可以使用chmod命令为文件或目录添加文件操作权限标记,这些标记通常由字母组成,表示不同的用户或用户组的权限。以下是一些常见的文件操作权限标记及其含义:
u
:代表文件的所有者(用户)。g
:代表文件的所属组。o
:代表其他用户。a
:代表所有用户,即所有者、所属组和其他用户。
这些权限标记可以与操作符结合使用,操作符包括:
+
:添加权限。-
:移除权限。=
:设置权限(用指定的权限完全替代原有权限)。
然后,您可以为每个权限标记分配不同的权限:
r
:读权限。w
:写权限。x
:执行权限。
以下是一些示例,说明如何使用这些权限标记为文件添加权限:
-
为文件
example.txt
的所有者添加读权限:1
chmod u+r example.txt
-
为文件
example.txt
的所属组添加写权限:1
chmod g+w example.txt
-
为文件
example.txt
的其他用户添加执行权限:1
chmod o+x example.txt
-
为文件
example.txt
的所有用户同时添加读、写、执行权限:1
chmod a+rwx example.txt
请根据需要选择适当的权限标记和操作符,以及要分配的权限,以确保文件的访问权限满足您的需求。