Linux常用命令

Linux终端命令格式

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 命令,把内存中的数据写到磁盘中。

文件目录操作命令

命令对应英文作用
lslist查看当前目录下的内容
pwdprint work directory查看当前所在目录
cd [目录名]change directory切换目录
touch [文件名]touch若文件不存在则新建文件
mkdir [目录名]make directory创建目录
rm [文件名]remove删除指定文件
clearclear清屏

查看\切换目录——pwd & cd

pwd
① 作用:查看当前所在目录

pwd        # 查看当前工作目录

cd
① 作用:切换当前工作目录,即进入指定目录
② 语法:cd [目录名]

cd         # 当前用户目录
cd ~       # 当前用户目录
cd /       # 根目录
cd -       # 上一次访问的目录
cd ..      # 上一级目录
cd ../..   #返回上两级目录 

列出目录内容——ls

ls
① 作用:显示指定目录下的内容
② 语法:ls [-a -l -h] [目录名]


说明:

  • -a:显示所有文件及目录(.开头的隐藏文件也会列出)
  • -l:除文件名称外,同时将文件形态( d 表示目录,- 表示文件)、权限、拥有者、文件大小等信息详细列出
  • -h:以人性化的方式显示文件大小(与 -l 搭配使用)
ls       # 列出当前目录文件的文件名(不含隐藏文件)
ls -a    # 列出当前目录文件的文件名(含隐藏文件)
ls -l    # 列出文件详情
ls -la   # 列出文件详情(含隐藏文件)
ls -lh   # 以人性化的方式显示文件大小
ls /etc  # 列出指定目录 /etc 目录文件的文件名

创建文件目录——mkdir & touch

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 & find

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 & wc & 管道符

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
① 作用:在命令行内输出指定内容
② 语法:echo 输出的内容


说明:

  • 带有空格或\等特殊符号,可使用双引号包围
  • 反引号 ` :被 反引号包围的内容,会被作为命令执行
# 命令行输出 hello world
echo hello world

# 执行 ls 命令
echo `ls`

重定向符>>>

  • >:将左侧命令结果,覆盖追加到符号右侧指定的文件中
  • >>:将左侧命令结果,追加到符号右侧指定的文件中
# 向 test.txt 写入 hello
echo hello > test.txt

# 向 test.txt 追加 world
echo world >> test.txt

显示文件内容——cat & more & tail

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 & rm

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 & mv

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

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
① 作用:对文件进行打包、解包、压缩、解压
② 语法: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 压缩包
② 语法:zip [-r] fileName [files]


说明:

  • -r:被压缩的包含文件夹的是够吗,需要使用-r选项,与rmcp等命令的-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

unzip
① 作用:解压 zip 压缩包
② 语法:unzip [-d] fileName


说明:

  • -d:指定要解压的位置,同tar-C选项
# 将 test.zip 解压到当前目录
unzip test.zip
# 将 test.zip 解压到 /usr/local 目录
unzip test.zip -d /usr/local

文本编辑命令

文本编辑——vi & vim

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. 插入模式

  • 插入模式下可以对文件内容进行编辑
  • 在命令模式下按下【iao】任意一个,可以进入插入模式。进入后,在下方会有 insert 字样
  • 在插入模式下按下ESC键,回到命令模式

3. 底行模式

  • 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
  • 在命令模式下按下【:/】任意一个,可以进入底行模式
  • 通过 / 方式进入底行模式后,可以对文件内容进行查找
  • 通过 : 方式进入底行模式,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)、q(仅退出)、w(仅保存)、、set paste(设置粘贴模式)
vim +10 a.txt                   # 打开a.txt文件并跳到第10行
vim -R /etc/passwd              # 以只读模式打开文件

权限操作

su

su
① 作用:切换系统账户
② 语法:su [-] [用户名]


说明:

  • -:符号可选,表示是否在切换用户后加载环境变量
  • 用户名:参数可选,表示要切换的用户,缺省表示切换到 root

  • 切换用户后,可通过 exit 命令退回到上一个用户
  • 使用普通用户,切换到其他用户需要输入密码
  • 使用 root 用户切换到其他用户,无需密码,可以直接切换
#切换到 root 用户
su - root  
su -
# 切换到 tangyt 用户
su - tangyt

sudo

sudo
① 作用:为普通的命令授权,临时以 root 身份执行
② 语法:sudo 其他命令


  • 在其他命令 之前,带上 sudo,即可为这一条命令临时赋予 root 授权
  • 并不是所有用户都有权利使用 sudo,我们需要为普通用户配置 sudo 认证

为普通用户配置 sudo 认证

  • 切换到 root 用户,执行 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

  • 查看当前系统中用户信息

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 进入。

chmod

只有文件、文件夹的所属用户或 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 testchmod -R 751 test

chown

只有 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 命令

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  # 查看开放的端口

软件安装

yum命令

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 并无需确认

apt命令

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安装

  • 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
① 作用:检查指定网络服务器是否为可联通状态
② 语法: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是非交互式的文件下载器,可以在命令行内下载网络文件
② 语法: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命令

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

首先需要安装 nmap

# centos
yum -y install nmap
# ubuntu
apt -y install nmap

nmap
① 作用:查看端口的占用情况
② 语法:nmap 被查看的ip地址

# 查看本机端口占用情况
nmap 127.0.0.1

netstat

首先需要安装 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
① 作用:查看系统中进程信息
② 语法: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
① 作用:关闭进程
② 语法:kill [-9] 进程ID


说明:

  • -9:强制关闭进程,不适用此选项会向进程发送信号要求其关闭,是否关闭根据进程自身的处理机制
# 强制杀死 2339 进程
kill -9 2339

主机状态监控

top

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
① 作用:查看硬盘的使用情况
② 语法:df [-h]


说明:

  • -h:以更加人性化的单位显示
# 以人性化的单位显示磁盘使用情况
df -h

iostat

iostat
① 作用:查看cpu、磁盘的相关信息
② 语法:iostat [-x] [num1] [num2]


说明:

  • --x:显示更多信息
  • num1:数字,刷新间隔,秒数
  • num2:数字,刷新几次

其他命令

date

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值