Linux ¶
系统管理 ¶
echo ¶
echo命令用于在终端输出字符串或变量提取后的值
命令格式:echo [字符串| $变量]
示例:
1export name="TOM" ## shell环境中定义一个临时变量name
2echo $name ## 输出
3
4## > 输出重定向到文件,如果已存在会覆盖文件内容,不存在则新建
5echo "This is a test text." > test.txt
6## >> 追加重定向,不会覆盖已存在内容
7echo "This is a test text." >> test.txt
8
9## 输出当前工作目录
10echo `pwd`
11echo $(pwd)date ¶
date命令用于显示和设置系统的时间和日期
命令格式:date [选项] [+格式]
其中,时间格式的部分控制字符解释如下:
| 字符 | 说明 |
|---|---|
| %a | 当地时间的星期名缩写(例如: 日,代表星期日) |
| %A | 当地时间的星期名全称 (例如:星期日) |
| %b | 当地时间的月名缩写 (例如:一,代表一月) |
| %B | 当地时间的月名全称 (例如:一月) |
| %c | 当地时间的日期和时间 (例如:2005年3月3日 星期四 23:05:25) |
| %C | 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20) |
| %d | 按月计的日期(例如:01) |
| %D | 按月计的日期;等于%m/%d/%y |
| %F | 完整日期格式,等价于 %Y-%m-%d |
| %j | 按年计的日期(001-366) |
| %p | 按年计的日期(001-366) |
| %r | 当地时间下的 12 小时时钟时间 (例如:11:11:04 下午) |
| %R | 24 小时时间的时和分,等价于 %H:%M |
| %s | 自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数 |
| %T | 时间,等于%H:%M:%S |
| %U | 一年中的第几周,以周日为每星期第一天(00-53) |
| %x | 当地时间下的日期描述 (例如:12/31/99) |
| %X | 当地时间下的时间描述 (例如:23:13:48) |
| %w | 一星期中的第几日(0-6),0 代表周一 |
| %W | 一年中的第几周,以周一为每星期第一天(00-53) |
示例:
1## 以默认格式查看当前系统时间
2date
3
4## 以指定格式查看系统时间
5date "+%Y-%m-%d %H:%M:%S"
6
7## 查看今天是当年中的第几天
8date "+%j"
9
10## 将系统时间设置为2020-02-20 20:20:20
11date -s "20200220 20:20:20"
12
13## 校正系统时间,与网络同步
14yum -y install ntp
15ntpdate time.nist.govwget ¶
wget用于在终端中下载文件
命令格式:wget [参数] 下载地址
参数说明:
| 参数 | 作用 |
|---|---|
| -b | 后台下载 |
| -P | 下载到指定目录 |
| -t | 最大重试次数 |
| -c | 断点续传 |
| -p | 下载页面内所有资源,包括图片、视频等 |
| -r | 递归下载 |
示例:
1## 下载图片到指定路径,路径不存在则新建
2wget -P /root/static/img/ http://img.alicdn.com/tfs/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.pngps ¶
ps命令用于查看系统中的进程状态
命令格式:ps [参数]
命令参数说明:
| 参数 | 作用 |
|---|---|
| -a | 显示现行终端机下的所有程序,包括其他用户的程序 |
| -u | 以用户为主的格式来显示程序状况 |
| -x | 显示没有控制终端的进程,同时显示各个命令的具体路径 |
| -e | 列出程序时,显示每个程序所使用的环境变量 |
| -f | 显示当前所有的进程 |
| -t | 指定终端机编号,并列出属于该终端机的程序的状况 |
示例:
1## 查看sshd进程
2ps -ef | grep sshdtop ¶
top命令动态地监视进程活动与系统负载等信息
命令输出参数解释:
以上命令输出视图中分为两个区域,一个统计信息区,一个进程信息区。
- 统计信息区
- 第一行信息依次为:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
- 第二行信息依次为:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
- 第三行信息依次为:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
- 第四行信息依次为:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
- 第五行信息依次为:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、预加载内存量。
- 进程信息区
| 列名 | 含义 |
|---|---|
| PID | 进程ID |
| USER | 进程所有者的用户名 |
| PR | 进程优先级 |
| NI | nice值。负值表示高优先级,正值表示低优先级 |
| VIRT | 进程使用的虚拟内存总量,单位kb |
| RES | 进程使用的、未被换出的物理内存大小,单位kb |
| SHR | 共享内存大小,单位kb |
| S | 进程状态D:不可中断的睡眠状态R:正在运行S:睡眠T:停止Z:僵尸进程 |
| %CPU | 上次更新到现在的CPU时间占用百分比 |
| %MEM | 进程使用的物理内存百分比 |
| TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
| COMMAND | 命令名 |
按 q 键退出监控页面。
pidof ¶
pidof命令用于查询指定服务进程的PID值
命令格式:pidof [服务名称]
命令参数说明:
| 参数 | 说明 |
|---|---|
| -s | 仅返回一个进程号 |
| -c | 只显示运行在root目录下的进程,这个选项只对root用户有效 |
| -o | 忽略指定进程号的进程 |
| -x | 显示由脚本开启的进程 |
示例:
1## 查询出crond服务下的所有进程ID
2pidof crondkill/killall ¶
kill命令用于终止指定PID的服务进程
命令格式:kill [参数] [进程PID]
killall命令用于终止指定名称的服务对应的全部进程
命令格式:killall [进程名称]
示例:
1## -9 为发送给指定程序的信息(强制删除),预设为15
2kill -9 1247
3
4killall crondifconfig ¶
ifconfig命令用于获取网卡配置与网络状态等信息
命令输出说明:
- 第一部分的第一行显示网卡状态信息。
- eth0表示第一块网卡。
- UP代表网卡开启状态。
- RUNNING代表网卡的网线被接上。
- MULTICAST表示支持组播。
- 第二行显示网卡的网络信息。
- inet(IP地址):172.16.132.195。
- broadcast(广播地址):172.16.143.255。
- netmask(掩码地址):255.255.240.0。
- RX表示接收数据包的情况,TX表示发送数据包的情况。
- lo表示主机的回环网卡,是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。与回环地址(127.0.0.0/8 或 ::1/128)不同,回环网卡对系统显示为一块硬件。任何发送到该网卡上的数据都将立刻被同一网卡接收到。
示例:
1## 获取网卡配置与网络状态等信息
2ifconfiguname ¶
uname命令用于查看系统内核与系统版本等信息
命令语法:uname [-amnrsv][--help][--version]
示例:
1## 显示系统信息
2uname -a
3
4## 显示当前系统的硬件架构
5uname -i
6
7## 显示操作系统发行编号
8uname -r
9
10## 显示操作系统名称
11uname -s
12
13## 显示主机名称
14uname -nuptime ¶
uptime 用于查看系统的负载信息
命令输出说明:
| 负载信息 | 命令输出值 |
|---|---|
| 当前服务器时间 | 14:20:27 |
| 当前服务器运行时长 | 2 min |
| 当前用户数 | 2 users |
| 当前负载情况 | load average: 0.03, 0.04, 0.02(分别取1min,5min,15min的均值) |
free ¶
free用于显示当前系统中内存的使用量信息
命令语法:free [-bkmotV][-s <间隔秒数>]
命令参数说明:
| 参数 | 说明 |
|---|---|
| -b | 以Byte为单位显示内存使用情况 |
| -k | 以KB为单位显示内存使用情况 |
| -m | 以MB为单位显示内存使用情况 |
| -h | 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。 |
命令输出说明:
| 参数 | 说明 |
|---|---|
| total | 物理内存总数 |
| used | 已经使用的内存数 |
| free | 空间的内存数 |
| share | 多个进程共享的内存总额 |
| buff/cache | 应用使用内存数 |
| available | 可用的内存数 |
| Swap | 虚拟内存 |
示例:
1## 以合适的单位显示系统内存信息
2free -hwho ¶
who 命令显示关于当前在本地系统上的所有用户的信息
示例:
1## 显示当前登录系统的用户
2who
3
4## 显示用户登录来源
5who -l -Hlast ¶
last 命令用于显示用户最近登录信息
history ¶
history命令用于显示历史执行过的命令
bash默认记录1000条执行过的历史命令,被记录在~/.bash_history文件中
示例:
1## 显示最新10条执行过的命令
2history 10
3
4## 清除历史记录
5history -c磁盘管理 ¶
df ¶
该命令检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息
命令格式:df [参数] [目录或文件名]
参数说明:
| 参数 | 说明 |
|---|---|
| -a | 列出所有的文件系统,包括系统特有的/proc等文件系统。 |
| -k | 以KBytes为单位,返回各文件系统容量。 |
| -m | 以MBytes为单位,返回各文件系统容量。 |
| -h | 以GBytes、MBytes、KBytes为单位,返回各文件系统容量。 |
| -H | 以M=1000K取代M=1024K的进位方式显示各文件系统容量。 |
| -T | 显示文件系统类型。 |
| -i | 显示inode信息 |
示例:
1## 显示磁盘使用情况
2df
3
4## 以inode模式来显示磁盘使用情况
5df -i
6
7## 显示系统内的所有特殊文件格式、名称及磁盘使用情况
8df -aT
9
10## 以GBytes、MBytes、KBytes等格式显示各文件系统容量
11df -hdu ¶
du命令描述:查看磁盘使用空间。du与df命令不同点在于,du命令用于查看文件和目录磁盘的使用空间
命令格式:du [参数] [文件或目录名称]
参数说明:
| 参数 | 说明 |
|---|---|
| -a | 列出所有的文件与目录容量。 |
| -h | 以G、M、K为单位,返回容量。 |
| -s | 列出总量。 |
| -S | 列出不包括子目录下的总量。 |
| -k | 以KBytes为单位,返回容量。 |
| -m | 以MBytes为单位,返回容量。 |
示例:
1## 列出当前目录下的所有文件夹的容量
2du
3
4## 列出当前目录下的所有文件夹和文件的容量
5du -a
6
7## 列出当前目录下的所有文件夹和文件的容量,并以G、M、K格式显示容量
8du -ah
9
10## 列出根目录底下每个目录所占用的容量,并以MBytes单位显示容量
11du -sm /*fdisk ¶
fdisk命令描述:该命令用于磁盘分区
命令格式:fdisk [-l] 装置名称
参数说明:
| 参数 | 说明 |
|---|---|
| -l | 输出后面装置名称的所有的分区内容。若仅有 fdisk -l时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。 |
示例:
1## 列出系统所有装置的分区信息
2fdisk -l
3
4## 列出系统中的根目录所在磁盘,并查阅该硬盘内的相关信息
5## 1.找出根目录所在磁盘名
6df /
7## 2.对磁盘/dev/vda进行分区操作
8fdisk /dev/vda
9## 3.command提示符下键入 m 获取提示
10## 4.command提示符下键入 p 查看磁盘状态
11## 5.command提示符下键入 q 不做保存退出分区文本处理 ¶
Vim使用 ¶
vim的三种操作模式
- 命令模式(Command mode)
- 输入模式(Insert mode)
- 底线命令模式(Last line mode)
三种模式切换快捷键:
| 模式 | 快捷键 |
|---|---|
| 命令模式 | ESC |
| 输入模式 | i或a |
| 底线命令模式 | : |
命令模式
在命令模式中控制光标移动和输入命令,可对文本进行复制、粘贴、删除和查找等工作。
使用命令vim filename后进入编辑器视图后,默认模式就是命令模式,此时敲击键盘字母会被识别为一个命令,例如在键盘上连续敲击两次d,就会删除光标所在行
以下是在命令模式中常用的快捷操作:
| 操作 | 快捷键 |
|---|---|
| 光标左移 | h |
| 光标右移 | l(小写L) |
| 光标上移 | k |
| 光标下移 | j |
| 光标移动到下一个单词 | w |
| 光标移动到上一个单词 | b |
| 移动游标到第n行 | nG |
| 移动游标到第一行 | gg |
| 移动游标到最后一行 | G |
| 快速回到上一次光标所在位置 | Ctrl+o |
| 删除当前字符 | x |
| 删除前一个字符 | X |
| 删除整行 | dd |
| 删除一个单词 | dw或daw |
| 删除至行尾 | d$或D |
| 删除至行首 | d^ |
| 删除到文档末尾 | dG |
| 删除至文档首部 | d1G |
| 删除n行 | ndd |
| 删除n个连续字符 | nx |
| 将光标所在位置字母变成大写或小写 | ~ |
| 复制游标所在的整行 | yy(3yy表示复制3行) |
| 粘贴至光标后(下) | p |
| 粘贴至光标前(上) | P |
| 剪切 | dd |
| 交换上下行 | ddp |
| 替换整行,即删除游标所在行并进入插入模式 | cc |
| 撤销一次或n次操作 | u{n} |
| 撤销当前行的所有修改 | U |
| 恢复撤销操作 | Ctrl+r |
| 整行将向右缩进 | » |
| 整行将向左退回 | « |
| 若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开 | ZZ |
输入模式
在命令模式下按i或a键就进入了输入模式,在输入模式下,您可以正常的使用键盘按键对文本进行插入和删除等操作
底线命令模式
在命令模式下按:键就进入了底线命令模式,在底线命令模式中可以输入单个或多个字符的命令
| 操作 | 命令 |
|---|---|
| 保存 | :w |
| 退出 | :q |
| 保存并退出 | :wq(:wq!表示强制保存退出) |
| 将文件另存为其他文件名 | :w new_filename |
| 显示行号 | :set nu |
| 取消行号 | :set nonu |
| 使本行内容居中 | :ce |
| 使本行文本靠右 | :ri |
| 使本行内容靠左 | :le |
| 向光标之下寻找一个名称为word的字符串 | :/word |
| 向光标之上寻找一个字符串名称为word的字符串 | :?word |
| 重复前一个搜寻的动作 | :n |
| 从第一行到最后一行寻找word1字符串,并将该字符串取代为word2 | :1,$s/word1/word2/g 或 :%s/word1/word2/g |
cat ¶
cat命令用于查看内容较少的纯文本文件
命令格式:cat [选项] [文件]
命令参数说明:
| 参数 | 说明 |
|---|---|
| -n或–number | 显示行号 |
| -b或–number-nonblank | 显示行号,但是不对空白行进行编号 |
| -s或–squeeze-blank | 当遇到有连续两行以上的空白行,只显示一行的空白行 |
示例:
1## 将一个自增序列写入test.txt文件中
2for i in $(seq 1 10); do echo $i >> test.txt ; done
3
4## 查看文件
5cat test.txt
6
7## 清空文件内容
8cat /dev/null > test.txtmore ¶
more命令从前向后分页显示文件内容
常用操作命令:
| 操作 | 作用 |
|---|---|
| Enter | 向下n行,n需要定义,默认为1行 |
| Ctrl+F或空格键(Space) | 向下滚动一页 |
| Ctrl+B | 向上滚动一页 |
| = | 输出当前行的行号 |
| !命令 | 调用Shell执行命令 |
| q | 退出more |
示例:
1## 从第20行开始分页查看系统日志文件/var/log/messages
2more +20 /var/log/messagesless ¶
less命令可以对文件或其它输出进行分页显示,与moe命令相似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动
命令格式:less [参数] 文件
命令参数说明:
| 参数 | 说明 |
|---|---|
| -e | 当文件显示结束后,自动离开 |
| -m | 显示类似more命令的百分比 |
| -N | 显示每行的行号 |
| -s | 显示连续空行为一行 |
命令常用操作:
| 快捷键 | 说明 |
|---|---|
| /字符串 | 向下搜索字符串 |
| ?字符串 | 向上搜索字符串 |
| n | 重复前一个搜索 |
| N | 反向重复前一个搜索 |
b或pageup键 | 向上翻一页 |
空格键或pagedown键 | 向下翻一页 |
| u | 向前翻半页 |
| d | 向后翻半页 |
| y | 向前滚动一行 |
| 回车键 | 向后滚动一行 |
| q | 退出less命令 |
示例:
1## 查看命令历史使用记录并通过less分页显示
2history | lesshead ¶
head命令用于查看文件开头指定行数的内容
命令格式:head [参数] [文件]
命令参数说明:
| 参数 | 说明 |
|---|---|
| -n [行数] | 显示开头指定行的文件内容,默认为10 |
| -c [字符数] | 显示开头指定个数的字符数 |
| -q | 不显示文件名字信息,适用于多个文件,多文件时默认会显示文件名 |
示例:
1## 查看/etc/passwd文件的前5行内容
2head -5 /etc/passwdtail ¶
tail命令用于查看文档的后N行或持续刷新内容
命令格式:tail [参数] [文件]
命令参数说明:
| 参数 | 说明 |
|---|---|
| -f | 显示文件最新追加的内容 |
| -q | 当有多个文件参数时,不输出各个文件名 |
| -v | 当有多个文件参数时,总是输出各个文件名 |
| -c [字节数] | 显示文件的尾部n个字节内容 |
| -n [行数] | 显示文件的尾部n行内容 |
示例:
1## 查看/var/log/messages系统日志文件的最新10行,并保持实时刷新
2tail -f -n 10 /var/log/messagesstat ¶
用来显示文件的详细信息,包括inode、atime、mtime、ctime等
示例:
1## 查看/etc/passwd文件的详细信息
2stat /etc/passwdwc ¶
wc命令用于统计指定文本的行数、字数、字节数
命令格式:wc [参数] [文件]
命令参数说明:
| 参数 | 说明 |
|---|---|
| -l | 只显示行数 |
| -w | 只显示单词数 |
| -c | 只显示字节数 |
示例:
1## 统计/etc/passwd文件的行数
2wc -l /etc/passwdfile ¶
file命令用于辨识文件类型
命令格式:file [参数] [文件]
命令参数说明:
| 参数 | 说明 |
|---|---|
| -b | 列出辨识结果时,不显示文件名称 |
| -c | 详细显示指令执行过程,便于排错或分析程序执行的情形 |
| -f [文件] | 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称 |
| -L | 直接显示符号连接所指向的文件类别 |
示例:
1## 查看/var/log/messages文件的文件类型
2file /var/log/messagesdiff ¶
diff命令用于比较文件的差异
示例:
1## 构造两个相似文件
2echo -e '第一行\n第二行\n我是log1第3行\n第四行\n第五行\n第六行' > 1.log
3echo -e '第一行\n第二行\n我是log2第3行\n第四行' > 2.log
4
5## diff命令对比文件差异
6#对比结果中的3c3表示两个文件在第3行有不同
7#5,6d4表示2.log文件相比1.log文件在第4行处开始少了1.log文件的第5和第6行
8diff 1.log 2.loggrep ¶
grep命令用于查找文件里符合条件的字符串
在Shell脚本中,grep通过返回一个状态值来表示搜索的状态:
- 0:匹配成功。
- 1:匹配失败。
- 2:搜索的文件不存在
命令格式:grep [参数] [正则表达式] [文件]
命令常用参数说明:
| 参数 | 说明 |
|---|---|
| -c或–count | 计算符合样式的列数 |
| -d recurse或-r | 指定要查找的是目录而非文件 |
| -e [范本样式] | 指定字符串做为查找文件内容的样式 |
| -E 或 –extended-regexp | 将样式为延伸的正则表达式来使用 |
| -F 或 –fixed-regexp | 将样式视为固定字符串的列表 |
| -G 或 –basic-regexp | 将样式视为普通的表示法来使用 |
| -i 或 –ignore-case | 忽略字符大小写的差别 |
| -n 或 –line-number | 在显示符合样式的那一行之前,标示出该行的列数编号 |
| -v 或 –revert-match | 显示不包含匹配文本的所有行 |
示例:
1## 查看sshd服务配置文件中监听端口配置所在行编号
2grep -n Port /etc/ssh/ssh_config
3
4## 查询字符串在文本中出现的列数
5grep -c localhost /etc/hosts
6
7## 以递归的方式查找目录下含有关键字的文件
8grep -r *.sh /etc
9
10## 使用正则表达式匹配httpd配置文件中异常状态码响应的相关配置
11grep 'ntp[0-9].aliyun.com' /etc/ntp.confsed ¶
sed是一种流编辑器,它是文本处理中非常强的工具,能够完美的配合正则表达式使用
- 处理时,把当前处理的行存储在临时缓冲区中,称为模式空间(pattern space)。
- 接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。
- 接着处理下一行,这样不断重复,直到文件末尾。
注意:
- sed命令不会修改原文件,例如删除命令只表示某些行不打印输出,而不是从原文件中删去。
- 如果要改变源文件,需要使用 -i 选项
命令格式:sed [参数] [动作] [文件]
参数说明:
| 参数 | 说明 |
|---|---|
| -e [script] | 执行多个script |
| -f [script文件] | 执行指定script文件 |
| -n | 仅显示script处理后的结果 |
| -i | 输出到原文件,静默执行(修改原文件) |
动作说明:
| 动作 | 说明 |
|---|---|
| a | 新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行) |
| c | 取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行 |
| d | 删除,因为是删除啊,所以 d 后面通常不接任何东东 |
| i | 插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行) |
| p | 打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行 |
| s | 取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式 |
示例:
1## $表示最后一行
2
3## 删除2行到4行的内容
4sed '2,4d' /etc/passwd
5
6## 删除第3行到最后一行内容
7sed '3,$d' /etc/passwd
8
9## 最后一行新增
10sed '$a admin:x:1000:1000:admin:/home/admin:/bin/bash' /etc/passwd
11
12## 替换内容
13sed 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config
14
15## 替换第一行内容
16sed '1c abcdefg' /etc/passwd文件与权限 ¶
ls ¶
ls命令用于显示指定工作目录下的内容
命令格式:ls [参数] [目录名]
参数说明:
| 参数 | 说明 |
|---|---|
| -a | 显示所有文件及目录(包括隐藏文件) |
| -l | 将文件的权限、拥有者、文件大小等详细信息列出(ll等同于ls -l) |
| -r | 将文件反序列出(默认按英文字母正序) |
| -t | 将文件按创建时间正序列出 |
| -R | 递归遍历目录下文件 |
示例:
1## 查看当前目录所有文件(包括隐藏文件)
2ls -alpwd ¶
pwd 获取当前工作目录的绝对路径
cd ¶
cd 命令用于切换工作目录
在路径表示中:
- 一个半角句号(.)表示当前目录,例如路径./app/log等同于app/log。
- 两个半角句号(..)表示上级目录,例如路径/usr/local/../src等同于/usr/src,其中local和src目录同级。
cd 命令的默认参数为~,符号~表示当前用户的家目录,即在root用户登录时,命令cd、cd ~和cd /root执行效果相同
touch ¶
touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件
命令格式:touch [参数] [文件]
参数说明:
| 参数 | 说明 |
|---|---|
| -c | 如果指定文件不存在,不会建立新文件 |
| -r | 使用参考文件的时间记录 |
| -t | 设置文件的时间记录 |
示例:
1## 创建两个空文件
2touch demo1.txt demo2.txt
3
4## 修改demo1.txt的时间记录为当前系统时间
5touch demo1.txt
6
7## 更新demo2.txt的时间记录,使其和demo1.txt的时间记录相同
8touch -r demo1.txt demo2.txtmkdir ¶
mkdir命令用于新建子目录。-p 参数确保目录名称存在,不存在的就新建一个
1## 创建 a->b->c->d 目录
2mkdir -p a/b/c/drm ¶
rm命令用于删除一个文件或者目录
命令格式:rm [参数] [文件]
参数说明:
| 参数 | 说明 |
|---|---|
| -i | 删除前逐一询问确认 |
| -f | 无需确认,直接删除 |
| -r | 删除目录下所有文件 |
示例:
1## 无需确认直接删除目录a及其目录下所有子目录和文件
2rm -rf acp ¶
cp命令主要用于复制文件或目录
命令格式:cp [参数] [源文件] [目标文件]
参数说明:
| 参数 | 说明 |
|---|---|
| -d | 复制时保留链接 |
| -f | 覆盖已经存在的目标文件而不给出提示 |
| -i | 覆盖前询问 |
| -p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 |
| -r | 复制目录及目录内的所有项目 |
示例:
1## 将目录c/d中的所有内容复制到目录a/b下
2cp -r c/d/ a/b/mv ¶
mv命令用来为文件或目录改名、或将文件或目录移入其它位置
命令格式:mv [参数] [源文件] [目标文件]
参数说明:
| 参数 | 说明 |
|---|---|
| -i | 若指定目录已有同名文件,则先询问是否覆盖旧文件 |
| -f | 如果目标文件已经存在,不会询问而直接覆盖 |
示例:
1## 将a.txt改名为b.txt
2mv a.txt b.txt
3
4## 将a.txt移动到a/b目录下
5mv a.txt a/brename ¶
rename命令用字符串替换的方式批量改变文件名
示例:
1## 将当前目录下所有文件名中的字符串demo改为大写的字符串DEMO
2rename demo DEMO *
3
4## 将当前目录下所有.txt文件后缀都改为text
5rename .txt .text *文件权限介绍 ¶
ls -l命令中显示的第一列就是文件权限信息,共11位字符,分5部分。
- 第1位表示存档类型,d表示目录,-表示一般文件。
- 第2~4位表示当前用户的权限(属主权限)。
- 第5~7位表示同用户组的用户权限(属组权限)。
- 第8~10位表示不同用户组的用户权限(其他用户权限)。
- 第11位是一个半角句号.,表示SELinux安全标签
用户权限每组三位,rwx分别表示读、写、执行权限,对应八进制表示为4、2、1
u表示属主,g表示属组,o表示其他,a表示所有用户
chmod ¶
chmod命令用于修改文件权限mode,-R 参数以递归方式对子目录和文件进行修改
示例:
1## 新建脚本文件hello.sh,输出 Hellow
2echo "echo 'Hellow'" > hello.sh
3
4## 将hello.sh文件增加属主的执行权限
5chmod u+x hello.sh
6
7## 将hello.sh文件撤销属主的执行权限
8chmod u-x hello.sh
9
10## 将hello.sh文件权限修改为八进制表示的744权限
11chmod 744 hello.shchown ¶
chown命令修改文件的属主和属组;-R参数以递归方式对子目录和文件进行修改
ls -l命令显示的第三列和第四列就是文件的属主和属组信息
示例:
1## 查看当前登录用户
2whoami
3
4## 新建一个用户
5adduser test
6passwd test
7
8## 修改文件属主为 test
9chown test DEMO2.txt
10
11## 修改文件属组和属主都是test
12chown test:test DEMO2.txtchgrp ¶
chgrp命令用于修改文件的属组
示例:
1## 将 test.txt 属组修改为 root
2chgrp root test.txt文件管理 ¶
tar ¶
常用参数的意思
1# c(create)用于创建一个新的tar归档文件。当你需要把多个文件或目录打包成一个单独的文件时,就会用到这个选项。
2# v(verbose)它的作用是在执行tar命令时显示详细的处理过程。
3# f(file)该选项用于指定要操作的tar归档文件的名称。
4# x(extract)用于从tar归档文件中提取文件。压缩
仅打包:若你只需将多个文件或目录打包成一个文件,不进行压缩,可使用如下命令:
bash1tar -cvf archive.tar /path/to/directory使用 gzip 压缩:要把文件或目录打包并以 gzip 格式压缩,可使用以下命令:
bash1tar -zcvf archive.tar.gz /path/to/directory使用 bzip2 压缩:若想使用 bzip2 进行压缩,可采用如下命令:
bash1tar -jcvf archive.tar.bz2 /path/to/directory
解压
解压未压缩的归档文件:若要解压一个未压缩的
.tar文件,可使用如下命令:bash1tar -xvf archive.tar解压 gzip 压缩的归档文件:若要解压一个以 gzip 压缩的
.tar.gz或.tgz文件,可使用以下命令:bash1tar -zxvf archive.tar.gz解压 bzip2 压缩的归档文件:若要解压一个以 bzip2 压缩的
.tar.bz2文件,可采用如下命令:bash1tar -jxvf archive.tar.bz2
解压到指定目录
1tar -zxvf archive.tar.gz -C /path/to/extractCentos ¶
系统命令 ¶
1systemctl stop firewalld #关闭防火墙
2systemctl start firewall #开启防火墙
3
4systemctl disable firewalld.service #移除防火墙开机自启
5systemctl enable firewalld.service #添加防火墙开机自启
6
7#放行端口
8#--zone 域
9#--add-port 端口/协议
10#--permanent 永久生效
11firewall-cmd --zone=public --add-port=xxxx/tcp --permanent
12firewall-cmd --zone=public --add-port=8121-8124/tcp --permanent
13
14firewall-cmd --reload #重载防火墙配置
15
16firewall-cmd --zone=public --list-ports #查看开启的防火墙端口
17
18systemctl status firewalld.service #查看防火墙状态应用命令 ¶
1nohup ./bin/cmak > log & #后台守护运行,并指定输出到当前目录log文件Centos7网络配置 ¶
1#网络配置文件
2vim /etc/sysconfig/network-scripts/ifcfg-ens33
3
4#修改配置文件 ifcfg-ens33
5BOOTPROTO=static #静态ip
6DEFROUTE=yes
7IPV4_FAILURE_FATAL=no
8ONBOOT=yes #开机启动
9IPADDR=192.168.10.131 #ip地址
10GATEWAY=192.168.10.254 #网关
11NETMASK=255.255.255.0 #mask
12DNS=114.114.114.114 #DNS
13
14#配置文件修改后,用以下命令重启网络
15service network restartUbuntu22.04 ¶
网络配置 ¶
查看当前系统详细信息
bash1lsb_release -a网络配置文件,进行配置
bash1vim /etc/netplan/00-installer-config.yaml 2## Let NetworkManager manage all devices on this system 3network: 4 ethernets: 5 ens32: ### network card name 6 dhcp4: false 7 addresses: 8 - 192.168.3.88/24 ### set static IP 9 routes: 10 - to: default 11 via: 192.168.3.1 ### gateway 12 nameservers: 13 addresses: [8.8.8.8,8.8.4.4,192.168.3.1] 14 version: 2查看网络服务状态
bash1systemctl start systemd-networkd 2systemctl status systemd-networkd重启网络服务,再次查看网络状态
bash1netplan apply 2systemctl status systemd-networkd 3ip addr测试网络连接
bash1ping -c 3 www.baidu.com
防火墙 ¶
docker会自动在防火墙列表中添加了开放端口的规则
ufw
ufw是Ubuntu系统上配置iptables防火墙的工具
1#开启防火墙
2ufw enable
3
4#查看端口启用状态
5ufw status
6
7#开启端口
8ufw allow <端口号>
9
10#关闭端口
11ufw deny <端口号>
12
13#删除规则
14ufw delete deny <端口号>
15ufw delete allow <端口号>
16
17#重新加载规则
18ufw reloadiptables
直接使用iptables命令,linux大都通用
默认的 iptable s规则表有 filter 表(过滤规则表)、nat 表(地址转换规则表)、mangle(修改数据标记位规则表)、raw(跟踪数据表规则表)
1#-L 表示查看当前表的所有规则,默认查看的是 filter 表
2#如果要查看 nat 表,可以加上 -t nat 参数
3iptables -L