command [-option] [parameter]
说明:
command
:命令名[options]
:选项,可用来对命令进行控制,也可以省略[parameter]
:传给命令的参数,可以是0个、一个或多个
[]
代表可选- 命令名、选项、参数之间有空格进行分割
Linux命令使用技巧
Tab
键自动补全- 连续两次
Tab
键,给出操作提示- 使用上下箭头快速调出曾经使用过的命令
- 使用
clear
命令或Ctrl+l
实现清屏
ctrl + c # 强制停止
ctrl + d # 退出或登出
history # 历史命令搜索
!命令前缀 # 自动执行上一次匹配前缀的命令
ctrl + r # 输入内容匹配历史命令
ctrl + a # 跳到命令开头
ctrl + e # 跳到命令结尾
ctrl + 键盘左键 # 向左跳一个单词
ctrl + 键盘右键 # 向右跳一个单词
ctrl + l # 清屏
clear # 清屏
关机指令为:shutdown ;
sync # 将数据由内存同步到硬盘中。
shutdown # 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 # 这个命令告诉大家,计算机将在10分钟后关机
shutdown –h now # 立马关机
shutdown –h 20:25 # 系统会在今天20:25关机
shutdown –h +10 # 十分钟后关机
shutdown –r now # 系统立马重启
shutdown –r +10 # 系统十分钟后重启
reboot # 就是重启,等同于 shutdown –r now
halt # 关闭系统,等同于shutdown –h now 和 poweroff
# 最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
命令 | 对应英文 | 作用 |
---|---|---|
ls |
list | 查看当前目录下的内容 |
pwd |
print work directory | 查看当前所在目录 |
cd [目录名] |
change directory | 切换目录 |
touch [文件名] |
touch | 若文件不存在则新建文件 |
mkdir [目录名] |
make directory | 创建目录 |
rm [文件名] |
remove | 删除指定文件 |
clear |
clear | 清屏 |
pwd:
① 作用:查看当前所在目录
pwd # 查看当前工作目录
cd:
① 作用:切换当前工作目录,即进入指定目录
② 语法:cd [目录名]
cd # 当前用户目录
cd ~ # 当前用户目录
cd / # 根目录
cd - # 上一次访问的目录
cd .. # 上一级目录
cd ../.. #返回上两级目录
ls:
① 作用:显示指定目录下的内容
② 语法:ls [-a -l -h] [目录名]
说明:
-a
:显示所有文件及目录(.
开头的隐藏文件也会列出)-l
:除文件名称外,同时将文件形态(d
表示目录,-
表示文件)、权限、拥有者、文件大小等信息详细列出-h
:以人性化的方式显示文件大小(与-l
搭配使用)
ls # 列出当前目录文件的文件名(不含隐藏文件)
ls -a # 列出当前目录文件的文件名(含隐藏文件)
ls -l # 列出文件详情
ls -la # 列出文件详情(含隐藏文件)
ls -lh # 以人性化的方式显示文件大小
ls /etc # 列出指定目录 /etc 目录文件的文件名
mkdir:
① 作用:创建目录
② 语法:mkdir [-p] 目录名
说明:
-p
:选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
mkdir aaa # 在当前目录下创建aaa目录,相对路径
mkdir ./bbb # 在当前目录下创建bbb目录,相对路径
mkdir /ccc # 在根目录下创建ccc目录,绝对路径
mkdir -p ddd/eee # 递归创建目录(会创建里面没有的目录文件夹)
touch:
① 作用:修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件
② 语法:touch [-a -m] 文件名
说明:
-a
:更改文件的访问时间为当前时间-m
:更改文件的修改时间为当前时间
touch aaa # 若aaa目录不存在则新建目录
touch a.txt # 创建a.txt文件
touch -a a.txt # 更改文件的访问时间为当前时间
touch -m a.txt # 更改文件的修改时间为当前时间
which:
① 作用:查看所使用的一系列的程序文件存放在哪里
② 语法:which 要查找的命令
which cd # 查看 cd 命令程序文件存放在哪里
which pwd # 查看 pwdd 命令程序文件存放在哪里
find:
① 作用:搜索指定文件
② 语法:find 起始路径 -option 参数
说明:
[-option]
-name
:后面指定搜索的文件名称-type
:指定搜索的文件类型:d
目录文件,b
块设备,c
字符设备,l
符号链接-size
:指定文件大小:n(单位k)-empty
:只搜索空的文件或空目录-ctime
:指定搜索创建时间在n小时前创建的文件
find 命令支持通配符
*
,用来做模糊匹配
find 命令 - 按文件大小查找
- 语法:
find 起始路径 -size [+-]n[kMG]
- +、-表示大于、小于
- n 表示大小数字
- kMG为大小单位,k(小写)表示 kb,M表示MB,G表示GB
find . -name "*.java" # 在当前目录及其子目录下查找.java结尾文件
find /aaa -name "*.java" # 在/aaa目录及其子目录下查找.java结尾文件
find . -type d -empty # 搜索当前目录下的空目录
find . -ctime 1 # 搜索当前目录下,1小时前创建的文件
find . -size -10k # 查找当前目录下小于 10kb 的文件
find / -size +100M # 查找大于 100MB 的文件
find / -size +1G # 查找大于 1GB 的文件
grep:
① 作用:从文件中通过关键字过滤文件行
② 语法:grep [-n] 关键字 文件路径
说明:
-n
:可选,在结果中显示匹配的行的行号文件路径
:必填,要过滤内容的文件路径,可作为管道符输入
grep hello test.txt # 在当前目录的 test.txt 过滤包含 hello 的行
grep -n hello test.txt # 在当前目录的 test.txt 过滤包含 hello 的行并显示行号
wc:
① 作用:统计文件的行数、单词数量等
② 语法:wc [-c -m -l -w] 文件路径
说明:
-c
:可选,统计 bytes 数量-m
:可选,统计 字符 数量-l
:可选,统计 行数-w
:可选,统计 单词 数量文件路径
:必填,被统计的文件,可作为管道符输入
- 不添加可选项时,会显示以下内容:
行数 单词数量 当前文件字节数量 文件名
管道符:
① 作用:将管道符左边命令的结果,作为右边命令的内容源
② 语法:|
# 将 cat test.txt 的输出结果(文件内容)作为 grep 的内容源(被过滤文件)
cat test.txt | grep hello
# 将 cat test.txt 的输出结果(文件内容)作为 wc 的内容源入(被统计文件)
cat test.txt | wc
# 从 test.txt 中找到既包含 hello 又包含 tyt 的行
cat test.txt | grep hello | grep tyt
# 查看 cd 程序文件详情
ls -l /usr/bin | grep cd
# 统计 /usr/bin 目录下文件数量
ls -l /usr/bin | wc -l
echo:
① 作用:在命令行内输出指定内容
② 语法:echo 输出的内容
说明:
- 带有空格或
\
等特殊符号,可使用双引号包围- 反引号 ` :被 反引号包围的内容,会被作为命令执行
# 命令行输出 hello world
echo hello world
# 执行 ls 命令
echo `ls`
重定向符:
>
与>>
>
:将左侧命令结果,覆盖追加到符号右侧指定的文件中>>
:将左侧命令结果,追加到符号右侧指定的文件中
# 向 test.txt 写入 hello
echo hello > test.txt
# 向 test.txt 追加 world
echo world >> test.txt
cat:
① 作用:用于显示全部文件内容
② 语法:cat [-n] 文件名
说明:
-n
:选项可选,对输出内容进行行数编号
cat /etc/profile # 查看 /etc 目录下的 profile 文件内容
cat -n /etc/profile # 由 1 开始对输出内容进行行数编号
cat -A /etc/profile # 查看 /etc 目录下的 profile 文件内容(含不可见字符)
more:
① 作用:以分页的形式显示文件内容
② 语法:more 文件名
③ 操作说明
回车键
:向下滚动一行空格键
:向下滚动一屏b
:返回上一屏q
或者Ctrl + c
:退出 more
more /etc/profile # 以分页形式显示 /etc 目录下的 profile 文件内容
tail:
① 作用:查看文件末尾的内容,跟踪文件的最新更改
② 语法:tail [-f -num] 文件名
说明:
-f
:选项可选,表示持续跟踪-num
:查看尾部多少行,默认 10 行
tail /etc/profile # 显示 /etc 目录下的 profile 文件末尾10行的内容
tail -20 /etc/profile # 显示 /etc 目录下的 profile 文件末尾20行的内容
tail -f /etc/profile # 动态读取 /etc 目录下的 profile 文件末尾内容并显示
rmdir:
① 作用:删除空目录
② 语法:rmdir [-p] dirName
说明:
-p
:选项可选,递归删除目录
rm:
① 作用:删除文件或目录
② 语法:rm [-rf] name
说明:
-r
:选项可选,删除文件夹-f
:选项可选,强制删除(不会弹出提示确认信息)
rm 命令支持通配符
*
,用来做模糊匹配
- 符号
*
表示通配符,即匹配内容(包含空),示例:test*
,表示匹配任何以test开头的内容*test
,表示匹配任何以test结尾的内容*test*
,表示匹配任何包含test的内容
rmdir aaa # 删除名为aaa的空目录
rmdir -p aaa/bbb # 删除aaa目录下的bbb空子目录,若bbb删除后aaa变为空目录,则aaa也被删除
rmdir aaa* # 删除名称以aaa*开始的空目录
rm -r aaa/ # 删除aaa目录以及目录下的所有文件,删除前需确认
rm -rf aaa/ # 强制删除aaa目录以及目录下的所有文件,无需确认
rm -rf a.txt # 强制删除a.txt文件,无需确认
rm -rf ./a* # 强制删除当前目录下以a开头的所有文件
rm -rf ./* # 强制删除当前目录下所有文件(慎用)
cp:
① 作用:用于赋复制文件或目录
② 语法:cp [-r] source dest
说明:
-r
:选项可选,用于复制文件夹
mv:
① 作用:为文件或目录改名、或将文件或目录移动到其他位置
② 语法:mv source dest
cp a.txt aaa # 将当前目录下的a.txt复制到aaa目录
cp a.txt ./b.txt # 将a.txt复制到当前目录,并改名为b.txt
cp -r aaa/ ./bbb/ # 将aaa目录以及目录下的所有文件全部复制到bbb目录下
cp -r aaa/* ./bbb/ # 将aaa目录下的所有文件全部复制到bbb目录下
mv a.txt b.txt # 将a.txt改名为b.txt
mv a.txt bbb/ # 将a.txt移动到bbb目录中
mv a.txt bbb/b.txt # 将a.txt移动到bbb目录中并改名为b.txt
mv aaa/ bbb/ # 如果bbb目录不存在,则将aaa目录改名为bbb;若存在,则将aaa目录移动到bbb目录
mv aaa/* bbb/ # 将aaa目录中所有文件移动至bbb目录
ls:
① 作用:将文件、文件夹链接到其他位置,类似 windoms 系统中的《快捷方式》
② 语法:ls -s 被链接的文件或文件夹 链接目的地
# 将 /etc 下的 yum.conf 软连接到 /tyt 目录下
ls -s /etc/yum.conf /tyt/yum.conf
# 将 /etc 下的 yum 软连接到 /tyt 目录下
ls -s /etc/yum /tyt/yum
tar:
① 作用:对文件进行打包、解包、压缩、解压
② 语法:tar [-c -v -x -f -z -C] fileName [files]
说明:
-c
:压缩模式,创建压缩文件-v
:显示压缩、解压的执行过程,用于查看进度-x
:解压模式-f
:指定要创建或需要解压的文件,-f
选项必须在所有选项中处于最后一个位置-z
:gzip模式,不使用-z
则代表tarball格式-C
:选择解压的目的地,用于解压模式
注:
- 包文件后缀为
.tar
表示只是完成了打包并没有压缩- 包文件后缀为
.tar.gz
表示打包的同时还进行了压缩-z
选项如果使用的话,一般处于选项第一个-f
选项,必须在选项位最后一个-C
选项单独使用,和解压所需的其他参数分开
以下演示为 tar 的常用组合
# 打包
# 将 1.txt, 2.txt 压缩到 test.tar 文件内
tar -cvf test.tar 1.txt 2.txt
# 将aaa目录以及目录下所有文件打包,打包名为aaa.tar
tar -cvf aaa.tar aaa
# 将当前目录下所有文件打包并压缩,打包后文件名为aaa.tar.gz,使用 gzip 模式
tar -zcvf aaa.tar.gz ./*
#解包
# 将aaa.tar文件进行解包,并将解包后的文件放在当前目录
tar -xvf aaa.tar
# 将aaa.tar.gz文件进行解压,并将解压后的文件放在当前目录,使用 gzip 模式
tar -zxvf aaa.tar.gz
# 将aaa.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录
tar -zxvf aaa.tar.gz -C /usr/local
zip:
① 作用:压缩文件为 zip 压缩包
② 语法:zip [-r] fileName [files]
说明:
-r
:被压缩的包含文件夹的是够吗,需要使用-r
选项,与rm
、cp
等命令的-r
效果一致
# 将 1.txt,2.txt 压缩到 test.zip
zip test.zip 1.txt 2.txt
# 将 f1, f2 两个文件夹与 1.txt 文件,压缩到 test.zip
zip -r test.zip f1 f2 1.txt
unzip:
① 作用:解压 zip 压缩包
② 语法:unzip [-d] fileName
说明:
-d
:指定要解压的位置,同tar
的-C
选项
# 将 test.zip 解压到当前目录
unzip test.zip
# 将 test.zip 解压到 /usr/local 目录
unzip test.zip -d /usr/local
vi:
① 作用:vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows的记事本
② 语法:vi 文件名
③ 说明:
- vim是从vi发展来的一个功能更加强大的文本编辑工具,在编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以在实际开发中vim更加常用
- 要使用vim命令,需要我们自己安装。可使用命令完成
yum install vim
安装
vim:
① 作用:对文件内容进行编辑,vim其实就是一个文件编辑器
② 语法:vim 文件名
③ 说明:
- 在使用vim命令编辑文件时,如果指定的文件存在则直接打开文件;若不存在则新建文件。
- vim在进行文本编辑时共分为三种模式,分别是命令模式(Command mode)、插入模式(Insert mode)、底行模式(Last line mode)。三种模式之间可以互相切换
1. 命令模式
- 命令模式下可以查看文件内容、移动光标(上下左右箭头、
gg
【快速移动至文件头】、G
【快速移动至文件末尾】)- 通过vim命令打开文件后,默认进入命令模式
- 另外两种模式需要首先进入命令模式,才能进入彼此
2. 插入模式
- 插入模式下可以对文件内容进行编辑
- 在命令模式下按下【
i
,a
,o
】任意一个,可以进入插入模式。进入后,在下方会有insert
字样- 在插入模式下按下
ESC
键,回到命令模式
3. 底行模式
- 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
- 在命令模式下按下【
:
,/
】任意一个,可以进入底行模式- 通过
/
方式进入底行模式后,可以对文件内容进行查找- 通过
:
方式进入底行模式,可以输入wq
(保存并退出)、q!
(不保存退出)、set nu
(显示行号)、q
(仅退出)、w
(仅保存)、、set paste
(设置粘贴模式)
vim +10 a.txt # 打开a.txt文件并跳到第10行
vim -R /etc/passwd # 以只读模式打开文件
su:
① 作用:切换系统账户
② 语法:su [-] [用户名]
说明:
-
:符号可选,表示是否在切换用户后加载环境变量用户名
:参数可选,表示要切换的用户,缺省表示切换到 root
- 切换用户后,可通过 exit 命令退回到上一个用户
- 使用普通用户,切换到其他用户需要输入密码
- 使用 root 用户切换到其他用户,无需密码,可以直接切换
#切换到 root 用户
su - root
su -
# 切换到 tangyt 用户
su - tangyt
sudo:
① 作用:为普通的命令授权,临时以 root 身份执行
② 语法:sudo 其他命令
- 在其他命令 之前,带上
sudo
,即可为这一条命令临时赋予 root 授权- 并不是所有用户都有权利使用
sudo
,我们需要为普通用户配置sudo
认证
为普通用户配置 sudo 认证
visudo
命令,会自动通过 vi 编辑器打开:/etc/sudoers用户名 ALL=(ALL) NOPASSWD:ALL
# 其中 NOPASSWD:ALL 表示使用 sudo 命令无需输入密码
以下命令需要 root 用户执行
groupadd 用户组名
groupdel 用户组名
以下命令需要 root 用户执行
useradd [-g -d] 用户名
说明:
-g
:指定用户的组,若不指定,会创建以用户名命令的组并自动加入, 指定 -g 需要组已经存在-d
:指定用户 HOME 路径,不指定,HOME 目录默认在:/home/root
# 创建 test 用户,不指定用户组,自动创建 test 用户组
useradd test
# 创建 test2 用户,加入 test 用户组,并指定HOME路径
useradd test2 -g test -d /home/yes
userdel [-r] 用户名
说明:
-r
:删除用户的 HOME 目录,不适用 -r ,删除用户时,HOME目录保留
# 删除 test 用户并保留 HOME 目录
userdel test
# 删除 test2 用户并删除 HOME 目录
userdel -r test2
id [用户名]
说明:
用户名
:被查看的用户,若不提供,则查看当前登录用户
# 查看 test 用户的所属组
id test
usermod -aG 用户组 用户名
# 将 test2 用户加入到 test 用户组
usermod -aG test test2
getent passwd
共有 7 份信息,分别是:
- 用户名:密码(显示为x):用户ID:组ID:描述信息:HOME目录:执行终端(默认bash)
getent group
共有 3 份信息,分别是:
- 组名称:组认证(显示为x):组ID
通过 ls -l 可查看文件的权限细节
- 序号1,表示文件、文件夹的权限控制信息
- 序号2,表示文件、文件夹所属用户
- 序号3,表示文件、文件夹所属用户组
解析序号1权限细节:
权限细节共分为 10 个槽位
其中:
- r 代表读权限
- w 代表写权限
- x 表示执行权限
针对文件、文件夹的不同,rwx的含义有细微差别
- r。针对文件可以查看文件内容;针对文件夹可以查看文件夹内容,如 ls 命令。
- w。针对文件表示可以修改文件;针对文件夹表示可以在文件夹内创建、修改、改名等操作。
- x。针对文件表示可以将文件作为程序执行;针对文件夹表示可以更改工作目录带此文件夹,即 cd 进入。
只有文件、文件夹的所属用户或 root 用户可以使用此命令
chmod:
① 作用:修改文件、文件夹的权限信息
② 语法:chmod [-R] 权限 文件或文件夹
说明:
-R
:对文件夹内的全部内容应用相同操作
# 将文件权限修改为:rwxr-x--x
chmod u=rwx,g=rx,o=x test.txt
或
chmod 751 test.txt
# 其中
# u 代表user,所属用户权限
# g 代表group,用户组权限
# o 代表 other,其他用户权限
# 将文件夹 test 以及文件夹内全部内容权限设置为:rwxr-x--x
chmod -R u=rwx,g=rx,o=x test
或
chmod -R 751 test
只有 root 用户可以执行此命令
chown:
① 作用:修改文件、文件夹的所属用户和用户组
② 语法:chown [-R] [用户] [:] [用户组] 文件或文件夹
说明:
-R
:同chmod,对文件夹内的全部内容应用相同操作用户
:修改所属用户用户组
:修改所属用户组:
:用于分割用户和用户组
# 将 hello.txt 所属用户修改为 test
chown test hello.txt
# 将 hello.txt 所属用户组修改为 test
chown :test hello.txt
# 将 hello.txt 所属用户修改为 test,所属用户组修改为 test
chown test:test hello.txt
# 将文件夹 hello 的所属用户修改为 test,并对文件夹内全部内容应用该规则
chown -R test hello
systemctl:
① 作用:启动、停止。开机自启 Linux 系统软件或服务
② 语法:systemctl start | stop | status | enable | disable 服务名
说明:
start
:启动stop
:停止status
:查看状态enable
:开启开机自启disable
:关闭开机自启
系统内置服务较多,比如
NetworkManager
,主网络服务nerwork
,副网络服务firewald
,防火墙服务sshd
,ssh服务
systemctl status firewalld # 查看防火墙状态
systemctl stop firewalld # 关闭防火墙
systemctl enable firewalld # 防火墙开机自弃
systemctl disable firewalld # 关闭防火墙开机自启
systemctl status firewalld # 查看防火墙状态
firewall-cmd --state # 查看防火墙状态
systemctl stop firewalld # 暂时关闭防火墙
systemctl disable firewalld # 永久关闭防火墙
systemctl start firewalld # 开启防火墙
firewall-cmd --zone=public --add-port=端口号/tcp --permanent # 开放指定端口
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent # 关闭指定端口
firewall-cmd --reload # 立即生效
firewall-cmd --zone=public --list-ports # 查看开放的端口
Centos 使用 yum 管理器
yum 命令需要 root 权限,可以 su 切换到 root 或使用 sudo 授权
yum 命令需要联网
yum:
① 作用:自动化安装配置 Linux 软件,并自动解决依赖问题
② 语法:yum [-y] [install | remove | search] 软件名称
说明:
-y
:自动确认,无需手动确认安装或卸载过程install
:安装remove
:卸载search
:搜索
yum search wget # 搜索是否有 wget 安装包
yum install wget # 安装 wget 程序
yum -y install wget # 卸载 wget 并无需确认
Ubuntu 使用 apt 管理器
apt 命令需要 root 权限,可以 su 切换到 root 或使用 sudo 授权
apt 命令需要联网
apt:
① 作用:自动化安装配置 Linux 软件,并自动解决依赖问题
② 语法:apt[-y] [install | remove | search] 软件名称
说明:
- 用法与 yum 一致,同样需要 root 权限
apt search wget # 搜索是否有 wget 安装包
apt install wget # 安装 wget 程序
apt -y install wget # 卸载 wget 并无需确认
- 二进制发布包安装: 软件已针对具体平台编译打包发布,只需解压修改配置即可
案例:安装jdk
① 在Windoms中去官网下载jdk-8u191-linux.tar.gz
② 使用FinalShell自带的上传工具将jdk-8u191-linux.tar.gz
上传至Linux
③ 解压安装包,在这里,我将其解压在了/usr/local
目录下
tar -zxvf jdk-8u191-linux.tar.gz -C /usr/local
④ 配置环境变量,使用vim命令修改/etc/profile
文件,在文件末尾添加如下配置
JAVA_HOME=/usr/local/jdk1.8.0_191
PATH=$JAVA_HOME/bin:$PATH
⑤ 重新加载profile文件,使更改的配置立即生效
source /etc/profile
⑥ 检查是否安装成功
java -version
- rpm安装: 软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题
案例:安装mysql
① 检查当前系统中是否安装mysql数据库
rpm -qa # 查询当前系统中安装的所有软件
rpm -qa | grep mysql # 查询当前系统中安装的名称带mysql的软件
rpm -qa | grep mariadb # 查询当前系统中安装的名称带mariadb的软件
注
:若当前系统中安装有mysql数据库,安装将失败、Centos7自带有mariadb,与mysql数据库冲突
② 卸载已经安装的冲突软件
rpm -e --nodeps 软件名称 # 卸载软件
③ 将mysql的安装包上传到Linux并解压
mkdir /usr/local/mysql
tar -zxvf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql
解压后,会得到多个rpm的安装包文件
④ 按照顺序安装rpm软件包
rpm -ivh mysql-community-common-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.30-1.el7.x86_64.rpm
⑤ 启动mysql
systemctl status mysqld # 查看mysql服务状态
systemctl start mysqld # 启动mysql服务
systemctl enable mysqld # 开机自启mysql服务
netstat -tunlp # 查看已经启动的服务
netstat -tunlp | grep mysql
ps -ef | grep mysql # 查看mysql进程
ping:
① 作用:检查指定网络服务器是否为可联通状态
② 语法:ping [-c num] ip或主机名
说明:
-c
:检车的次数,不使用则无限次数持续检查
# 检查 baidu.com 是否联通
ping baidu.com
# 检查 8.1.1.1 是否联通,并检查 3 次
ping -c 3 8.1.1.1
wget:
① 作用:wget是非交互式的文件下载器,可以在命令行内下载网络文件
② 语法:wget [-b] url
说明:
-b
:后台下载,会将日志写入到当前工作目录的wget-log文件url
:下载链接
# 下载 apache-hadoop 3.3.0
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
# 在后台下载
wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
# 通过 tail 命令可监控后台下载进度
tail -f wget-log
curl:
① 作用:可以发送 http 请求,可用于下载文件、获取信息等
② 语法:curl [-O] url
说明:
-O
:(大写 O)下载文件,当 url 是下载链接时,可使用此选项保存文件url
:要发起请求的网络地址
# 向 cip.cc 发起网络请求
curl cip.cc
# 通过 curl 下载 apache-hadoop 3.3.0
curl -O http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
首先需要安装 nmap
# centos
yum -y install nmap
# ubuntu
apt -y install nmap
nmap:
① 作用:查看端口的占用情况
② 语法:nmap 被查看的ip地址
# 查看本机端口占用情况
nmap 127.0.0.1
首先需要安装 netstat
# centos
yum -y install net-tools
# ubuntu
apt -y install net-tools
netstat:
① 作用:查看指定端口的占用情况
② 语法:netstat -anp | grep 端口号
# 查看本机 80 端口占用情况
netstat -anp | grep 80
# 查看本机端口占用情况
nmap 127.0.0.1
ps:
① 作用:查看系统中进程信息
② 语法:ps [-e -f]
说明:
-e
:显示出全部进程-f
:以完全格式化的形式展示信息(全部信息)
- 可使用管道符配合 grep 来进行信息过滤
- 过滤可过滤名称、进程号、用户ID等
# 列出全部进程的全部信息
ps -ef
# 找到 tail 命令的进程信息
ps -ef | grep tail
从左到右分别是:
- UID:进程所属的用户ID
- PID:进程的进程号ID]
- PPID:进程的父ID(启动此进程的其他进程)
- C:此进程的CPU占用率(百分比)
- STIME:进程的启动时间
- TTY:启动此进程的终端序号,如果为
?
,则表示非终端启动- TIME:进程占用CPU的时间
- CMD:进程对用的名称或启动路径或启动命令
kill:
① 作用:关闭进程
② 语法:kill [-9] 进程ID
说明:
-9
:强制关闭进程,不适用此选项会向进程发送信号要求其关闭,是否关闭根据进程自身的处理机制
# 强制杀死 2339 进程
kill -9 2339
top:
① 作用:查看cpu、内存使用情况,类似windoms的任务管理器
② 语法:top [-p -d -c -n -b -i -u]
说明:
-p
:只显示某个进程的信息-d
:设置刷新时间,默认为 5 s-c
:显示产生进程的完整命令,默认是进程名-n
:指定刷新次数,刷新输出达到次数后退出-b
:以非交互非全屏模式运行,以批次的方式执行top,一般配合-n
指定输出几次统计信息,将输出重定向到指定文件。比如top -b -n 3 > /top.tmp
-i
:不显示任何闲置(idle)或无用(zombie)的进程-u
: 查找特定用户启动的进程
# 只显示 进程ID为 1 的信息
top -p 1
# 刷新输出3次后退出
top -n 3
# 刷新输出3次后退出并输出到 /top.tmp 文件
top -b -n 3 > /top.tmp
内容详解
- PID:进程id
- USER:进程所属用户
- PR:进程优先级,越小越高
- NI:负值表示高优先级,正表示低优先级
- VIRT:进程使用虚拟内存,单位KB
- RES:进程使用物理内存,单位KB
- SHR:进程使用共享内存,单位KB
- S:进程状态(S休眠,R运行,Z僵尸状态,N负数优先级,I空闲状态)
- %CPU:进程占用CPU率
- %MEM:进程占用内存率
- TIME+:进程使用CPU时间总计,单位10毫秒
- COMMAND:进程的命令或名称或程序文件路径
top交互式选项
当 top 以交互式运行(非-b选项启动),可以使用以下交互式命令进行控制
df:
① 作用:查看硬盘的使用情况
② 语法:df [-h]
说明:
-h
:以更加人性化的单位显示
# 以人性化的单位显示磁盘使用情况
df -h
iostat:
① 作用:查看cpu、磁盘的相关信息
② 语法:iostat [-x] [num1] [num2]
说明:
--x
:显示更多信息num1
:数字,刷新间隔,秒数num2
:数字,刷新几次
date:
① 作用:在命令行中查看系统时间
② 语法:date [-d] [+格式化字符串]
说明:
-d
:按照给定的字符串显示日期,一般用于日期计算
其中支持的时间标记有:
- year 年
- month 月
- day 天
- hour 时
- minute 分钟
- second 秒
格式化字符串
:通过特定的字符串标记,来控制显示的日期格式
- %Y 年
- %y 年份后两位数字(00 - 99)
- %M 月份(01 - 12)
- %d 日(01 - 31)
- %H 小时(00 - 23)
- %M 分钟(00 - 59)
- %S 秒(00 - 60)
- %s 自 1970-01-01 00:00:00 UTC 到现在的秒数
# 按照 2023-01-01 的格式显示日期
date +%Y-%m-%d
# 按照 2023-01-01 10:00:00 的格式显示日期,中间有空格,使用双引号包围
date "+%Y-%m-%d %H:%M:%S"
# 显示后一天日期
date -d "+1 day" +%Y-%m-%d
# 显示上个月日期
date -d "-1 month" +%Y-%m-%d
# 显示下一年日期
date -d "+1 year" +%Y-%m-%d