Z次元
文章 笔记 日志
专题
专栏分类 文章归档
友链
友情链接 朋友圈
交流
留言 关于我
头像
系列文章
-
-
-
-
Shell(Linux)常用命令
系列文章
代码手册
最后更新:2024/12/15|创建时间:2022/2/8

这篇文章主要介绍了Linux系统常用的命令和操作,涵盖文件管理、文件压缩、网络工具、进程管理、权限管理等多个方面。文章条理清晰,内容全面,对于初学者和有需求的用户都很有参考价值。

前言

所谓Shell(壳),一般是指由操作系统提供的,用于计算机用户向操作系统输入相关指令并得到结果的程序。Shell可以字符形式的,也可以是图形界面形式的。
Shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序。
在windows系统中见到的桌面即explorer.exe(资源管理器)是图形shell,而cmd就是命令行shell(Command shell)。
基础命令行和Shell都可以操作Linux系统,区别在于基础命令行(ls、cd等),是一种单一的操作;Shell可以比基础命令行更复杂,是一种组合型的操作。相比基础命令拥有了面向过程的概念。
图片

常用命令

命令开头的符号# 代表root用户;$ 代表普通用户。
不同参数之间可以直接简写;如-r -t可以直接简写成-rt

文件类

ls(目录)

列出目录内容。
参数:
-a 显示所有文件,包括隐藏的
-l 长格式列出信息
-i 显示文件inode号
-t 按修改时间排序
-r 按修改时间倒序排序
示例:

按修改时间排序:
# ls -t

按修改时间倒序排序:
# ls -rt

长格式列出:
# ls -l

查看文件inode:
# ls -i file

cat(打印)

连接文件和标准输出打印
参数:
-A 查看所有内容
-b 显示非空行行号
-n 显示所有行行号
-T 显示tab,用^I表示
-E 显示以$结尾
示例:

连接两个文件:
# cat a z
# cat << EOF
> 999
> ahzoo
> EOF
999
ahzoo

将eof标准输入作为cat标准输出再写到z.txt:
# cat > z.txt << eof
> 999
> ahzoo
> eof

touch(修改)

修改文件或者目录的时间属性。若文件不存在,会自动创建一个新的文件。

参数:

-a 修改文件的读取时间记录。

-m 改修改文件的修改时间记录。

-c 假如文件不存在,不会创建新的文件。与 --no-create 的效果一样

示例:

# touch ahzoo.txt                #修改文件时间属性为当前系统时间,若文件不存在则新建

tail(查看)

查看文件的内容,默认显示最后 10 行

参数:

-f 循环读取,常用于查阅正在改变的日志文件

-q 不显示处理信息

-v 显示详细的处理信息

-c<数目> 显示的字节数

-n<行数> 显示文件的尾部 n 行内容

示例:

# tail ahzoo.log         # 默认显示最后 10 行

# tail -f ahzoo.log		# 持续追踪跟踪ahzoo日志文件的增长情况

# tail -n +10 ahzoo.log		# 显示第 10 行至文件末尾的内容

# tail -c 9 ahzoo.log		# 显示文件最后9行的内容

wc(统计)

统计文件行数、字节、字符数
参数:
-c 打印文件字节数
-m 打印文件字符数
-l 打印多少行
示例:

# wc -l z.txt 						#统计文件多少行

cp(复制)

参数:
-a 归档
-b 目标文件存在创建备份,备份文件是文件名跟~
-f 强制复制文件或目录
-r 递归复制目录
-p 保留原有文件或目录属性
-i 覆盖文件之前先询问用户
-u 当源文件比目的文件修改时间新时才复制
-v 显示复制信息
示例:

复制目录:
# cp -rf test /opt

mkdir(创建)

参数:
-p 递归创建目录
-v 显示创建过程
示例:

创建多级目录:
# mkdir /opt/test/ahzoo
创建多个目录:
# mkdir {install,tmp}
创建连续目录:
# mkdir {a..z}

mv(移动)

移动文件或重命名
参数:
-b 目标文件存在创建备份,备份文件是文件名跟~
-u 当源文件比目的文件修改时间新时才移动
-v 显示移动信息
示例:

移动文件:
# mv a.txt /opt
重命名文件:
# mv a.txt b.txt

find(查找)

搜索文件目录层次结构
格式:find path -参数 动作
参数:
-name 文件名,支持(‘*’, ‘?’, and ‘[]’)
-type 文件类型,d目录,f常规文件等
-perm 符合权限的文件,比如755
-atime -/+n 在n天以内/过去n天被访问过
-ctime -/+n 在n天以内/过去n天被修改过
-amin -/+n 在n天以内/过去n分钟被访问过
-cmin -/+n 在n天以内/过去n分钟被修改过
-size -/+n 文件大小 小于/大于 单位(b、k、M、G)
-maxdepth levels 目录层次显示的最大深度
-regex pattern 文件名匹配正则表达式模式
-inum 通过inode编号查找文件

动作:
-detele 删除文件
-exec command {} \; 执行命令,花括号代表当前文件
-ls 列出当前文件,ls -dils格式
-print 完整的文件名并添加一个回车换行符
-print0 打印完整的文件名并不添加一个回车换行符
-printf format 打印格式

示例:

查找文件名:
# find / -name "*http*"
查找文件名并且文件类型:
# find /tmp -name core -type f -print
查找文件名并且文件类型删除:
# find /tmp -depth -name core -type f -delete
查找当前目录常规文件并查看文件类型:
# find . -type f -exec file '{}' \;
查找文件权限是664:
# find . -perm 664
查找大于1024k的文件:
# find . -size -1024k
查找3天内修改的文件:
# find /bin -ctime -3
排除多个类型的文件:
# find . ! -name "*.sql" ! -name "*.txt"
或条件查找多个类型的文件:
# find . -name '*.sh' -o -name '*.bak'
# find . -regex ".*\.sh|.*\.bak"
# find . -regex ".*\.\(sh\|bak\)"
并且条件查找文件:
# find . -name "*.sql" -a  -size +1024k 
只显示第一级目录:
# find /etc -type d -maxdepth 1
通过inode编号删除文件:
# rm `find . -inum 671915`
# find . -inum 8651577 -exec rm -i {} \;

rm(删除)

参数:
-f:强制删除,忽略不存在的文件,不提示确认
-i:在删除前需要确认
-I:删除超过三个文件或者递归删除前要求确认
-r:递归删除目录及其内容
示例:

删除文件(需要确认)
# rm a.txt
删除目录(目录不需要确认,目录下文件需要确认)
# rm -r dir1
强制删除目录(不需要确认,慎用)
# rm -rf dir1
删除当前目录下的所有文件及目录
# rm  -r  * 

解压缩类

tar(归档)

功能:归档目录或文件
参数:
-c 创建新归档
-d 比较归档和文件系统的差异
-r 追加文件到归档
-t 存档的内容列表
-x 提取归档所有文件
-C 改变解压目录
-f 使用归档文件或设备归档
-j bzip2压缩
-z gzip压缩
-v 输出处理过程

示例:

创建归档文件来自foo和bar:
# tar -cf archive.tar foo bar
提取归档的所有文件:
# tar -xf archive.tar
创建归档并gzip压缩:
# tar -zcvf archive.tar.gz log
提取归档文件并gzip解压:
# tar -zxvf log.tar.gz 
创建归档并bzip2压缩:
# tar -jcvf log.tar.bz log
列出所有在archive.tar的文件:
# tar -tvf archive.tar
提取归档并解压到指定目录:
# tar -zxvf log.tar.gz -C /opt

zip(压缩)

压缩后的文件拓展名为 .zip。
常用参数:
-d 从压缩文件内删除指定的文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-S 包含系统和隐藏文件。
-T 检查备份文件内的每个文件是否正确无误。
-v 显示指令执行过程或显示版本信息。

-b<工作目录> 指定暂时存放文件的目录。
-n<字尾字符串> 不压缩具有特定字尾字符串的文件。
-t<日期时间> 把压缩文件的日期设成指定的日期。
-<压缩效率> 压缩效率是一个介于1-9的数值,呈正比关系,默认为6。

常用实例:
将/home/html/这个目录下所有文件和文件夹打包为当前目录下的 html.zip:

# zip -q -r html.zip /home/html

如果在我们在 /home/html 目录下,可以执行以下命令:

# zip -q -r html.zip *

从压缩文件 cp.zip 中删除文件 a.c

# zip -dv cp.zip a.c

uzip(解压缩)

unzip为.zip压缩文件的解压缩程序。
常用参数:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 只更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-L 将压缩文件中的全部文件名改为小写。
-n 解压缩时不要覆盖原有的文件。
-o 解压缩时覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。

实例:
查看压缩文件中包含的文件:

# unzip -l abc.zip 
Archive: abc.zip
 Length   Date  Time  Name
--------  ----  ----  ----
  94618 05-21-10 20:44  a11.jpg
  202001 05-21-10 20:44  a22.jpg
    16 05-22-10 15:01  11.txt
  46468 05-23-10 10:30  w456.JPG
  140085 03-14-10 21:49  my.asp
--------          -------
  483188          5 files

gzip(压缩/解压)

压缩后的拓展名为.gz,同样支持.gz文件的解压。
常用参数:
-d 解压缩文件。
-f 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-l 列出压缩文件的相关信息。
-n 压缩文件时,不保存原来的文件名称及时间戳记。
-N 压缩文件时,保存原来的文件名称及时间戳记。
-q 不显示警告信息。
-r 递归处理,将指定目录下的所有文件及子目录一并处理。
-t 测试压缩文件是否正确无误。
-<压缩效率> 压缩效率是一个介于1-9的数值呈正比关系,默认为6。

实例:
压缩当前目录下所有文件

# gzip *

接上例, 列出详细的信息

# gzip -dv *
a.c.gz:     0.0% -- replaced with a.c
b.h.gz:     0.0% -- replaced with b.h
d.cpp.gz:     0.0% -- replaced with d.cpp

接上例,显示压缩文件的信息

# gzip -l *
     compressed    uncompressed ratio uncompressed_name
         24          0  0.0% a.c
         24          0  0.0% b.h
         26          0  0.0% d.cpp

guzip(解压缩)

用于解开被 gzip 压缩过的文件(扩展名为.gz)。由于 gunzip 就是 gzip 的硬连接,所以下面的命令都可以直接使用 gzip 完成
常用参数:
-f 强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-k 保留原始压缩文件。
-l列出压缩文件的相关信息。
-n 解压缩文件时,不保存原来的文件名称及时间戳记。
-N 解压缩文件时,保存原来的文件名称及时间戳记。
-q 不显示警告信息。
-r 递归处理,将指定目录下的所有文件及子目录一并处理。
-t 测试压缩文件是否正确无误。
-v 显示指令执行过程。
实例:

# gunzip ab.gz 

系统类

date(日期)

打印或设置系统日期和时间

常用参数:
-d string 显示时间所描述的字符串
-f datefile 读取文件的每一行
-I 输出ISO 8601格式的日期和时间
-r 显示文件的最后修改时间
-R 输出RFC 2822格式的日期和时间
-s string 设置时间所描述的字符串
-u 打印或设置UTC时间

常用控制输出格式:
%D 日期,等价于%m/%d/%y
%F 完整的日期;等价于 %Y-%m-%d
%r 本地的 12 小时制时间(例如 11:11:04 PM)
%R 24 小时制 的小时与分钟; 等价于 %H:%M
%T 时间; 等价于 %H:%M:%S

示例:

设置系统日期和时间:
# date -s "2016-12-15 00:00:00"
查看当前系统时间戳:
# date +%s
查看当前系统时间:
# date +'%F %T'
把日期和时间转换成时间戳:
# date -d "2016-12-15 18:00:00" +%s
把时间戳转成时间:
# date -d '@1481842800' '+%F %T'

uname(系统信息)

打印系统信息
参数:
-a 打印所有信息
-s 打印内核名称
-n 打印主机名
-r 打印内核发行版
-v 打印内核版本
-m 打印机器硬件名
-p 打印处理器类型
-i 打印硬件平台
-o 打印操作系统

示例:

打印所有系统信息:
# uname -a
打印主机名:
# uname -n
打印内核版本:
# uname -r
打印操作系统:
# uname -o

网络类

wget(下载)

非交互式网络下载,类似于HTTP客户端
参数:
-b 后台运行

日志记录和输入文件:
-o <日志文件> 记录日志写到文件
-a <日志文件> 记录日志追加到文件
-d 打印debug信息,会包含头信息
-q 安静模式,不输出
-i <下载文件> 从文件中读取所有的URL地址进行下载(批量下载)
下载文件的url格式:

http://ahzoo.cn/a.txt
http://ahzoo.cn/b.txt
http://ahzoo.cn/c.txt

下载选项:
-t, --tries=NUMBER 设置链接重试次数
-O 将下载内容写入到指定文件(通常是一个压缩文件)中
-nc 跳过下载现有的文件
-c 断点续传
--progress=TYPE 设置进度条(dot或bar)
--spider 不下载任何内容(用于判断url是否可用)
-T, --timeout=SECONDS 设置相应超时时间(还有--dns-timeout、--connect-timeout和--read-timeout)
-w, --wait=SECONDS 两次重试间隔等待时间
--limit-rate=RATE 限制下载速度
--user=USER 设置ftp和http用户名
--password=PASS 设置ftp和http密码

目录:
-P <文件目录> 保存文件目录

HTTP选项:
--http-user=USER 设置http用户名
--http-password=PASS 设置http密码
--referer=URL 设置Referer
-U,--user-agent=AGENT 设置客户端信息
--no-http-keep-alive 禁用HTTP keep-alive(长连接)
--post-data=STRING 使用POST方法,发送数据

FTP选项:
--ftp-user=USER 设置ftp用户名
--ftp-password=PASS 设置ftp密码
--no-passive-ftp 禁用被动传输模式

示例1:

下载单个文件到当前目录:
# wget http://nginx.org/download/nginx-1.11.7.tar.gz
放到后台下载:
# wget -b http://nginx.org/download/nginx-1.11.7.tar.gz
对于网络不稳定的用户使用-c和--tries参数,保证下载完成,并下载到指定目录:
# wget -t 3 -c http://nginx.org/download/nginx-1.11.7.tar.gz -P down
不下载任何内容,判断URL是否可以访问:
# wget --spider http://nginx.org/download/nginx-1.11.7.tar.gz
下载内容写到文件:
# wget http://www.baidu.com/index.html -O index.html
从文件中读取批量URL下载:
# wget -i url.list

示例2:

下载ftp文件:
# wget --ftp-user=admin --ftp-password=admin ftp://192.168.1.10/ISO/CentOS-6.5-i386-minimal.iso
伪装客户端,指定user-agent和referer下载:
# wget -U "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" --referer "http://nginx.org/en/download.html" http://nginx.org/download/nginx-1.11.7.tar.gz
查看HTTP头信息:
# wget -S http://nginx.org/download/nginx-1.11.7.tar.gz
# wget --debug http://nginx.org/download/nginx-1.11.7.tar.gz

进程类

nohup(运行)

运行命令,忽略所有挂起信号
示例:

后台运行程序,终端关闭不影响:
# nohup bash test.sh &>test.log &

netstat(网络状态)

功能:打印网络连接、路由表、接口统计信息、伪装连接和多播成员
参数:
-r 显示路由表
-i 显示接口表
-n 不解析名字
-p 显示程序名 PID/Program
-l 显示监听的socket
-a 显示所有socket
-o 显示计时器
-Z 显示上下文
-t 只显示tcp连接
-u 只显示udp连接
-s 显示每个协议统计信息
示例:

显示所有监听:
# netstat -anltu
显示所有TCP连接:
# netstat -antp
显示所有UDP连接:
# netstat -anup
显示路由表:
# netstat -r

查看当前所有tcp端口
# netstat -ntlp   
查看8080端口使用情况
# netstat -ntulp | grep 8080  

ss(网络状态)

比netstat更强大的socket查看工具
格式:ss [options] [ FILTER ]
常用参数:
-n 不解析名字
-a 显示所有socket
-l 显示所有监听的socket
-o 显示计时器
-e 显示socket详细信息
-m 显示socket内存使用
-p 显示进程使用的socket
-i 显示内部TCP信息
-s 显示socket使用汇总
-t 只显示TCP socket
-u 只显示UDP socket

过滤:
-o state 显示TCP连接状态信息

示例:

显示所有TCP连接:
# ss -t -a
显示所有UDP连接:
# ss -u –a
显示socket使用汇总:
# ss -s
显示所有建立的连接:
# ss -o state established
显示所有的TIME-WAIT状态:
# ss -o state TIME-WAIT
搜索所有本地进程连接到X Server:
# ss -x src /tmp/.X11-unix/*

lsof(列出文件/进程)

列出打开的文件(进程)

列出打开文件(lists openfiles)也可以表示列出进程。因为在Unix/Linux中,一切(包括网络套接口)都是文件

参数:
-i 监听的网络地址,如果没有指定,默认列出所有。
-U 列出Unix域socket文件
-p 指定PID
-u 指定用户名或UID所有打开的文件
+D 递归搜索

示例:

列出所有打开的文件:
# lsof
查看哪个进程占用文件:
# lsof /etc/passwd
列出所有打开的监听地址和unix域socket文件:
# lsof -i -U
列出80端口监听的进程:
# lsof -i:80
列出端口1-1024之间的所有进程:
# lsof -i:1-1024
列出所有TCP网络连接:
# lsof -i tcp
列出所有UDP网络连接:
# lsof -i udp
根据文件描述符列出打开的文件:
# lsof -d 1
列出某个目录被打开的文件:
# lsof +D /var/log
列出进程ID打开的文件:
# lsof -p 5373
打开所有登录用户名abc或user id 1234,或PID 123或PID 456:
# lsof -p 123,456 -u 123,abc
列出COMMAND列中包含字符串sshd:
# lsof -c sshd

ps(进程快照)

报告当前进程的快照
常用参数:
-a 显示所有进程
-u 选择有效的用户ID或名称
-x 显示无控制终端的进程
-e 显示所有进程
-f 全格式
-r 只显示运行的进程
-T 这个终端的所有进程
-p 指定进程ID
-m 线程
-L 格式化代码列表

示例:

查看指定进程信息
# ps 8080
打印系统上所有进程标准语法:
# ps -ef
打印系统上所有进程BSD语法:
# ps aux
打印进程树:
# ps axjf 或 ps -ejH
查看进程启动的线程:
# ps -Lfp PID
查看当前用户的进程数:
# ps uxm 或 ps -U root -u root u 

查找java相关的进程(grep是查找命令)
# ps -ef | grep java 
查找8080相关的进程
# ps -ef | grep 8080 

top(活动进程)

动态显示活动的进程和系统资源利用率
参数:
-d 信息刷新时间间隔
-p 只监控指定的进程PID
-i 只显示正在使用CPU的进程
-H 显示线程
-u 只查看指定用户名的进程
-b 将输出编排成易处理格式,适合输出到文件处理
-n 指定最大循环刷新数

交互命令:
f 添加或删除显示的指标
c 显示完整命令
P 按CPU使用百分比排序
M 按驻留内存大小排序
T 按进程使用CPU时间排序
1 显示每个CPU核心使用率
k 终止一个进程

示例:

刷新一次并输出到文件:
# top -b -n 1 > top.log
只显示指定进程的线程:
# top -Hp 123

kill(终止)

参数:
1 (HUP):重新加载进程。
9 (KILL):杀死一个进程。
15 (TERM):正常停止一个进程。

强制杀死进程

强制杀死8080端口进程
# kill -9 8080

同上
# kill -KILL 8080

权限类

chown(文件所有者)

chown(change owner)用于设置文件所有者和文件关联组的命令。
需要超级用户(root)的权限才能执行此命令。
参数 :
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
实例:
把 /var/run/httpd.pid 的所有者设置 root:

# chown root /var/run/httpd.pid

将文件 file1.txt 的拥有者设为 ahzoo,群体的使用者 ahzoogroup :

# chown ahzoo:ahzoogroup file1.txt

将当前前目录下的所有文件与子目录的拥有者皆设为 ahzoo,群体的使用者 ahzoogroup:

# chown -R ahzoo:ahzoogroup *

把 /home/ahzoo 的关联组设置为 512 (关联组ID),不改变所有者:

# chown :512 /home/ahzoo

chmod(文件权限)

chmod(change mode)用于控制用户对文件的权限。
同样需要超级用户(root)的权限才能执行此命令。

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
图片

可以使用绝对模式(八进制数字模式)或者符号模式指定文件的权限。
图片

语法(符号模式):

chmod [-参数] [用户类型][操作符][权限] file [file2] [filen]

语法(八进制语法):

chmod [-参数] [八进制数字] file [file2] [filen]

参数:
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

符号模式

使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。 命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明,如 who 的符号模式表所示:

who 用户类型 说明
u user 文件所有者
g group 文件所有者所在组
o others 所有其他用户
a all 所用用户, 相当于_ugo_

operator 的符号模式表:

Operator 说明
+ 为指定的用户类型增加权限
- 去除指定用户类型的权限
= 设置指定用户权限的设置,即将用户类型的所有权限重新设置

permission 的符号模式表:

模式 名字 说明
r 读 设置为可读权限
w 写 设置为可写权限
x 执行权限 设置为可执行权限
X 特殊执行权限 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
s setuid/gid 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t 粘贴位 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

实例:

将文件 ahzoo.txt 设为所有人皆可读取 :

# chmod ugo+r ahzoo.txt

将文件 ahzoo.txt 设为所有人皆可读取 :

# chmod a+r ahzoo.txt

将文件 ahzoo.txt 与 999.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

# chmod ug+w,o-w ahzoo.txt 999.txt

为 ahzoo.java 文件拥有者增加可执行权限:

# chmod u+x ahzoo.java

将目前目录下的所有文件与子目录皆设为任何人可读取 :

# chmod -R a+r *
八进制语法

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User) 的读、写、执行;用户组(Group) 的读、写、执行以及其它用户(Other) 的读、写、执行。

# 权限 rwx 二进制
7 读 + 写 + 执行 rwx 111
6 读 + 写 rw- 110
5 读 + 执行 r-x 101
4 只读 r-- 100
3 写 + 执行 -wx 011
2 只写 -w- 010
1 只执行 --x 001
0 无 --- 000

说明:

# chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
**r=4,w=2,x=1**

  • 若要 rwx 属性则 4+2+1=7;
  • 若要 rw- 属性则 4+2=6;
  • 若要 r-x 属性则 4+1=5。
    chmod a=rwx file和chmod 777 file效果相同。
    chmod ug=rwx,o=x file和chmod 771 file效果相同。

例如, 765 将这样解释:

  • 所有者的权限用数字表达:所有者的三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
  • 用户组的权限用数字表达:用户组的三个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
  • 其它用户的权限数字表达:其它用户权限位的三个数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。

此外,若用 chmod 4755 filename 可使此程序具有 root 的权限。

对比:
用符号模式将目前目录下的所有文件与子目录皆设为任何人可读取 :

# chmod -R a+r *

等同于用数字(八进制语法)来表示同样的权限 :

# chmod 777 file

防火墙

firewall

开启防火墙

# systemctl start firewalld

开放指定端口(8080)

# firewall-cmd --zone=public --add-port=8080/tcp --permanent

命令含义:
--zone #作用域
--add-port=8080/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

关闭指定端口(8080)

# firewall-cmd --zone=public --remove-port=8080/tcp --permanent

重启防火墙

# firewall-cmd --reload

查看防火墙所有开放的端口

# firewall-cmd --zone=public --list-ports

关闭防火墙

# systemctl stop firewalld.service

查看防火墙状态

# firewall-cmd --state

查询指定端口(8080)是否开启成功

# firewall-cmd --query-port=8080/tcp

iptables

安装命令:

# yum install iptables-services
防火墙

查询防火墙状态:

# service iptables status

停止防火墙:

# service iptables stop

启动防火墙:

# service iptables start

重启防火墙:  

# service iptables restart
端口(配置文件)

由于防火墙规则的配置文件在/etc/sysconfig/iptables路径,所以我们可以直接对配置文件进行修改。
打开配置文件:

# vi /etc/sysconfig/iptables

直接在配置文件中修改(开启8080端口):

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

关闭端口:只需要在上面的配置文件中删除添加的端口即可

端口(命令)

开启22端口:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

查看端口是否开启:

iptables -L -n 

保存配置:

service iptables save

文件传输

需要安装:

# yum -y install lrzsz
  • 将当前客户端文件上传到linux
# lz
  • 将linux文件下载到当前客户端
sz filename
版权声明
本文依据 CC-BY-NC-SA 4.0 许可协议授权,请您在转载时注明文章来源为 Z次元 ,若本文涉及转载第三方内容,请您一同注明。
更多专栏文章推荐
代码手册
浏览器快捷键大全
2021/12/17
ASCII编码对照表
2021/3/1
CSS颜色对照表
2023/6/10
评论区
发表评论
回复
小

1

小波2022年10月7日

后面的用的少。。前面文件我用的最多是了。。

回复
F

1

FastAPI2022年7月14日

初略的看完了

前言
常用命令
文件类
ls(目录)
cat(打印)
touch(修改)
tail(查看)
wc(统计)
cp(复制)
mkdir(创建)
mv(移动)
find(查找)
rm(删除)
解压缩类
tar(归档)
zip(压缩)
uzip(解压缩)
gzip(压缩/解压)
guzip(解压缩)
系统类
date(日期)
uname(系统信息)
网络类
wget(下载)
进程类
nohup(运行)
netstat(网络状态)
ss(网络状态)
lsof(列出文件/进程)
ps(进程快照)
top(活动进程)
kill(终止)
权限类
chown(文件所有者)
chmod(文件权限)
符号模式
八进制语法
防火墙
firewall
iptables
防火墙
端口(配置文件)
端口(命令)
文件传输
目录
前言
常用命令
文件类
ls(目录)
cat(打印)
touch(修改)
tail(查看)
wc(统计)
cp(复制)
mkdir(创建)
mv(移动)
find(查找)
rm(删除)
解压缩类
tar(归档)
zip(压缩)
uzip(解压缩)
gzip(压缩/解压)
guzip(解压缩)
系统类
date(日期)
uname(系统信息)
网络类
wget(下载)
进程类
nohup(运行)
netstat(网络状态)
ss(网络状态)
lsof(列出文件/进程)
ps(进程快照)
top(活动进程)
kill(终止)
权限类
chown(文件所有者)
chmod(文件权限)
符号模式
八进制语法
防火墙
firewall
iptables
防火墙
端口(配置文件)
端口(命令)
文件传输
十玖八柒
每天进步多一点
欢迎到访φ(゜▽゜*)♪
最新评论
永恒末匕:

好哇塞,这个厉害

十玖八柒:

测试图片发送

Corwin: @十玖八柒

哎 主要是我的个人网站用的是静态的cos 实现评论框还是有点困难

十玖八柒: @Corwin

评论模块是自己写的,富文本编辑器是封装的Tiptap(这个编辑器非常强大,你可以去看下)

我的
个人主页
站点地图
RSS订阅
导航
十年之约
虫洞穿梭
全站友链
虚位以待
©2020 - 2025 By 十玖八柒 版权所有
豫ICP备20021466号