Linux的使用(常见)

文章目录





Linux终端命令格式





终端命令格式

command [-options] [parameter]
  • 1

说明:

  • command :命令名,相应功能的英文单词或单词的缩写
  • [-options] :选项,可用来对命令进行控制,也可以省略
  • parameter :传给命令的参数,可以是 零个、一个 或者 多个





查阅命令帮助信息





-help

说明:

  • 显示 command 命令的帮助信息





-man

说明:

  • 查阅 command 命令的使用手册
    man 是 manual 的缩写,是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用
  • 说明
    使用 man 时的操作键
    Alt





常用Linux命令的基本实用





学习Linux终端命令的原因

  • Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
  • 在职场中,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成
  • 在职场中,作为后端程序员,必须要或多或少的掌握一些 Linux 常用的终端命令
  • Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已





常用Linux命令的基本使用

序号命令对应英文作用
01lslist查看当前文件夹下的内容
02pwdprint work directory查看当前所在文件夹
03cd[目录名]changge directory切换文件夹
04touch[文件名]touch如果文件不存在,新建文件
05mkdir[目录名]make directory创建目录
06rm[文件名]remove删除指定文件
07clearclear清屏

小技巧:

  • ctrl + shift + = 放大终端窗口的字体显示
  • ctrl + - 缩小终端窗口的字体显示





自动补全

在敲出 文件 / 目录 / 命令 的前几个字母之后,按下 tab 键

  • 如果输入的没有歧义,系统会自动补全
  • 如果还存在其他 文件 / 目录 / 命令 ,再按一下 tab 键,系统会提示可能存在的命令
    小技巧
  • 按  /  光标键可以在曾经使用过的命令之间来回切换
  • 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c





其它命令





查找文件

find 命令功能非常强大,通常用来在 特定的目录下 搜索 符合条件的文件

序号命令作用
01find [路径] -name “*.py”查找指定路径下扩展名是 .py 的文件,包括子目录
  • 如果省略路径,表示在当前文件夹下查找
  • 之前学习的通配符,在使用 find 命令时同时可用





演练目标

  • 1.搜索桌面目录下,文件名包含 1 的文件
find -name "*1*"
  • 1
  • 2.搜索桌面目录下,所有以 .txt 为扩展名的文件
find -name "*.txt"
  • 1
  • 3.搜索桌面目录下,以数字 1 开头的文件
find -name "1*"
  • 1





软链接

序 号命令作用
01ln -s 被链接的源文件 链接文件建立文件的软链接,用通俗的方式讲类似于 Windows 下的快捷方式

注意:

  1. 没有 -s 选项建立的是一个 硬链接文件两个文件占用相同大小的硬盘空间,工作中几乎不会建立文件的硬链接
  2. 源文件要使用绝对路径,不能使用相对路径,这样可以方便移动链接文件后,仍然能够正常使用





演练目标

  1. 将桌面目录下的 01.py 移动到 demo/b/c 目录下
  2. 在桌面目录下新建 01.py 的 软链接 FirstPython分别使用 相对路径 和 绝对路径 建立 FirstPython 的软链接
  3. 将 FirstPython 移动到 demo 目录下,对比使用 相对路径 和 绝对路径 的区别





硬链接简介(知道)

在使用 ln 创建链接时,如果没有 -s 选项,会创建一个 硬链接,而不是软链接





硬链接演练

  1. 在 ~/Desktop/demo 目录下建立 ~/Desktop/demo/b/c/01.py 的硬链接 01_hard
  2. 使用 ls -l 查看文件的硬链接数(硬链接——有多少种方式可以访问文件或者目录)
  3. 删除 ~/Desktop/demo/b/c/01.py ,并且使用 tree 来确认 demo 目录下的三个链接文件文件软硬链接的示意图





文件软硬链接示意图

Alt
在 Linux 中,文件名 和 文件的数据 是分开存储的

  • 提示:
    在 Linux 中,只有文件的 硬链接数 == 0 才会被删除
    使用 ls -l 可以查看一个文件的硬链接的数量
    在日常工作中,几乎不会建立文件的硬链接,知道即可





打包压缩

  • 打包压缩 是日常工作中备份文件的一种方式
  • 在不同操作系统中,常用的打包压缩方式是不同的选项 含义
    Windows 常用 rar
    Mac 常用 zip
    Linux 常用 tar.gz





打包 / 解包

tar 是 Linux 中最常用的 备份工具,此命令可以 把一系列文件 打包到 一个大文件中,也可以把一个 打包的大文件恢复成一系列文件
tar 的命令格式如下:

# 打包文件
tar -cvf 打包文件.tar 被打包的文件/路径...
# 解包文件
tar -xvf 打包文件.tar
  • 1
  • 2
  • 3
  • 4

tar选项说明:

选项含义
c生成档案文件,创建打包文件
x解开档案文件
v列出归档解档的详细过程,显示进度
f指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后

注意: f 选项必须放在最后,其他选项顺序可以随意





压缩/解压缩





1)gzip

  • tar 与 gzip 命令结合可以使用实现文件 打包和压缩
    tar 只负责打包文件,但不压缩
    用 gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz

在 Linux 中,最常见的压缩文件格式就是 xxx.tar.gz

  • 在 tar 命令中有一个选项 -z 可以调用 gzip ,从而可以方便的实现压缩和解压缩的
  • 功能命令格式如下:
# 压缩文件
tar -zcvf 打包文件.tar.gz 被压缩的文件/路径...
# 解压缩文件
tar -zxvf 打包文件.tar.gz
# 解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
选项含义
-C解压缩到指定目录,注意:要解压缩的目录必须存在





2) bzip2(two)

  • tar 与 bzip2 命令结合可以使用实现文件 打包和压缩(用法和 gzip 一样)
    tar 只负责打包文件,但不压缩
    用 bzip2 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.bz2
  • 在 tar 命令中有一个选项 -j 可以调用 bzip2 ,从而可以方便的实现压缩和解压缩的功能
  • 命令格式如下:
# 压缩文件
tar -jcvf 打包文件.tar.bz2 被压缩的文件/路径...
# 解压缩文件
tar -jxvf 打包文件.tar.bz2
  • 1
  • 2
  • 3
  • 4





软件安装





通过 apt 安装/卸载软件

  • apt 是 Advanced Packaging Tool ,是 Linux 下的一款安装包管理工具
  • 可以在终端中方便的 安装/卸载/更新软件包
# 1. 安装软件
$ sudo apt install 软件包
# 2. 卸载软件
$ sudo apt remove 软件名
# 3. 更新已安装的包
$ sudo apt upgrade
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6





文件和目录常用命令





查看目录内容





ls 命令说明

  • ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS下的 dir 命令





Linux 下文件和目录的特点

  • Linux 文件 或者 目录 名称最长可以有 256 个字符参数 含义
  • 以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示
  • . 代表当前目录
  • … 代表上一级目录





ls 常用选项

参数含义
-a显示指定目录下所有子目录与文件,包括隐藏文件
-l以列表方式显示文件的详细信息
-h配合 -l 以人性化的方式显示文件大小





ls通配符的使用

通配符含义
*代表任意个数个字符
?代表任意一个字符,至少 1 个
[]表示可以匹配字符组中的任一一个
[abc]匹配 a、b、c 中的任意一个
[a-f]匹配从 a 到 f 范围内的的任意一个字符

注意:以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示





切换目录





cd

cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一
注意:Linux 所有的 目录 和 文件名 都是大小写敏感的

命令含义
cd切换到当前用户的主目录(/home/用户目录)
cd ~切换到当前用户的主目录(/home/用户目录)
cd .保持在当前目录不变
cd …切换到上级目录
cd -可以在最近两次工作目录之间来回切换





相对路径和绝对路径

相对路径 在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置





创建和删除操作





touch

  • 创建文件或修改文件时间
    如果文件 不存在,可以创建一个空白文件
    如果文件 已经存在,可以修改文件的末次修改日期





mkdir

  • 创建一个新的目录
选项含义
-p可以递归创建目录

新建目录的名称 不能与当前目录中 已有的目录或文件 同名





rm

  • 删除文件或目录
    使用 rm 命令要小心,因为文件删除后不能恢复
选项含义
-f强制删除,忽略不存在的文件,无需提示
-r递归地删除目录下的内容,删除文件夹 时必须加此参数





拷贝和移动文件

序号命令对应英文作用
01tree [目录名]tree以树状图列出文件目录结构
02cp 源文件目标文件copy复制文件或者目录
03mv 源文件 目标文件move移动文件或者目录/文件或者目录重命名





tree

  • tree 命令可以以树状图列出文件目录结构
选项含义
-d只显示目录





cp

  • cp 命令的功能是将给出的 文件 或 目录 复制到另一个 文件 或 目录 中,相当DOS 下的 copy命令
选 项含义
-i覆盖文件前提示
-r若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必

须为一个目录名





mv

  • mv 命令可以用来 移动 文件 或 目录,也可以给 文件或目录重命名
选项含义
-i覆盖文件前提示





查看文件内容

序 号命令对应英文作用
01cat 文件名concatenate查看文件内容、创建文件、文件合并、追加文件内容等功能
02more 文件名more分屏显示文件内容
03grep 搜索文本 文件名grep搜索文本文件内容





cat

cat 命令可以用来 查看文件内容、创建文件、文件合并、追加文件内容 等功能
cat 会一次显示所有的内容,适合 查看内容较少 的文本文件

选项含义
-b对非空输出行编号
-n对输出的所有行编号

Linux 中还有一个 nl 的命令和 cat -b 的效果等价





more

  • more 命令可以用于分屏显示文件内容,每次只显示一页内容
  • 适合于 查看内容较多的文本文件

使用 more 的操作键:

操作键功能
空格键显示手册页的下一屏
Enter键 一次滚动手册页的一行
b回滚一屏
f前滚一屏
q退出
/word搜索 word 字符串





grep

Linux 系统中 grep 命令是一种强大的文本搜索工具
grep 允许对文本文件进行 模式查找,所谓模式查找,又被称为正则表达式。

选项含义
-n显示匹配行及行号
-v显示不包含匹配文本的所有行(相当于求反)
-i忽略大小写

常用的两种模式查找

参数含义
^a行首,搜寻以 a 开头的行
ke$行尾,搜寻以 ke 结束的行





其他





echo 文字内容

echo 会在终端中显示参数指定的文字,通常会和 重定向 联合使用





重定向 > 和 >>

Linux 允许将命令执行结果 重定向到一个 文件
将本应显示在终端上的内容 输出/追加 到指定文件中
其中
> 表示输出,会覆盖文件原有的内容
>> 表示追加,会将内容追加到已有文件的末尾





管道 |

  • Linux 允许将 一个命令的输出 可以通过管道 做为 另一个命令的输入
  • 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 | 的左右分为两端,
    左端塞东西(写),右端取东西(读)

常用的管道命令有:

  • more :分屏显示内容
  • grep :在命令执行结果的基础上查询指定的文本





系统信息相关命令





时间和日期

序号命令作用
01date查看系统时间
02calcalendar 查看日历, -y 选项可以查看一年的日历





磁盘信息

序号命令作用
01df -hdisk free 显示磁盘剩余空间
02du -h [目录名]disk usage 显示目录下的文件大小





进程信息

所谓进程,通俗地说就是 当前正在执行的一个程序

序号命令作用
01ps auxprocess status 查看进程的详细状况
02top动态显示运行中的进程并且排序
03kill [-9] 进程代号终止指定代号的进程, -9 表示强行终止

ps 默认只会显示当前用户通过终端启动的应用程序
ps 选项说明

选项含义
a显示终端上的所有进程,包括其他用户的进程
u显示进程的详细状态
x显示没有控制终端的进程

提示:使用 kill 命令时,最好只终止由当前用户开启的进程,而不要终止 root 身份开启的进程,否则可能导致系统崩溃

  • 要退出 top 可以直接输入 q





用户权限相关命令





组管理

提示:创建组 / 删除组 的终端命令都需要通过 sudo 执行

序号命令作用
01groupadd 组名添加组
02groupdel 组名删除组
03cat /etc/group确认组信息
04chgrp -R 组名 文件/目录名递归修改文件/目录的所属组

提示:
组信息保存在 /etc/group 文件中
/etc 目录是专门用来保存 系统配置信息 的目录





用户管理

提示:创建用户 / 删除用户 / 修改其他用户密码 的终端命令都需要通过 sudo 执行





创建用户/设置密码/删除用户

Alt
提示:

  • 创建用户时,如果忘记添加 -m 选项指定新用户的家目录 —— 最简单的方法就是删除用户,重新创建
  • 创建用户时,默认会创建一个和用户名同名的组名
  • 用户信息保存在 /etc/passwd 文件中





查看用户信息

序号命令作用
01id [用户名]查看用户 UID 和 GID 信息
02who查看当前所有登录的用户列表
03whoami查看当前登录用户的账户名



which(重要)

提示

  • /etc/passwd 是用于保存用户信息的文件
  • /usr/bin/passwd 是用于修改用户密码的程序
    which 命令可以查看执行命令所在位置,例如:
which ls
# 输出
# /bin/ls
which useradd
# 输出
# /usr/sbin/useradd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

bin 和 sbin

  • 在 Linux 中,绝大多数可执行文件都是保存在 /bin 、 /sbin 、 /usr/bin 、 /usr/sbin
  • /bin ( binary )是二进制执行文件目录,主要用于具体应用
  • /sbin ( system binary )是系统管理员专用的二进制代码存放目录,主要用于系统管理
  • /usr/bin ( user commands for applications )后期安装的一些软件
  • /usr/sbin ( super user commands for applications )超级用户的一些管理程序

提示:
cd 这个终端命令是内置在系统内核中的,没有独立的文件,因此用 which 无法找到 cd命令的位置





切换用户

序 号命令作用说明
01su - 用户名切换用户,并且切换目录- 可以切换到用户家目录,否则保持位置不变
02exit退出当前登录账户

su 不接用户名,可以切换到 root ,但是不推荐使用,因为不安全
exit 示意图如下:





修改文件权限

序号命令作用
01chown修改拥有者
02chgrp修改组
03chmod修改权限

命令格式如下:

# 修改文件|目录的拥有者
chown 用户名 文件名|目录名
# 递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
# 递归修改文件权限
chmod -R 755 文件名|目录名
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6





远程管理常用命令





关机/重启

序号命令对应英文作用
01shutdown选项 时间 shutdown关机/重新启动

常用命令示例

# 重新启动操作系统,其中 now 表示现在
$ shutdown -r now
# 立刻关机,其中 now 表示现在
$ shutdown now
# 系统在今天的 20:25 会关机
$ shutdown 20:25
# 系统再过十分钟后自动关机
$ shutdown +10
# 取消之前指定的关机计划
$ shutdown -c
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

不指定选项和参数,默认表示 1 分钟之后 关闭电脑
远程维护服务器时,最好不要关闭系统,而应该重新启动系统





查看配置网卡信息

序 号命令对应英文作用
01ifconfigconfigure a network interface查看/配置计算机当前的网卡配置信息
02ping ip地址ping检测到目标 ip地址 的连接是否正常





ifconfig

ifconfig 可以查看/配置计算机当前的网卡配置信息

# 查看网卡配置信息
$ ifconfig
# 查看网卡对应的 IP 地址
$ ifconfig | grep inet
  • 1
  • 2
  • 3
  • 4

提示:一台计算机中有可能会有一个 物理网卡 和 多个虚拟网卡,在 Linux 中物理网卡的名字通常以 ensXX 表示
127.0.0.1 被称为 本地回环/环回地址,一般用来测试本机网卡是否正常





ping

ping 一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢

# 检测到目标主机是否连接正常
$ ping IP地址
# 检测本地网卡工作正常
$ ping 127.0.0.1
  • 1
  • 2
  • 3
  • 4

ping 的工作原理与潜水艇的声纳相似, ping 这个命令就是取自 声纳的声音
网络管理员之间也常将 ping 用作动词 —— ping 一下计算机X,看他是否开着





远程登录和赋值文件

Alt





ssh 基础(重点)

在 Linux 中 SSH 是 非常常用 的工具,通过 SSH 客户端 我们可以连接到运行了 SSH 服务器 的远程机器上
Alt
ssh的简单使用:

ssh [-p port] user@remote
  • 1
  • user 是在远程机器上的用户名,如果不指定的话默认为当前用户
  • remote 是远程机器的地址,可以是 IP/域名,或者是 后面会提到的别名
  • port 是 SSH Server 监听的端口,如果不指定,就为默认值 22

提示:

  • 使用 exit 退出当前用户的登录
  • ssh 这个终端命令只能在 Linux 或者 UNIX 系统下使用
  • 如果在 Windows 系统中,可以安装 PuTTY 或者 XShell 客户端软件即可
  • 在工作中,SSH 服务器的端口号很有可能不是 22,如果遇到这种情况就需要使用 -p 选项,指定正确的端口号,否则无法正常连接到服务器





scp

scp 就是 secure copy ,是一个在 Linux 下用来进行 远程拷贝文件 的命令
它的地址格式与 ssh 基本相同,需要注意的是,在指定端口时用的是大写的 -P 而不是小写的

# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo user@remote:Desktop
# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
选 项含义
-r若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
-P若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口

注意:
scp 这个终端命令只能在 Linux 或者 UNIX 系统下使用
如果在 Windows 系统中,可以安装 PuTTY ,使用 pscp 命令行工具或者安装 FileZilla使用 FTP 进行文件传输

本文中:前移和前为 ←,后移和后为 →





移动类

按键作用
Ctrl + a移到命令行首 (a:ahead)
Ctrl + e移到命令行尾 (e:end)
Ctrl + f按字符前移 (f:forward)
Ctrl + b按字符后移 (b:backward)
Alt + f按单词前移
Alt + b按单词后移
Ctrl + x x将光标移动到行首,再按一次则光标跳回当前位置



编辑类

按键作用
Tab自动补齐
Ctrl + i自动补齐
Ctrl + d删除光标后一个字符 delete
Ctrl + h删除光标前一个字符 backspace
Ctrl + w从光标处剪切/删除至字首
Ctrl + u从光标处剪切/删除至行首
Ctrl + k从光标处剪切/删除至行尾
Ctrl + h从光标处向前删除一个字符
Ctrl + d从光标处向后删除一个字符
Ctrl + y粘贴使用 Ctrl + u Ctrl + k Ctrl + w 剪切/删除的文本
Alt + d从光标处删除至字尾
Ctrl + t交换光标处和之前的字符
Alt + t交换光标处和之前的单词
Alt + c从光标处更改为首字母大写的单词
Alt + u从光标处更改为全部大写的单词
Alt + l从光标处更改为全部小写的单词
Ctrl + o执行当前命令,并选择上一条命令
Ctrl + _撤销操作
Ctrl + l清除屏幕 clear
ALT+Backspace删除前一个词



控制类

按键作用
Ctrl + s阻止屏幕输出
Ctrl + q允许屏幕输出
Ctrl + c终止命令
Ctrl + z挂起命令
Ctrl+d在命令行的为空的情况下可以退出终端
Ctrl+[相当于Esc键
Esc×3显示所有的支持的终端命令。

历史类

按键作用
Ctrl+p上一个使用的历史命令(p:previous)
Ctrl+n下一个使用的历史命令(n:next )
Ctrl + r逆向搜索命令历史(r:retrieve)
Ctrl + g从历史搜索模式退出
Ctrl+z将当前任务退到后台
fg回到最近退到后台的任务
Alt + .使用上一条命令的最后一个参数




一、目录操作

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">pwd				查看当前工作目录
clear 			清除屏幕
cd <span style="color:#669900">~</span>			当前用户目录
cd <span style="color:#669900">/</span>			根目录
cd <span style="color:#669900">-</span>			上一次访问的目录
cd <span style="color:#999999">.</span><span style="color:#999999">.</span>			上一级目录
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

查看目录内信息

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ll				查看当前目录下内容(LL的小写)
</code></span></span>
  • 1

创建目录

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">mkdir aaa		在当前目录下创建aaa目录,相对路径;
mkdir <span style="color:#999999">.</span>/bbb		在当前目录下创建bbb目录,相对路径;
mkdir <span style="color:#669900">/</span>ccc		在根目录下创建ccc目录,绝对路径;
</code></span></span>
  • 1
  • 2
  • 3

递归创建目录(会创建里面没有的目录文件夹)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">mkdir -p temp/nginx 
</code></span></span>
  • 1

搜索命令

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">find / -name 'b'		查询根目录下(包括子目录),名以b的目录和文件;
find / -name 'b*'		查询根目录下(包括子目录),名以b开头的目录和文件; 
</code></span></span>
  • 1
  • 2

重命名

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">mv 原先目录 文件的名称   mv tomcat001 tomcat 
</code></span></span>
  • 1

剪切命令(有目录剪切到制定目录下,没有的话剪切为指定目录)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">mv	/aaa /bbb			将根目录下的aaa目录,移动到bbb目录下,在bbb,麚也叫aaa目录;
mv	bbb usr/bbb			将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为bbb;
</code></span></span>
  • 1
  • 2

复制目录

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">cp -r /aaa /bbb			将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下的名称为aaa
cp -r /aaa /bbb/aaa		将/目录下的aa目录复制到/bbb目录下,且修改名为aaa;
</code></span></span>
  • 1
  • 2

强制式删除指定目录

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">rm -rf /bbb			强制删除/目录下的bbb目录。如果bbb目录中还有子目录,也会被强制删除,不会提示;
</code></span></span>
  • 1

删除目录

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">rm -r /bbb			普通删除。会询问你是否删除每一个文件
</code></span></span>
  • 1



二、文件操作

删除

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">rm -r a.java		删除当前目录下的a.java文件(每次回询问是否删除y:同意)
</code></span></span>
  • 1

强制删除

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">rm <span style="color:#669900">-</span>rf a<span style="color:#999999">.</span>java		强制删除当前目录下的a<span style="color:#999999">.</span>java文件
rm <span style="color:#669900">-</span>rf <span style="color:#999999">.</span>/a<span style="color:#669900">*</span>			强制删除当前目录下以a开头的所有文件;
rm <span style="color:#669900">-</span>rf <span style="color:#999999">.</span><span style="color:#5c6370">/*			强制删除当前目录下所有文件(慎用);
</span></code></span></span>
  • 1
  • 2
  • 3

创建文件

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">touch testFile
</code></span></span>
  • 1

递归删除.pyc格式的文件

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">find <span style="color:#999999">.</span> <span style="color:#669900">-</span>name <span style="color:#669900">'*.pyc'</span> <span style="color:#669900">-</span>exec rm <span style="color:#669900">-</span>rf <span style="color:#999999">{</span><span style="color:#999999">}</span> \<span style="color:#999999">;</span>
</code></span></span>
  • 1

打印当前文件夹下指定大小的文件

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">find <span style="color:#999999">.</span> <span style="color:#669900">-</span>name <span style="color:#669900">"*"</span> <span style="color:#669900">-</span>size <span style="color:#98c379">145800</span>c <span style="color:#669900">-</span>print
</code></span></span>
  • 1

递归删除指定大小的文件(145800)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">find <span style="color:#999999">.</span> <span style="color:#669900">-</span>name <span style="color:#669900">"*"</span> <span style="color:#669900">-</span>size <span style="color:#98c379">145800</span>c <span style="color:#669900">-</span>exec rm <span style="color:#669900">-</span>rf <span style="color:#999999">{</span><span style="color:#999999">}</span> \<span style="color:#999999">;</span>
</code></span></span>
  • 1

递归删除指定大小的文件,并打印出来

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">find <span style="color:#999999">.</span> <span style="color:#669900">-</span>name <span style="color:#669900">"*"</span> <span style="color:#669900">-</span>size <span style="color:#98c379">145800</span>c <span style="color:#669900">-</span>print <span style="color:#669900">-</span>exec rm <span style="color:#669900">-</span>rf <span style="color:#999999">{</span><span style="color:#999999">}</span> \<span style="color:#999999">;</span>
</code></span></span>
  • 1
  • "." 表示从当前目录开始递归查找
  • “ -name '*.exe' "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件
  • " -type f "查找的类型为文件
  • "-print" 输出查找的文件目录名
  • -size 145800c 指定文件的大小
  • -exec rm -rf {} \; 递归删除(前面查询出来的结果)



三、文件内容操作(查看日志,更改配置文件

修改文件内容

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">vim a<span style="color:#999999">.</span>java   	进入一般模式
<span style="color:#61aeee">i</span><span style="color:#999999">(</span>按键<span style="color:#999999">)</span>   		进入插入模式<span style="color:#999999">(</span>编辑模式<span style="color:#999999">)</span>
<span style="color:#61aeee">ESC</span><span style="color:#999999">(</span>按键<span style="color:#999999">)</span>  		退出
<span style="color:#669900">:</span>wq 			保存退出(shift<span style="color:#669900">+</span>:调起输入框)
<span style="color:#669900">:</span>q!			不保存退出(shift<span style="color:#669900">+</span>:调起输入框)(内容更改)
<span style="color:#669900">:</span>q				不保存退出(shift<span style="color:#669900">+</span>:调起输入框)(没有内容更改)
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

文件内容的查看

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat a<span style="color:#999999">.</span>java		查看a<span style="color:#999999">.</span>java文件的最后一页内容;
more a<span style="color:#999999">.</span>java		从第一页开始查看a<span style="color:#999999">.</span>java文件内容,按回车键一行一行进行查看,
                    按空格键一页一页进行查看,q退出;
less a<span style="color:#999999">.</span>java		从第一页开始查看a<span style="color:#999999">.</span>java文件内容,按回车键一行一行的看,
                    按空格键一页一页的看,支持使用PageDown和PageUp翻页,q退出;
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5

总结下more 和 less的区别:

  1. less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
  2. less不必读整个文件,加载速度会比more更快
  3. less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容.
  4. 由于more不能后退.

实时查看文件后几行(实时查看日志)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">tail <span style="color:#669900">-</span>f a<span style="color:#999999">.</span>java			查看a<span style="color:#999999">.</span>java文件的后<span style="color:#98c379">10</span>行内容;
</code></span></span>
  • 1

前后几行查看

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">head a<span style="color:#999999">.</span>java				查看a<span style="color:#999999">.</span>java文件的前<span style="color:#98c379">10</span>行内容;
tail <span style="color:#669900">-</span>f a<span style="color:#999999">.</span>java			查看a<span style="color:#999999">.</span>java文件的后<span style="color:#98c379">10</span>行内容;
head <span style="color:#669900">-</span>n <span style="color:#98c379">7</span> a<span style="color:#999999">.</span>java		查看a<span style="color:#999999">.</span>java文件的前<span style="color:#98c379">7</span>行内容;
tail <span style="color:#669900">-</span>n <span style="color:#98c379">7</span> a<span style="color:#999999">.</span>java		查看a<span style="color:#999999">.</span>java文件的后<span style="color:#98c379">7</span>行内容;
</code></span></span>
  • 1
  • 2
  • 3
  • 4

文件内部搜索指定的内容

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">grep under <span style="color:#98c379">123.</span>txt			在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小写敏感,显示行;
grep <span style="color:#669900">-</span>n under <span style="color:#98c379">123.</span>txt		在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小写敏感,显示行及行号;
grep <span style="color:#669900">-</span>v under <span style="color:#98c379">123.</span>txt		在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小写敏感,显示没搜索到的行;
grep <span style="color:#669900">-</span>i under <span style="color:#98c379">123.</span>txt		在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小写敏感,显示行;
grep <span style="color:#669900">-</span>ni under <span style="color:#98c379">123.</span>txt		在<span style="color:#98c379">123.</span>txt文件中搜索under字符串,大小写敏感,显示行及行号;
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5

终止当前操作

Ctrl+cCtrl+z都是中断命令,但是作用却不一样。

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ctrl<span style="color:#669900">+</span>z
ctrl<span style="color:#669900">+</span>c
</code></span></span>
  • 1
  • 2

Ctrl+Z就扮演了类似的角色,将任务中断,但是任务并没有结束,在进程中只是维持挂起的状态,用户可以使用fg/bg操作前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。
Ctrl+C也扮演类似的角色,强制中断程序的执行。

重定向功能
可以使用 > 或 < 将命令的输出的命令重定向到test.txt文件中(没有则创建一个)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">echo <span style="color:#669900">'Hello World'</span> <span style="color:#669900">></span> <span style="color:#669900">/</span>root<span style="color:#669900">/</span>test<span style="color:#999999">.</span>txt
</code></span></span>
  • 1



四、系统日志位置

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>redhat<span style="color:#669900">-</span>release		查看操作系统版本
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>message			系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>message			系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>secure				与安全相关的日志信息 
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>maillog			与邮件相关的日志信息 
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>cron				与定时任务相关的日志信息 
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>spooler			与UUCP和news设备相关的日志信息 
<span style="color:#669900">/</span><span style="color:#c678dd">var</span><span style="color:#669900">/</span>log<span style="color:#669900">/</span>boot<span style="color:#999999">.</span>log			守护进程启动和停止相关的日志消息 
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

查看某文件下的用户操作日志
到达操作的目录下,执行下面的程序:

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#999999">.</span>bash_history
</code></span></span>
  • 1



五、创建与删除软连接

1、创建软连接

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ln <span style="color:#669900">-</span>s <span style="color:#669900">/</span>usr<span style="color:#669900">/</span>local<span style="color:#669900">/</span>app <span style="color:#669900">/</span>data
</code></span></span>
  • 1

注意:创建软连接时,data目录后不加 / (加上后是查找其下一级目录);

在这里插入图片描述
2、删除软连接

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">rm <span style="color:#669900">-</span>rf <span style="color:#669900">/</span>data
</code></span></span>
  • 1

注意:取消软连接最后没有/,rm -rf 软连接。加上/是删除文件夹;

在这里插入图片描述



六、压缩和解压缩

tar
在这里插入图片描述

tar

压缩(-c)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-php">tar <span style="color:#669900">-</span>cvf start<span style="color:#669900">.</span>tar a<span style="color:#669900">.</span>java b<span style="color:#669900">.</span>java		<span style="color:#5c6370">//将当前目录下a.java、b.java打包</span>
tar <span style="color:#669900">-</span>cvf start<span style="color:#669900">.</span>tar <span style="color:#669900">.</span><span style="color:#669900">/</span><span style="color:#669900">*</span>					<span style="color:#5c6370">//将当前目录下的所欲文件打包压缩成haha.tar文件</span>

tar <span style="color:#669900">-</span>zcvf start<span style="color:#669900">.</span>tar<span style="color:#669900">.</span>gz a<span style="color:#669900">.</span>java b<span style="color:#669900">.</span>java	<span style="color:#5c6370">//将当前目录下a.java、b.java打包</span>
tar <span style="color:#669900">-</span>zcvf start<span style="color:#669900">.</span>tar<span style="color:#669900">.</span>gz <span style="color:#669900">.</span><span style="color:#669900">/</span><span style="color:#669900">*</span>				<span style="color:#5c6370">//将当前目录下的所欲文件打包压缩成haha.tar.gz文件</span>
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5

解压缩(-x)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">tar <span style="color:#669900">-</span>xvf start<span style="color:#999999">.</span>tar						<span style="color:#5c6370">//解压start.tar压缩包,到当前文件夹下;</span>
tar <span style="color:#669900">-</span>xvf start<span style="color:#999999">.</span>tar <span style="color:#669900">-</span>C usr<span style="color:#669900">/</span>local 		<span style="color:#5c6370">//(C为大写,中间无空格)</span>
										<span style="color:#5c6370">//解压start.tar压缩包,到/usr/local目录下;</span>

tar <span style="color:#669900">-</span>zxvf start<span style="color:#999999">.</span>tar<span style="color:#999999">.</span>gz					<span style="color:#5c6370">//解压start.tar.gz压缩包,到当前文件夹下;</span>
tar <span style="color:#669900">-</span>zxvf start<span style="color:#999999">.</span>tar<span style="color:#999999">.</span>gz <span style="color:#669900">-</span>C usr<span style="color:#669900">/</span>local 	<span style="color:#5c6370">//(C为大写,中间无空格)</span>
										<span style="color:#5c6370">//解压start.tar.gz压缩包,到/usr/local目录下;</span>
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

解压缩tar.xz文件

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">tar xf node<span style="color:#669900">-</span>v12<span style="color:#999999">.</span><span style="color:#98c379">18.1</span><span style="color:#669900">-</span>linux<span style="color:#669900">-</span>x64<span style="color:#999999">.</span>tar<span style="color:#999999">.</span>xz
</code></span></span>
  • 1

unzip/zip

压缩(zip)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">zip lib<span style="color:#999999">.</span>zip tomcat<span style="color:#999999">.</span>jar							<span style="color:#5c6370">//将单个文件压缩(lib.zip)</span>
zip <span style="color:#669900">-</span>r lib<span style="color:#999999">.</span>zip lib<span style="color:#669900">/</span>								<span style="color:#5c6370">//将目录进行压缩(lib.zip)</span>
zip <span style="color:#669900">-</span>r lib<span style="color:#999999">.</span>zip tomcat<span style="color:#669900">-</span>embed<span style="color:#999999">.</span>jar xml<span style="color:#669900">-</span>aps<span style="color:#999999">.</span>jar		<span style="color:#5c6370">//将多个文件压缩为zip文件(lib.zip)	</span>
</code></span></span>
  • 1
  • 2
  • 3

解压缩(unzip)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">unzip file1<span style="color:#999999">.</span>zip  								<span style="color:#5c6370">//解压一个zip格式压缩包</span>
unzip <span style="color:#669900">-</span>d <span style="color:#669900">/</span>usr<span style="color:#669900">/</span>app<span style="color:#669900">/</span>com<span style="color:#999999">.</span>lydms<span style="color:#999999">.</span>english<span style="color:#999999">.</span>zip			<span style="color:#5c6370">//将`english.zip`包,解压到指定目录下`/usr/app/`</span>
</code></span></span>
  • 1
  • 2



七、Linux下文件的详细信息

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties"> R:Read  w:write  x: execute执行
-rw-r--r-- 1 root root  34942 Jan 19  2018 bootstrap.jar
前三位代表当前用户对文件权限:可以读/可以写/不能执行
中间三位代表当前组的其他用户对当前文件的操作权限:可以读/不能写/不能执行
后三位其他用户对当前文件权限:可以读/不能写/不能执行
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5

文件

更改文件的权限

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">chmod u<span style="color:#669900">+</span>x web<span style="color:#999999">.</span>xml (<span style="color:#669900">--</span><span style="color:#669900">-</span>x<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">--</span>)		为文件拥有者(user)添加执行权限;
chmod g<span style="color:#669900">+</span>x web<span style="color:#999999">.</span>xml (<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">--</span>x<span style="color:#669900">--</span><span style="color:#669900">-</span>)		为文件拥有者所在组(group)添加执行权限;
chmod <span style="color:#98c379">111</span> web<span style="color:#999999">.</span>xml  (<span style="color:#669900">--</span><span style="color:#669900">-</span>x<span style="color:#669900">--</span>x<span style="color:#669900">--</span>x)	为所有用户分类,添加可执行权限;
chmod <span style="color:#98c379">222</span> web<span style="color:#999999">.</span>xml (<span style="color:#669900">--</span>w<span style="color:#669900">--</span>w<span style="color:#669900">--</span>w<span style="color:#669900">-</span>)		为所有用户分类,添加可写入权限;	
chmod <span style="color:#98c379">444</span> web<span style="color:#999999">.</span>xml (<span style="color:#669900">-</span>r<span style="color:#669900">--</span>r<span style="color:#669900">--</span>r<span style="color:#669900">--</span>)		为所有用户分类,添加可读取权限;
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5



八、常用的docker容器的命令:

1、下载镜像
Linux服务器下载安装包镜像命令

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">wget https<span style="color:#669900">:</span><span style="color:#669900">/</span><span style="color:#669900">/</span>mirrors<span style="color:#999999">.</span>huaweicloud<span style="color:#999999">.</span>com<span style="color:#669900">/</span>elasticsearch<span style="color:#669900">/</span><span style="color:#98c379">7.8</span><span style="color:#98c379">.0</span><span style="color:#669900">/</span>elasticsearch<span style="color:#669900">-</span><span style="color:#98c379">7.8</span><span style="color:#98c379">.0</span><span style="color:#669900">-</span>windows<span style="color:#669900">-</span>x86_64<span style="color:#999999">.</span>zip
</code></span></span>
  • 1

华为开源镜像站

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">https<span style="color:#669900">:</span><span style="color:#669900">/</span><span style="color:#669900">/</span>mirrors<span style="color:#999999">.</span>huaweicloud<span style="color:#999999">.</span>com<span style="color:#669900">/</span>
</code></span></span>
  • 1

2、常用命令

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">#<span style="color:#98c379">1</span>、查看docker中下载好的镜像:
docker images
 #<span style="color:#98c379">2</span>、查询需要的容器名称:
docker search mysql
#<span style="color:#98c379">3</span>、将需要的docker容器下载运行到本地<span style="color:#999999">(</span>名称、端口号、msyql密码、ID<span style="color:#999999">)</span>:
docker run <span style="color:#669900">-</span>di <span style="color:#669900">--</span>name<span style="color:#669900">=</span>first <span style="color:#669900">-</span>p <span style="color:#98c379">3306</span><span style="color:#669900">:</span><span style="color:#98c379">3306</span> <span style="color:#669900">-</span>e MYSQL_ROOT_PASSWORD<span style="color:#669900">=</span>root <span style="color:#98c379">26d</span><span style="color:#98c379">26d</span>sfsd31a
#<span style="color:#98c379">4</span>、查看运行的docker容器:
docker ps
#<span style="color:#98c379">5</span>、查看所有的docker容器(包括未运行的):
docker ps <span style="color:#669900">-</span>a
#<span style="color:#98c379">6</span>、停止当前运行的docker容器:
docker stop first
#<span style="color:#98c379">7</span>、启动docker容器:
docker start first
#<span style="color:#98c379">8</span>、重启docker容器:
docker restart first
#<span style="color:#98c379">9</span>、删除docker容器:
docker rm first
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18



九、运维常用命令



1、查看服务器端口号是否可用

查看服务器是否可用

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ping <span style="color:#98c379">49.32</span><span style="color:#98c379">.587</span><span style="color:#98c379">.164</span>
</code></span></span>
  • 1

查看服务器指定端口是否可用

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">telnet <span style="color:#98c379">49.32</span><span style="color:#98c379">.587</span><span style="color:#98c379">.164</span> <span style="color:#98c379">8093</span>
</code></span></span>
  • 1

Telnet安装

这是我写过的一个Linux安装Telnet的文章。

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">https<span style="color:#669900">:</span><span style="color:#669900">/</span><span style="color:#669900">/</span>blog<span style="color:#999999">.</span>csdn<span style="color:#999999">.</span>net<span style="color:#669900">/</span>lydms<span style="color:#669900">/</span>article<span style="color:#669900">/</span>details<span style="color:#669900">/</span><span style="color:#98c379">113698856</span>
</code></span></span>
  • 1

1、shutdown(关闭计算机)

shutdown是最常用也是最安全的关机和重启命令,它会在关机之前调用fsck检查磁盘,其中-h和-r是最常用的参数:

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java"><span style="color:#669900">-</span>h:停止系统服务并关机  
<span style="color:#669900">-</span>r: 停止系统服务后重启  
</code></span></span>
  • 1
  • 2

案例:

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">shutdown <span style="color:#669900">-</span>h now  <span style="color:#669900">--</span>立即关机  
shutdown <span style="color:#669900">-</span>h <span style="color:#98c379">10</span><span style="color:#669900">:</span><span style="color:#98c379">53</span>  <span style="color:#669900">--</span>到<span style="color:#98c379">10</span><span style="color:#669900">:</span><span style="color:#98c379">53</span>关机,如果该时间小于当前时间,则到隔天  
shutdown <span style="color:#669900">-</span>h <span style="color:#669900">+</span><span style="color:#98c379">10</span>  <span style="color:#669900">--</span><span style="color:#98c379">10</span>分钟后自动关机  
shutdown <span style="color:#669900">-</span>r now  <span style="color:#669900">--</span>立即重启  
shutdown <span style="color:#669900">-</span>r <span style="color:#669900">+</span><span style="color:#98c379">30</span> <span style="color:#669900">'The System Will Reboot in 30 Mins'</span>   <span style="color:#669900">--</span><span style="color:#98c379">30</span>分钟后重启并并发送通知给其它在线用户  
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5

2、查看处于各种连接状态数量(ESTABLISHEDCLOSE_WAITTIME_WAIT)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>n <span style="color:#669900">|</span> awk <span style="color:#669900">'/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'</span>
</code></span></span>
  • 1

在这里插入图片描述
查看处于ESTABLISHED状态连接

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>nt <span style="color:#669900">|</span> awk <span style="color:#669900">'{if($NF=="ESTABLISHED"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'</span>
</code></span></span>
  • 1

查看处于CLOSE_WAIT状态连接

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>nt <span style="color:#669900">|</span> awk <span style="color:#669900">'{if($NF=="CLOSE_WAIT"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'</span>
</code></span></span>
  • 1

查看处于TIME_WAIT状态连接

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>nt <span style="color:#669900">|</span> awk <span style="color:#669900">'{if($NF=="TIME_WAIT"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'</span>
</code></span></span>
  • 1

3、ping命令
对 www.lydms.com 发送 4 个 ping 包, 检查与其是否联通

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ping <span style="color:#669900">-</span>c <span style="color:#98c379">4</span> www<span style="color:#999999">.</span>lydms<span style="color:#999999">.</span>com
</code></span></span>
  • 1

4、netstat 命令
netstat 命令用于显示各种网络相关信息,如网络连接, 路由表, 接口状态等等;
列出所有处于监听状态的tcp端口:

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>lt
</code></span></span>
  • 1

查看所有的端口信息, 包括 PID 和进程名称

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>tulpn
</code></span></span>
  • 1

5、查看当前端口号占用情况
1.用于查看某一端口的占用情况

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">lsof <span style="color:#669900">-</span>i<span style="color:#669900">:</span><span style="color:#98c379">8080</span>
</code></span></span>
  • 1

2.显示tcp,udp的端口和进程等相关情况

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>tunlp
</code></span></span>
  • 1

3.指定端口号的进程情况

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>tunlp<span style="color:#669900">|</span>grep <span style="color:#98c379">8080</span>
</code></span></span>
  • 1

4.查看PID进程信息

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps <span style="color:#669900">-</span>aux <span style="color:#669900">|</span>grep <span style="color:#98c379">28990</span>
</code></span></span>
  • 1

根据PID,查看JVM中各线程信息('0x9eb’为nid值)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">jstack <span style="color:#98c379">2246</span><span style="color:#669900">|</span>grep <span style="color:#669900">'0x9eb'</span> <span style="color:#669900">-</span>A <span style="color:#98c379">50</span>
</code></span></span>
  • 1

6、ps 命令
过滤得到当前系统中的 ssh 进程信息

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps aux <span style="color:#669900">|</span> grep <span style="color:#669900">'ssh'</span>
</code></span></span>
  • 1

7、管道命令
简单来说, Linux 中管道的作用是将上一个命令的输出作为下一个命令的输入, 像 pipe 一样将各个命令串联起来执行, 管道的操作符是 |
管道命令查看当前运行的程序中,名称为java的程序

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps <span style="color:#669900">-</span>ef<span style="color:#669900">|</span>grep java
</code></span></span>
  • 1

查看/etc/passwd文件中的root内容

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>passwd <span style="color:#669900">|</span> grep <span style="color:#669900">'root'</span>
</code></span></span>
  • 1

查看当前系统的ip连接(Windows和Linux通用)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>an
</code></span></span>
  • 1

将sh test.sh任务放到后台,并将打印的日志输出到nohup.out文件中,终端不再能够接收任何输入(标准输入)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">nohup sh test<span style="color:#999999">.</span>sh  <span style="color:#669900">&</span>
</code></span></span>
  • 1

将sh test.sh任务放到后台,并将打印的日志输出到nohup.out文件中,终端能够接收任何输入

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">nohup sh test<span style="color:#999999">.</span>sh  <span style="color:#669900">&</span>
</code></span></span>
  • 1

8、添加Host地址
打开配置文件

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">vim <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>hosts
</code></span></span>
  • 1

在打开的文件中添加

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java"><span style="color:#98c379">49.235</span><span style="color:#98c379">.32</span><span style="color:#98c379">.164</span> www<span style="color:#999999">.</span>lydms<span style="color:#999999">.</span>com
</code></span></span>
  • 1

保存文件后,重启网络

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java"><span style="color:#669900">/</span>etc<span style="color:#669900">/</span>init<span style="color:#999999">.</span>d<span style="color:#669900">/</span>network restart
</code></span></span>
  • 1

重新加载成功:
在这里插入图片描述



十、yum常用命令

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">yum install iptables<span style="color:#669900">-</span>services		下载并安装iptables
yum list					列出当前系统中安装的所有包
yum search package_name		在rpm仓库中搜寻软件包
yum update package_name<span style="color:#999999">.</span>rpm		更新当前系统中所有安装的rpm包
yum update package_name		更新一个rpm包
yum remove package_name		删除一个rpm包
yum clean all				删除所有缓存的包和头文件
</code></span></span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7



十一、其他命令

查看历史使用命令

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-yml">history
</code></span></span>
  • 1

过滤与es相关命令

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-yml">history <span style="color:#999999">|</span> grep es
</code></span></span>
  • 1

查看占用资源

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps <span style="color:#669900">-</span>au		占用的资源是从进程启动开始,计算的平均占用资源,比如cpu等
top			实时占用的资源;
</code></span></span>
  • 1
  • 2

查看当前目录所占存储

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">du <span style="color:#669900">-</span>lh			查看当前文件下各文件夹占用存储空间
du <span style="color:#669900">-</span>sh			查看当前文件夹所占存储空间
du <span style="color:#669900">--</span>max<span style="color:#669900">-</span>depth<span style="color:#669900">=</span><span style="color:#669900"><</span>目录层数<span style="color:#669900">></span> 	超过指定层数的目录后,予以忽略。
du <span style="color:#669900">--</span>max<span style="color:#669900">-</span>depth<span style="color:#669900">=</span><span style="color:#98c379">1</span> 			只查看当前目录下文件占用的存储空间
</code></span></span>
  • 1
  • 2
  • 3
  • 4

管道命令:
根据项目查看进程,更加PID查看项目,以及项目路径

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">ps <span style="color:#669900">-</span>ef 						查看所有的进程
ps <span style="color:#669900">-</span>ef <span style="color:#669900">|</span> grep mysql			查看mysql相关的进程
</code></span></span>
  • 1
  • 2

通过进程PID查看所占用的端口号

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">netstat <span style="color:#669900">-</span>nap <span style="color:#669900">|</span>grep 进程<span style="color:#61aeee">ID</span><span style="color:#999999">(</span>PID<span style="color:#999999">)</span>
</code></span></span>
  • 1

查看Linux下系统存储使用率

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">df <span style="color:#669900">-</span>h			查看系统硬盘使用情况
</code></span></span>
  • 1

杀死进程(根据PID)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">kill <span style="color:#669900">-</span><span style="color:#98c379">9</span> <span style="color:#98c379">2630</span>		进程pid
</code></span></span>
  • 1

关闭防火墙

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">service iptables stop      临时关闭防火墙
chkconfig iptables off     防火墙开启不启动
service iptables status    查看防火墙状态
</code></span></span>
  • 1
  • 2
  • 3

开机启动选项

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">msconfig					查看开机启动选项
chkconfig					查看开机启动服务列表
</code></span></span>
  • 1
  • 2

查看MySQL服务的程序的状态

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-properties">service mysql start        开启MySQL    
service mysql status       查看MySQL的状态    
service mysql stop         关闭MySQL    
</code></span></span>
  • 1
  • 2
  • 3



十二、Linux内核优化

打开配置文件

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">vim <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>sysctl<span style="color:#999999">.</span>conf
</code></span></span>
  • 1

加载新的配置(需开启防火墙iptables,否则会报错)

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">sysctl <span style="color:#669900">-</span>p
</code></span></span>
  • 1

收藏的详情地址

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-javav">https://www.cnblogs.com/lldsn/p/10489593.html
</code></span></span>
  • 1



十三、用户权限操作



1、添加用户

添加用户sum:

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">useradd –d <span style="color:#669900">/</span>usr<span style="color:#669900">/</span>sum <span style="color:#669900">-</span>m sum
</code></span></span>
  • 1

关于useradd的某些参数:

-u: 指定 UID,这个 UID 必须是大于等于500,并没有其他用户占用的 UID

-g: 指定默认组,可以是 GID 或者 GROUPNAME,同样也必须真实存在

-G: 指定额外组

-c: 指定用户的注释信息

-d: 指定用户的家目录

已创建的用户sum设置密码

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">passwd sum
</code></span></span>
  • 1

用户添加root权限

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">visudo
</code></span></span>
  • 1

找到root用户权限位置
添加与root用户相同权限

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">## Allow root <span style="color:#c678dd">to</span> run any commands anywhere
root    ALL<span style="color:#669900">=</span><span style="color:#999999">(</span>ALL<span style="color:#999999">)</span>       ALL
eses    ALL<span style="color:#669900">=</span><span style="color:#999999">(</span>ALL<span style="color:#999999">)</span>       ALL
</code></span></span>
  • 1
  • 2
  • 3

在这里插入图片描述

新建的用户在面显示

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>passwd
</code></span></span>
  • 1

反反复复

删除用户sum

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">userdel sum
</code></span></span>
  • 1

删除用户文件夹

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">rm <span style="color:#669900">-</span>rf <span style="color:#669900">/</span>usr<span style="color:#669900">/</span>sum
</code></span></span>
  • 1

切换下刚才添加的用户

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">su sum
</code></span></span>
  • 1

回到root用户

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">exit
</code></span></span>
  • 1



2、添加组

添加用户组

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">groupadd groupname
</code></span></span>
  • 1

删除用户组

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">groupdel groupname
</code></span></span>
  • 1

可以看到自己的分组和分组id

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">cat <span style="color:#669900">/</span>etc<span style="color:#669900">/</span>group
</code></span></span>
  • 1

sum: x:1000:1000:: /usr/sum :/bin/bash
sum: x:0:1000:: /usr/sum :/bin/bash



十四、TOP

实时占用的资源:

<span style="color:#000000"><span style="background-color:#282c34"><code class="language-java">top
</code></span></span>
  • 1

在这里插入图片描述

top命令执行结果分为两个区域:统计信息区进程信息区



1、统计信息区

TOP:任务队列信息,与uptime命令执行结果相同.

  • 15:33:39:系统时间
  • up 5:40:主机已运行时间
  • 2 users:用户连接数(不是用户数,who命令)
  • load average: 1.09, 1.04, 0.98:系统平均负载,统计最近1,5,15分钟的系统平均负载

Tasks:进程信息

  • 123 total:进程总数
  • 3 running:正在运行的进程数
  • 120 sleeping:睡眠的进程数
  • 0 stopped:停止的进程数
  • 0 zombie:僵尸进程数

%CPU(s):CPU信息(当有多个CPU时,这些内容可能会超过两行)

  • 42.1 us:用户空间所占CPU百分比
  • 2.0 sy:内核空间占用CPU百分比
  • 0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
  • 49.2 id:空闲CPU百分比
  • 0.0 wa:等待输入输出的CPU时间百分比
  • 6.0 hi:硬件CPU终端占用百分比
  • 0.7 si:软中断占用百分比
  • 0.0 st:虚拟机占用百分比

KiB Mem:内存信息(与第五行的信息类似与free命令类似)

  • 3780.9 total:物理内存总量
  • 727.4 free:已使用的内存总量
  • 668.8 used:空闲的内存总量(free + userd = total)
  • 2384.7 buff/cache:用作内核缓存的内存量

KiB:swap信息

  • 2048.0 total:交换分区总量
  • 2046.0 free:已使用的交换分区总量
  • 2.0 used:空闲交换分区总量
  • 859.6 avail:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。



2、进程信息区

  • PID:进程id

  • USER:进程所有者的用户名

  • PR:优先级

  • NI:nice值。负值表示高优先级,正值表示低优先级

  • RES:进程使用的、未被换出的物理内存的大小

  • %CPU:上次更新到现在的CPU时间占用百分比

  • %MEM:进程使用的物理内存百分比

  • TIME+:进程所使用的CPU时间总计,单位1/100秒

  • COMMAND:命令名/行

  • PPID:父进程id

  • RUSER:Real user name(看了好多,都是这样写,也不知道和user有什么区别,欢迎补充此处)

  • UID:进程所有者的id

  • VIRT:进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

  • GROUP:进程所有者的组名

  • TTY:启动进程的终端名。不是从终端启动的进程则显示为?

  • NI:nice值。负值表示高优先级,正值表示低优先级

  • P:最后使用的CPU,仅在多CPU环境下有意义

  • TIME:进程使用的CPU时间总计,单位秒

  • SWAP:进程使用的虚拟内存中被被换出的大小

  • CODE:可执行代码占用的物理内存大小

  • DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小

  • SHR:共享内存大小

  • nFLT:页面错误次数

  • nDRT:最后一次写入到现在,被修改过的页面数

  • S:进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)

  • WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名

  • Flags:任务标志

Alt

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值