文章目录
Linux 常用命令
一、背景知识
在 Linux 系统中任何东西都是以文件形式来存储的。这其中不仅包括我们熟知的文本文件、可执行文件等等,还包括硬件设备、虚拟设备、网络连接等等,甚至连目录其实都是一种特殊的文件。
1、Linux 中的路径
路径,顾名思议,是指从树形目录中的某个目录层次到某个文件的一条道路。 Linux 系统中是从" / "开始的。路径是由目录或文件名构成。有绝对路径和相对路径之分。
- 绝对路径:绝对路径是指从“根”开始的路径。例如/usr/local,/etc/hosts,/opt等,如果一个路径是从“/”开始它一定是绝对路径。
- 相对路径:相对路径是以“.”或者“…”开始的。“.”表示用户操作所处的位置,“…”表示上级目录。
注意:
- 绝对路径必须以 “/” 开头,它表示根目录。
- 相对路径不能以 “ / ” 开头。
- 每个目录中都有 “ …” 目录文件。
路径的符号说明:
- . : 当前用户所在目录
- … :表示上一级目录
- ~ : 表示当前用户自己家目录
- ~ USER :表示用户名为 USER 的家目录。这里的 USER 是在 /etc/passwd 中存在的用户。
2、Linux 系统目录结构
目录名 | 作用 | 是否重要 |
---|---|---|
/bin | 是 Binary 的缩写,这个目录存放着经常使用的命令,存放二进制文件 | |
/boot | 存放着启动 Linux 时使用的一些核心文件,包括一些链接文件和镜像文件 | |
/dev | 类似于 windows 的设备管理器,把所有的硬件用文件的形式存储 | |
/etc | 存放系统和第三方应用程序的配置文件 | 重要 |
/home | 存放普通用户的家目录 | 重要 |
/lib和/lib64 | 系统开机所需要最基本的动态连接共享库 | |
/media | 挂载Linux系统会自动识别的设备,例如U盘、光驱等 | |
/mnt | 该目录是为了让用户临时挂载别的文件系统的 | |
/opt | 存放安装第三方应用程序时使用的压缩包文件 | 重要 |
/proc | 这个目录是一个虚拟的目录,它是系统内存的映射 | |
/root | 该目录为系统管理员,超级权限者的用户目录 | 重要 |
/run | 存放进程产生的临时文件,关机重启后会消失 | |
/sbin | sbin就是super user的意思,这里存放的是系统管理员使用的系统管理程序 | |
/srv | service缩写,该目录存放一些服务启动之后需要提取的数据。 | |
/sys | Linux2.6内核的一个很大变化,该目录安装了2.6内核中新出现的一个文件系统 | |
/tmp | 存放临时文件 | |
/usr | 用程序的默认安装目录,类似于Windows下的program files目录 | 重要 |
/var | 存放经常变化的内容,例如日志文件 | 重要 |
3、Linux 的文件属性
Linux 可以支持长达256个字符的文件名称,且文件名是区分大小写的,“abc” 与 "ABC"所代表的是不同文件。
Linux 的文件类型:(文件属性的第一位代表文件类型)
- 普通文件(-):存放数据,程序等信息的文件,一般为文本文件和二进制文件。
- 目录文件(d):文件系统中一个目录所包含的目录文件,包括文件名和子目录名。
- 链接文件(l):可以在不同的文件系统之间建立链接关系来实现对文件的访问。
- 设备文件©:把IO设备映射为一个设备文件。
- 管道文件§:主要用于在进程间传递数据。
Linux 的文件权限:(文件属性的第二位到第十位,2-4位代表所属者权限,5-7位代表所属组权限,8-10代表其他用户权限)
- 读(r)- 允许读取文件
- 写(w)- 允许写、修改和删除某个文件
- 执行(x)- 允许执行某个文件
所谓的文件权限,是指对文件访问权限,包括对文件的读、写、删除、执行操作。Linux是一个多用户操作系统,它运行多个用户同时登陆和工作,因此Linux将一个文件或者目录与一个用户和组联系起来。
二、常用命令操作
1、处理文件和目录相关命令
1.1 查看目录 ls
1)命令:ls(英文全拼:list files)
2)作用:用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
3)语法:ls [参数] [目录]
4)参数:
- -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
- -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
- -r 递归查看目录内容
此命令常用 ll 缩写,即查看当前目录的所有内容详情。
1.2 查看当前所在目录 pwd
1)命令:pwd (英文全拼:print work directory)
2)作用:显示目前所在目录
3)语法:pwd
1.3 创建新目录 mkdir
1)命令:mkdir(make directory)
2)作用:创建新的目录
3)语法:mkdir [参数] 目录名称
4)参数:
- -p:递归创建目录
[root@localhost ~]# mkdir exercise
[root@localhost ~]# cd exercise/
[root@localhost exercise]# mkdir -p test/test01/test02
[root@localhost exercise]# ll
总用量 4
drwxr-xr-x. 3 root root 4096 12月 30 14:13 test
1.4 删除空目录 rmdir
1)命令:rmdir
2)作用:删除空的目录
3)语法:rmdir [参数] 目录名称
4)参数:
- -p:从该目录起,一次删除多级空目录
1.5 创建空文件 touch
1)命令:touch
2)作用:创建空文件
3)语法:touch 文件名
1.6 复制文件或目录 cp
1)命令:cp(copy)
2)作用:拷贝文件和目录
3)语法:cp [参数] 源文件/目录 目标文件/目录
4)参数:
- -r:递归持续复制,用于目录的复制行为
1.7 删除文件或目录 rm
1)命令:rm(remove)
2)作用:删除文件和目录
3)语法:rm [参数] 文件或目录
4)参数:
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -r :递归删除!最常用在目录的删除了!这是非常危险的选项!!!
1.8 移动文件或目录 mv
1)命令:mv(move)
2)作用:移动文件和目录,或者修改名称
3)语法:mv [参数] 被移动的文件或目录的路径 目标目录
4)参数:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
[root@localhost exercise]# mv a.txt test/test01/test02/
[root@localhost exercise]# cd test/test01/test02/
[root@localhost test02]# ll
总用量 0
-rw-r--r--. 1 root root 0 12月 30 14:32 a.txt
[root@localhost test02]# mv a.txt b.txt
[root@localhost test02]# ll
总用量 0
-rw-r--r--. 1 root root 0 12月 30 14:32 b.txt
2、文件编辑工具 vi/vim
vi 或 vim 是 Linux 最常用的文本编辑器工具,vi 或 vim 没有图形界面编辑器那样单机鼠标的简单操作,但 vi 编辑器在系统管理、服务器管理中,永远是图形界面的编辑器所不能比的。vi 与 vim 区别在于 vim 可以语法高亮和多级撤销。vim 总共有三种模式:
2.1 一般模式
输入vim 文件名,便进入了命令模式。即使这个文件不存在也没关系,vim 知道我们打算新建一个文件。
此状态下敲击键盘动作会被 vim 识别为命令,而非输入字符。比如我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。
命令 | 作用 |
---|---|
dd | 删除(剪切)光标所在的整行 |
5dd | 删除(剪切)从光标处开始的5行 |
yy | 复制光标所在整行 |
5yy | 复制从光标处开始的5行 |
n | 显示搜索命令定位到下一个字符串 |
N | 显示搜索命令定位到的上一个字符串 |
u | 撤销上一步操作 |
p | 将之前删除dd或者复制yy过的数据粘贴到光标后面 |
G | 文本最后面 |
gg | 文本开始 |
shift+^ | 移动到行头 |
shift+$ | 移动到行尾 |
x | 删除字符 |
2.2 编辑模式
在一般模式下按下i、I、o、a、A就进入了编辑模式,分别对应不同的方式进入编辑模式:
按键 | 大小写说明 | 大小写说明 |
---|---|---|
i | 小写 | 不动,就在当前位置,开始输入 |
I | 大写 | 移动到行的开头,开始输入 |
a | 小写 | 光标向后移动一格,然后开始输入 |
A | 大写 | 光标移动到行的末尾,然后开始输入 |
o | 小写 | 先在光标所在行的下面插入空行,然后把光标移动到空行的开头,再开始输入 |
此模式同正常的文本输入一样,各种按键的使用也一样,按 Esc 键则返回一般模式。
2.3 指令模式
主要保存或者退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转所编写文档的特定行数。注意:shift+ zz 快捷保存退出
命令 | 作用 |
---|---|
: w | 保存 |
: q | 退出 |
: q ! | 强制退出 |
: wq! | 强制保存退出 |
: set nu | 显示行号 |
: set nonu | 不显示行号 |
: 命令 | 执行该命令 |
: 整数 | 跳转到该行 |
:s/one/two | 将当前光标所在行的第一个one替换成two |
:s/one/two/g | 将当前光标所在行的所有one替换成two |
:%s/one/two/g | 将全文中的所有one替换成two |
?字符串 | 在文本中从下至上搜索该字符串 |
/字符串 | 在文本中从上至下搜索该字符串 |
3、文件内容查看相关命令
3.1 查看内容 cat
1)命令:cat
2)作用:显示文件的全部内容,适用于较小的文件
3)语法:cat [参数] 文件名
4)参数:
- -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
- -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
- -v :列出一些看不出来的特殊字符
- -E :将结尾的断行字节 $ 显示出来;
- -T :将 [tab] 按键以 ^I 显示出来;
- -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
3.2 倒着显示文件内容 tac
1)命令:tac
2)作用:文件内容从最后一行开始显示,tac为cat倒着写
3)语法:tac 文件名
3.3 显示行号 nl
1)命令:nl
2)作用:带行号的显示文件内容
3)语法:nl 文件名
3.4 分页显示 more
1)命令:more
2)作用:分页显示文件内容
3)语法:more 文件名
4)在查看的过程中,以下按键可以操作文件:
- 空白键(space):向下翻页
- b:向上翻页
- Enter:向下翻一行
- /字符串:代表在这个显示的内容当中,向下搜寻『字符串』这个关键字
- :f :立刻显示出文件名以及目前显示的行数
- q :立刻离开 more ,不再显示该文件内容
3.5 分页显示 less
1)命令:less
2)作用:分页显示文件内容
3)语法:less 文件名
4)在查看的过程中,以下按键可以操作文件:
- 空白键(space):向下翻页
- b:向上翻页
- [pagedown] ↓、Enter:向下翻一行
- [pageup] ↑:向下翻一行
- /字符串:代表在这个显示的内容当中,向下搜寻『字符串』这个关键字
- ?字串 :向上搜寻『字符串』这个关键字,n 向上找,N 向下找
- =:显示文件的详细信息
- q :立刻离开 less ,不再显示该文件内容
3.6 查看头几行 head
1)命令:head
2)作用:取出文件前面几行
3)语法:head [-n number] 文件名
4)参数:
- -n :后面接数字,代表显示几行
3.7 查看尾几行 tail
1)命令:tail
2)作用:取出文件后面几行
3)语法:tail[-n number] 文件名
4)参数:
- -n :后面接数字,代表显示几行
- -f :表示持续监测后面所接的档名,要等到按下 [ctrl]+c 才会结束 tail 的监测
4、打包压缩相关命令
4.1 tar
1)命令:tar
2)作用:tar 包解压缩命令,默认解压到当前目录下,如果当前目录有同名的目录或者文件会被直接覆盖,没有任何提示
3)语法:tar 参数 文件名
4)参数:常用 -zxvf (简记:最小微分)
- -z:用 gzip 对存档压缩或解压
- -x:解压 .tar 文件
- -v:详细显示处理的文件
- -f:指定压缩后的文件
- -c:生成 .tar 打包文件
- -C:指定解压目录,tar 包后面跟 -C 目录名
解压命令:常用
[root@localhost /]# tar -zxvf apache-tomcat-8.5.27.tar.gz -C /usr/local
压缩目录命令
[root@localhost test01]# tar -zcvf java.test.tar.gz test02
test02/
test02/a.txt
test02/std_zt_nljgtj.sql
test02/b.txt
[root@localhost test01]# ll
总用量 16
-rw-r--r--. 1 root root 11815 1月 3 17:13 java.test.tar.gz
drwxr-xr-x. 2 root root 4096 1月 3 10:14 test02
4.2 gzip/gunzip
1)命令:gzip/gunzip
2)作用:解压缩命令
3)语法:gzip 文件 (压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (解压缩文件命令)
5、搜索相关命令
5.1 grep
1)命令:grep
2)作用:将文件内容中匹配的行返回
3)语法:grep [参数] 查找内容 源文件
4)参数:
- -n:显示行号
- -v:反向选择,仅列出没有“关键词”的行
- -c:仅显示找到的行数
- -i:忽略大小写
- -b:将可执行文件(binary)当作文本文件(text)来搜索
[root@localhost test02]# grep -n '镇街' std_zt_nljgtj.sql
[root@localhost test02]# cat std_zt_nljgtj.sql | grep '南村村'
5.2 find
1)命令:find
2)作用:按照指定条件来查找文件
3)语法:find [查找路径] [参数] 表达式
4)参数:
- -name:匹配名称
- -user:匹配所有者
- -group:匹配所有组
[root@localhost /]# find /opt/ -name "*.txt"
6、用户/组管理命令
Linux是一个多用户、多任务的操作系统。
用户概念:Linux 是真正意义上的多用户操作系统,我们可以在 Linux 系统中建若干用户(user)
用户组概念:用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;
Linux 用户和组的关系有四种,分别是:一对一、一对多、多对一、多对多
6.1 添加用户 useradd
对于 UID 的说明:Linux 系统的管理员之所以是 root,是因为该用户的身份号码即 UID 的数值为 0, UID 就相当于我们的身份证号码一样具有唯一性, 因此可通过用户的 UID 值来判断用户身份。
- 管理员 UID 为 0:系统的管理员用户。
- 系统用户 UID 为 1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。
- 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户。 需要注意的是,UID 是不能冲突的,而且管理员创建的普通用户的 UID 默认是从 1000 开始的(即使前面有闲置的号码)。
1)命令:useradd
2)作用:添加用户
3)语法:useradd [参数] 用户名
4)参数:
- -d:指定用户的家目录(默认为/home/(用户名))
- -e:账户的到期时间,格式为 YYYY-MM-DD.
- -u:指定该用户的默认 UID
- -g:指定一个初始的用户基本组(必须已存在)
- -G:指定一个或多个扩展用户组
- -N:不创建与用户同名的基本用户组
- -s:指定该用户的默认 Shell 解释器
[root@localhost /]# useradd -d /home/java -u 6666 testuser01
[root@localhost /]# id testuser01
uid=6666(testuser01) gid=6666(testuser01) 组=6666(testuser01)
[root@localhost /]# cd home/
[root@localhost home]# ll
总用量 8
drwx------. 3 testuser01 testuser01 4096 1月 4 11:16 java
drwx------. 15 lyl lyl 4096 1月 4 10:37 lyl
6.2 修改用户 usermod
1)命令:usermod
2)作用:修改用户的一些信息
3)语法:usermod [参数] 用户名
4)参数:
- -u:修改用户ID
- -U:解除密码锁定
- -l:修改用户帐号名称
- -L:锁定用户密码,使密码无效
- -g:修改用户所属的群组
- -G:修改用户所属的附加群组
- -d:修改用户登入时的目录
- -c:修改用户帐号的备注文字
- -e:修改帐号的有效期限
- -f:修改在密码过期后多少天即关闭该帐号
- -s:修改用户登入后所使用的shel
#修改用户id
[root@localhost home]# usermod -u 1314 testuser01
[root@localhost home]# id testuser01
uid=1314(testuser01) gid=6666(testuser01) 组=6666(testuser01)
#修改用户所属组
[root@localhost home]# id lyl
uid=1000(lyl) gid=1000(lyl) 组=1000(lyl),10(wheel)
[root@localhost home]# usermod -g lyl testuser01
[root@localhost home]# id testuser01
uid=1314(testuser01) gid=1000(lyl) 组=1000(lyl)
#将用户加入root组
[root@localhost home]# usermod -G root testuser01
[root@localhost home]# id testuser01
uid=1314(testuser01) gid=1000(lyl) 组=1000(lyl),0(root)
用户账号口令管理 passwd
1)命令:passwd
2)作用:用于修改用户密码、过期时间、认证信息等
3)语法:passwd [参数] 用户名
4)参数:
- -d:删除密码,仅有系统管理者才能使用
- -f:强制执行
- -k:设置只有在密码过期失效后,方能更新
- -l:锁住密码
- -S:列出密码的相关信息,仅有系统管理者才能使用
- -u:解开已上锁的帐号
[root@localhost home]# passwd -l testuser01 锁定用户 testuser01 的密码 。 passwd: 操作成功 [root@localhost home]# passwd -S testuser01 testuser01 LK 2023-01-04 0 99999 7 -1 (密码已被锁定。)
6.3 删除用户 userdel
1)命令:userdel
2)作用:删除用户
3)语法:userdel [参数] 用户名
4)参数:
- -f:强制删除用户
- -r:同时删除用户及用户家目录
说明:删除用户,相关的文件目录有:/etc/passwd、/etc/shadow、/home/(用户名)
[root@localhost home]# userdel -r testuser01
userdel:组“testuser01”没有移除,因为它不是用户 testuser01 的主组 //此处是因为刚才修改了testuser01的所属组
[root@localhost home]# id testuser01
id: testuser01: no such user
6.4 添加用户组 groupadd
1)命令:groupadd
2)作用:添加用户组
3)语法:groupadd [参数] 用户组名
4)参数:
- -g:指定新建工作组的 id
- -r:创建系统工作组,系统工作组的组ID小于500
- -K:覆盖配置文件“/ect/login.defs”
- -o:允许添加组ID号不唯一的工作组
[root@localhost home]# groupadd -g 255 java
6.5 修改用户组 groupmod
1)命令:groupmod
2)作用:修改用户组
3)语法:groupmod [参数] 用户组名
4)参数:
- -g:设置欲使用的群组识别码
- -o:重复使用群组识别码
- -n:设置欲使用的群组名称
#把java组改为javaweb组并设置GID为265
[root@localhost home]# groupmod -g 265 -n javaweb java
6.6 删除用户组 groupdel
1)命令:groupdel
2)作用:删除用户组
3)语法:groupdel 用户组名
#新建用户如果不设置用户组,会建立一个相同名字的用户组,删除用户组testuser01
[root@localhost home]# groupdel testuser01
7、权限操作
7.1 改变所属群组 chgrp
1)命令:chgrp(change group)
2)作用:改变文件所属群组
3)语法:chgrp [参数] 属组名 文件名
4)参数:
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。
[root@localhost test01]# ll
总用量 16
-rw-r--r--. 1 root root 11815 1月 3 17:13 java.test.tar.gz
drwxr-xr-x. 2 root root 4096 1月 3 10:14 test02
[root@localhost test01]# chgrp -R lyl test02
[root@localhost test01]# ll
总用量 16
-rw-r--r--. 1 root root 11815 1月 3 17:13 java.test.tar.gz
drwxr-xr-x. 2 root lyl 4096 1月 3 10:14 test02
[root@localhost test01]# cd test02
[root@localhost test02]# ll
总用量 68
-rw-r--r--. 1 root lyl 65 12月 30 16:03 a.txt
-rw-r--r--. 1 root lyl 683 12月 30 16:10 b.txt
-rw-r--r--. 1 root lyl 57988 1月 3 10:14 std_zt_nljgtj.sql
7.2 改变文件拥有者 chown
1)命令:chowm
2)作用:更改文件属主,也可以同时更改文件属组
3)语法:chown [参数] 属主名 文件名
chown [参数] 属主名:属组名 文件名
4)参数:
- -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上 -R 的参数,那么该目录下的所有文件的属组都会更改。
[root@localhost test02]# chown lyl a.txt
[root@localhost test02]# ll
总用量 68
-rw-r--r--. 1 lyl lyl 65 12月 30 16:03 a.txt
-rw-r--r--. 1 root lyl 683 12月 30 16:10 b.txt
-rw-r--r--. 1 root lyl 57988 1月 3 10:14 std_zt_nljgtj.sql
#将a.txt的属主和所属组改回root
[root@localhost test02]# chown root:root a.txt
[root@localhost test02]# ll
总用量 68
-rw-r--r--. 1 root root 65 12月 30 16:03 a.txt
-rw-r--r--. 1 root lyl 683 12月 30 16:10 b.txt
-rw-r--r--. 1 root lyl 57988 1月 3 10:14 std_zt_nljgtj.sql
7.3 改变文件属性 chmod
有两种方法,一种是数字,一种是符号
Linux 文件的基本权限就有九个,分别是 owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute(读/写/执行)权限。
1)命令:chowm
2)作用:更改文件属性
**文字设定法:**用 u、g、o 代表user(用户)、group(组)、others(其他)三种身份的权限。 a 则代表 all,即全部的身份。读写的权限可以写成 r、w、x
3)语法:chmod [u、g、o、a] [+、-、=] [r、w、x]
操作对象可以是下述字母中的任一个或者它们的组合:
- u 表示“用户(user)”,即文件或目录的所有者。
- g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
- o 表示“其他(others)用户”。
- a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
- + 添加某个权限。
- – 取消某个权限。
- = 赋予给定权限并取消其他所有权限(如果有的话)。
**数字设定法(常用):**0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。
字符 | 对应权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读权限 | 可以查看文件 | 可以列出目录的内容 |
w | 写权限 | 可以修改文件 | 可以在目录中创建、删除文件 |
x | 执行权限 | 可以执行文件 | 可以进入目录 |
对应的值的组合种类
值 | 权限 | 数值 |
---|---|---|
7 | 可读 + 可写 + 可执行 | 7(4 + 2 + 1) |
6 | 可读 + 可写 | 6(4 + 2) |
5 | 可读 + 可执行 | 5(4 + 1) |
4 | 可读 | 4 |
3 | 可写 + 可执行 | 3(2 + 1) |
2 | 可写 | 2 |
1 | 可执行 | 1 |
0 | 无 | 0 |
3)语法:chmod [-R] xyz 文件或目录
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
#将文件权限设置为 - rwx r-x r--
[root@localhost test02]# ll
总用量 68
-rw-r--r--. 1 root root 12 1月 5 16:29 a.txt
-rw-r--r--. 1 root lyl 683 12月 30 16:10 b.txt
-rw-r--r--. 1 root lyl 57988 1月 3 10:14 std_zt_nljgtj.sql
[root@localhost test02]# chmod 754 a.txt
[root@localhost test02]# ll
总用量 68
-rwxr-xr--. 1 root root 12 1月 5 16:29 a.txt
-rw-r--r--. 1 root lyl 683 12月 30 16:10 b.txt
-rw-r--r--. 1 root lyl 57988 1月 3 10:14 std_zt_nljgtj.sql
8、防火墙相关命令
启动防火墙: systemctl start firewalld
关闭防火墙: systemctl stop firewalld
查看防火墙状态:
systemctl status firewalld
firewall-cmd --state
开机禁用防火墙: systemctl disable firewalld
开机启用防火墙 : systemctl enable firewalld
9、进程管理相关命令
9.1 查看所有进程 ps
1)命令:ps(process status)
2)作用:查看当前正在运行的进程
3)语法:ps [参数]
4)参数:
- -a:显示所有进程(包括其他用户的进程)
- -u:用户以及其他详细信息
- -x:显示没有控制终端的进程
- -e:显示系统中全部的进程信息
- -f:表示完整格式
常用参数为:-ef,即 ps -ef 查看所有正在运行的进程
[root@localhost ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 1月03 ? 00:00:08 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
列名 | 含义 |
---|---|
UID | 进程的用户信息 |
PID | 进程id。由系统分配,不会重复 |
PPID | 父进程的id。父进程和子进程的关系是:父进程启动了子进程 |
C | 用整数表示的CPU使用率 |
STIME | 进程启动时间 |
TTY | 进程所在终端。所谓终端就是用户输入命令的操作界面 |
TIME | 进程所占用的CPU时间 |
CMD | 当前进程所对应的程序 |
[root@localhost ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 193968 7072 ? Ss 1月03 0:08 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
列名 | 含义 |
---|---|
USER | 进程拥有者 |
%CPU | 该进程使用掉的CPU资源百分比 |
%MEM | 该进程所占用的物理内存百分比 |
VSZ | 占用的虚拟记忆体大小 |
RSS | 占用的记忆体大小 |
STAT | 该进程的状态:D: 无法中断的休眠状态 (通常 IO 的进程);R: 正在执行中;S: 静止状态;T: 暂停执行;Z: 不存在但暂时无法消除 |
START | 进程开始时间 |
COMMAND | 该进程的实际指令 |
#分屏查看进程
[root@localhost ~]# ps -ef | less
#精确查看想要查看的进程
[root@localhost ~]# ps -ef | grep sshd
root 1033 1 0 1月03 ? 00:00:00 /usr/sbin/sshd -D
root 2885 1033 0 1月03 ? 00:00:02 sshd: root@pts/0
root 30154 16320 0 11:24 pts/0 00:00:00 grep --color=auto sshd
9.2 实时查看系统状态 top
1)命令:top
2)作用:实时查看系统运行情况和健康状态
3)语法:top [参数]
4)参数:
- -d:屏幕刷新间隔时间
- -p:指定进程id
5)在查看的过程中,可以用一下按键操作:
- P:默认值,根据CPU使用率排序
- M:以内存的使用率排序
- N:以PID排序
- d:设置数据刷新的时间间隔,单位是秒
- q:退出
9.3 互动的进程查看器 htop
htop 是 Linux 系统中的一个互动的进程查看器,与 Linux 传统的 top 比较的话, htop 更人性化并且还支持鼠标操作。
#安装epel源
yum install epel-release -y
#安装htop
yum install -y htop
#安装完毕后命令行输入
htop
9.4 终止进程 kill
1)命令:kill
2)作用:终止进程,kill命令本质上是给进程发送信号
3)语法:kill [参数] 进程ID
4)参数:
- -9:强制终止进程
[root@localhost ~]# ps -ef | grep firefox
root 32547 1990 19 13:57 ? 00:00:04 /usr/lib64/firefox/firefox
[root@localhost ~]# kill 32547
9.5 查看网络状态 netstat
1)命令:netstat(net status)
2)作用:监控TCP/IP网络,可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息
3)语法:netstat [参数]
4)参数:
- -a:显示所有正在或不在侦听的套接字
- -n:显示数字形式地址而不去解析主机、端口或用户名
- -p:显示套接字所属进程的 PID 和名称
netstat命令显示的网络状态信息包含两部分内容:
- 本机和外部的连接状态信息
- 本机系统内部进程间通信信息
[root@localhost ~]# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 620/rpcbind
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1301/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1033/sshd
......
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 26295 1440/X /tmp/.X11-unix/X0
unix 2 [ ACC ] STREAM LISTENING 30473 1790/gnome-keyring- /run/user/0/keyring/ssh
unix 2 [ ] DGRAM 11022 1/systemd /run/systemd/shutdownd
......
网络连接信息字段名称含义:
列名 | 含义 |
---|---|
Proto | 连接协议 |
Recv-Q | 接收数据的队列 |
Send-Q | 发送数据的队列 |
Local Address | Linux系统这一段的套接字 |
Foreign Address | 网络另一端的套接字 |
State | 连接状态,LISTEN 表示监听,ESTABLISHED 表示已建立连接 |
PID/Program name | 进程名称 |
10、软件安装相关命令
10.1 rpm
1)命令:rpm
2)作用:安装软件
3)语法:rpm [参数] rpm包
4)参数:
- -i:install的意思,安装
- -v:查看更详细的安装信息画面
- -h:以安装信息栏显示安装进度
RPM 安装软件的默认路径:
- /etc:配置文件放置目录
- /usr/bin:一些可执行文件
- /usr/lib:一些程序使用的动态链接库
- /usr/share/doc:一些基本的软件使用手册与说明文件
- /usr/share/man:一些man page档案
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm --force --nodeps
10.2 yum
yum 可以看作是 CS 架构的软件,yum 的存在很好的解决了 rpm 的属性依赖问题。
yum 通过依赖 rpm 软件包管理器, 实现了 rpm 软件包管理器在功能上的扩展, 因此 yum是不能脱离 rpm 而独立运行的。
yum 是一个在线软件管理工具,所以使用 yum 进行的操作大都是需要在联网的条件下才能正常使用。
# 配置阿里yum源
# 1.安装wget(如果已经安装则省略)
yum install -y wget
# 2.备份
mv CentOS-Base.repo CentOS-Base.repo.bak
# 3.下载阿里云的Centos-7.repo文件
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 4.重新加载yum
yum clean all
yum makecache
# 5.检查配置源是否为阿里云的
cat /etc/yum.repos.d/CentOS-Base.repo
11、系统服务相关命令
11.1 service
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程。
1)命令:service
2)作用:服务管理,service命令其实是去/etc/init.d目录下,去执行相关程序
3)语法:service 服务名 [start(启动服务)、stop(停止服务)、restart(重启服务)、reload(重新加载服务)、status(查看服务状态)]
11.2 systemctl
1)命令:systemctl
2)作用:管理系统
3)语法:
- 启动服务:systemctl start 服务名(xxxx.service)
- 重启服务:systemctl restart 服务名(xxxx.service)
- 停止服务:systemctl stop 服务名(xxxx.service)
- 重新加载服务:systemctl reload 服务名(xxxx.service)
- 查看服务状态:systemctl status 服务名(xxxx.service)
11.3 chkconfig
1)命令:chkconfig
2)作用:用来更新、查询、改动不同执行级上的系统服务,常用systemctl代替此命令
3)语法:chkconfig 服务名 [on(开启服务)、off(停止服务)]
12、系统工作相关命令
12.1 重启 reboot
1)命令:reboot
2)作用:重启系统,由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用 root 管理员来重启
3)语法:reboot
12.2 关机 poweroff
1)命令:poweroff
2)作用:关闭系统,默认只有 root 管理员可以关机
3)语法:poweroff
12.3 下载网络文件 wget
1)命令:wget
2)作用:在终端中下载网络文件
3)语法:wget [参数] 下载地址
4)参数:
- -b:后台下载模式
- -P:下载到指定目录
- -t:最大尝试次数
- -c:断点续传
- -p:下载页面内所有资源,包括图片、视频等
- -r:递归下载
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
13、系统状态监测相关命令
13.1 查看网络配置信息 ip addr
1)命令:ip addr
2)作用:用于获取网卡配置与网络状态等信息
3)语法:ip addr
13.2 查看系统版本信息 uname
1)命令:uname
2)作用:用于查看系统内核与系统版本等信息
3)语法:uname
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
13.3 查看内存信息 free
1)命令:free
2)作用:用于显示当前系统中内存的使用量信息
3)语法:free
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2027896 943340 402348 9328 682208 902584
Swap: 2097148 13832 2083316
13.4 查看登录记录 last
1)命令:last
2)作用:用于查看所有系统的登录记录,这些信息都是以日志文件的形式保存在系统中
3)语法:last
13.5 查看历史命令 history
1)命令:history
2)作用:用于显示历史执行过的命令,一般配合管道使用
3)语法:history
默认显示最近1000行,如果觉得 1000 不够用,还可以自定义/etc/profile 文件中的 HISTSIZE 变量值。在使用 history 命令时,如果使用-c 参数则会清空所有的命令历史记录。
13.6 查看负载信息 uptime
1)命令:uptime
2)作用:用于查看系统的负载信息
3)语法:uptime
[root@localhost ~]# uptime
16:10:56 up 2 days, 6:44, 2 users, load average: 0.00, 0.01, 0.05
它可以显示当前系统时间、系统已运行时间、启用终端数量以 及平均负载值等信息。
14、磁盘管理相关命令
14.1 查看分区 fdisk
1)命令:fdisk
2)作用:查看分区
3)语法:fdisk [必要参数]
4)必要参数:
- -m:查看全部可用的参数
- -l:列出所有可用的分区类型
- -n:添加新的分区
- -d:删除某个分区信息
- -t:改变某个分区的类型
- -p:查看分区信息
- -w:保存并退出
- -q:不保存直接退出
14.2 查看硬盘使用情况 df
1)命令:df
2)作用:用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等
3)语法:df [参数] [目录名或文件名]
4)参数:
- -a:显示所有文件系统信息,包括系统特有的 /proc、/sysfs 等文件系统
- -m:以 MB 为单位显示容量
- -k:以 KB 为单位显示容量,默认以 KB 为单位
- -h:使用人们习惯的 KB、MB 或 GB 等单位自行显示容量
- -T:显示该分区的文件系统名称
- -i:不用硬盘容量显示,而是以含有 inode 的数量来显示
[root@localhost ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 998396 0 998396 0% /dev
tmpfs 1013948 0 1013948 0% /dev/shm
tmpfs 1013948 10632 1003316 2% /run
tmpfs 1013948 0 1013948 0% /sys/fs/cgroup
/dev/sda2 18240336 7285644 10005088 43% /
/dev/sda1 194235 140737 39162 79% /boot
tmpfs 202792 28 202764 1% /run/user/0
/dev/sr0 4600876 4600876 0 100% /run/media/root/CentOS 7 x86_64
14.3 创建链接文件 ln
1)命令:ln
2)作用:用于创建链接文件(Linux中的快捷方式)
3)语法:ln [参数] 目标文件
4)参数:
- -s:创建“符号链接”(如果不带-s 参数,则默认创建硬链接)
- -f:强制创建文件或目录的链接
- -i:覆盖前先询问
- -v:显示创建链接的过程
[root@localhost test02]# echo "Hello java " > a.txt
[root@localhost test02]# ll
总用量 68
-rw-r--r--. 1 root root 12 1月 5 16:29 a.txt
-rw-r--r--. 1 root lyl 683 12月 30 16:10 b.txt
-rw-r--r--. 1 root lyl 57988 1月 3 10:14 std_zt_nljgtj.sql
[root@localhost test02]# ln -s a.txt aaa.txt
[root@localhost test02]# ll
总用量 68
lrwxrwxrwx. 1 root root 5 1月 5 16:29 aaa.txt -> a.txt
-rw-r--r--. 1 root root 12 1月 5 16:29 a.txt
-rw-r--r--. 1 root lyl 683 12月 30 16:10 b.txt
-rw-r--r--. 1 root lyl 57988 1月 3 10:14 std_zt_nljgtj.sql