一. Linux系统管理
1.1 vi和vim的使用
1.1.1 vi和vim的简介
vi编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下。由于不需要图形界面,vi是效率很高的文本编辑器。尽管在Linux上也有很多图形界面的编辑器可用,但vi在系统和服务器管理中的功能是那些图形编辑器所无法比拟的。
vim是vi的增强版,比vi更容易使用。vi的命令几乎全部都可以在vim上使用。
1.1.2 vi和vim三种常见模式
一般模式: 以vi/vim 命令打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』快捷键来处理档案内容,也可以使用『复制、贴上』快捷键来处理你的文件数据。
**编辑模式:**按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可,编辑模式只能编辑,不能保存编辑的内容,他也不会自动保存,如果想要保存的话需要进入命令行模式,编辑模式回到一般模式:按ESC回到一般模式
**命令行模式:**在一般模式下,按shirt+:进入到命令模式在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的 !
vi和vim的使用:
一般模式:
用vi或者vim命令打开文件(vim test.txt),进入了一般模式;
可以查看文件的内容,并且可以通过上下左右键移动光标,查看文件某一部分;
但是不能编辑文件内容。
编辑模式:
在一般模式下,按i键或者a键,进入编辑模式;
可以编辑文件内容;
但是不能保存编辑的内容;
按Esc键,可以回到一般模式。
命令行模式:
在一般模式下,按shift+:,进入命令行模式;
输入:
q!-----不保存强制退出编辑器
wq-----保存并且退出编辑器
q------只是退出编辑器
1.1.3 Vi和vim常用快捷键
- 一般模式拷贝当前行(yy) , 拷贝当前行向下的5行(5yy),并粘贴§。
- 一般模式删除当前行(dd) , 删除当前行向下的5行(5dd)。
- 一般模式下,在文件中查找某个单词,[命令模式下:(/关键字),回车查找, 输入(n) 就是查找下一个]。
- 一般模式下,使用快捷键到达文档的最首行[gg]和最末行[G]。
- 一般模式下,在一个文件中输入"xxxx" ,然后又撤销这个动作(u)。
- 一般模式下,并将光标移动到10行shift+g
第一步:输入10
第二步:输入shift+g
第三步:回车
- 命令行模式下,设置文件的行号,取消文件的行号.[命令行下(: set nu) 和(:set nonu)]。
1.1.4 使用vi/vim编辑器创建文本
vim test.txt
进入编辑模式
编辑模式下只能编辑,不能保存
1.2 Linux用户管理
1.2.1 Linux用户简介
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。root用户是系统默认创建的管理员账号。
任何使用linux的系统资源的用户,必须使用一个合法的账号和密码
1.2.2 用户添加
useradd [选项] 用户名
useradd zhangsan:创建一个账号叫zhangsan,此时会创建账号、创建一个组zhangsan并且把zhangsan分到此组中、还会在/home下创建一个目录叫zhangsan作为新创建用户的根目录。
useradd -d /home/ls lisi:创建一个账号叫lisi,并且给lisi指定家目录/ls。
passwd zhangsan:给zhangsan设置密码。
在linux中任何一个用户都至少属于一个组,新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。
1.2.3 用户删除
userdel[选项] 用户名
userdel zhangsan:删除用户zhangsan,保留zhangsan的主目录。
userdel –r lisi:删除用户lisi,并且把lisi的主目录也删除。
1.2.4 查询用户信息
id 用户名
id zhangsan:查看用户zhangsan的信息。
1.2.5 切换用户
su 用户名
su zhangsan:切换到zhangsan用户。
注意:从高权限用户切换到低权限用户时,不需要输密码;否则,需要输密码。
另:exit命令可以回到原来的用户。
测试创建用户名huangsiyuan,切换eason用户以及删除的过程
1.3 Linux组管理
1.3.1 Linux组的简介
Linux的组类似于角色,系统可以对有共性的多个用户进行统一的管理。每一个用户都至少属于一个组,创建用户时如果不指定组,会默认创建一个跟用户名相同的组,并且把新创建的用户分配到组中,root用户默认属于root组。
Linux中的组相当于角色的概念,比如有一个文件只能让dev组的人访问,而其他人不能访问,则就把能够访问这个文件用户全部放在dev组下,这样我们设置权限的时候只需要设置各组的权限即可
1.3.2 添加组
groupadd 组名
groupadd devgroup:创建一个组devgroup。
1.3.3 删除组
groupdel 组名
groupdel devgroup:删除组devgroup。
1.3.4 添加用户时指定组
useradd –g 组名 用户名
useradd –g devgroup zhangsan:添加用户zhangsan,并且指定zhangsan属于组devgroup。
1.3.5 将用户添加到组/从组中移除
gpasswd –a/-d 用户名 组名
gpasswd –a zhangsan test 添加
gpasswd –d zhangsan test 移除
二. Linux命令
2.1 远程关机命令
立即关机命令
shutdown now
立即关机
shutdown -h now
指定 10 分钟后关机
shutdown -h 10
重新启动计算机
shutdown -r now
reboot
2.2 帮助指令
帮助命令可以让你在不了解具体命令但又没有网的时候进行操作
-
man命令(语法man 命令)
-
- 用来查看linux系统手册上的帮助信息:man 命令
- man ls
- 分屏显示、按回车翻一行、按空格翻一页、按q退出查看。
-
用来查看命名的内置帮助信息:help 命令
-
- help cd
2.3 文件目录指令
- pwd(显示当前光标所在目录)
-
ls(查看当前目录下所有的子目录和文件列表)
-
- ls -l /home :以列表形式显示
- ls -a /home:显示指定目录下所有的子目录和文件(包括虚拟的目录)
- ls -al /home:以列表形式显示指定目录下所有的子目录和文件(包括虚拟的目录)
-
切换目录:cd 目录名
-
- 有相对目录和绝对目录,如果想使用相对目录的话就需要使用pwd了解到自己处在哪个目录之下
- cd … 这个命令不管你在哪个目录,你都会返回当前目录的上一级目录
- cd …/hsy 这个是返回上一级目录然后再进入上一级目录的hsy目录下
-
创建目录:mkdir [选项] 目录名
-
- mkdir -p /opt/testDir/test3/test4 //在/opt/testDir目录下创建目录test3,并且在test3下创建test4(一次创建多级目录)
-
删除一个空目录:rmdir 目录名
-
创建一个或者多个空文件:touch 文件名列表(文件名之间用空格隔开)
-
- touch t1.txt
- touch t2.txt t3.txt t4.txt
-
复制文件或者目录:cp [选项] source(源) dest(目标)
-
- cp t1.txt test2 //把t1.txt文件复制到test2目录中
- cp -r test2 test5 //把test2目录复制到test5目录中(递归地复制目录)
-
删除文件或者目录:rm 文件名或者目录名
-
- rm t1.txt 提示删除文件
- rm -f t2.txt 强制删除文件
- rm -r test2 提示递归删除目录
- rm -rf test5 强制递归删除目录
-
移动目录或者文件:mv source(源) dest(目标)
-
- mv test.txt test1
- mv test1 test2
- mv t3.txt t3_new.txt 文件重命名
如果目标中已经存在该文件或者目录,则会提示是否覆盖。
-
查看文件内容:cat 文件名
-
- 文件内容一次性显示出来。
- cat t4.txt
- cat -n t4.txt 显示行号
-
分页查看文件文件内容:more 文件名 一次性加载文件所有内容到内存,分页显示
-
- 按回车翻一行、按空格翻一页
- more t4.txt
-
分页查看文件文件内容:less 文件名 分页加载文件所有内容到内存,分页显示
-
- less t4.txt
- 按回车翻一行、按空格翻一页,按q退出查看
-
查看文件的头10行:head [选项] 文件名
-
- head t4.txt
- head -n 5 t4.txt
-
查看文件的后10行:tail [选项] 文件名
-
- tail t4.txt
- tail -n 5 t4.txt
-
echo:输出系统变量或者常量的值到命令行终端。
-
- echo $PATH 输出环境变量到控制台
- echo Hello world 输出字符串到控制台
-
把前一个查看命令的结果输出到指定的文件中: 查看命令 > 文件名
-
- 如果目标文件不存在,则新建一个文件
- 如果目标文件已存在,则把文件以前的内容覆盖
- ls > ret.txt
- ls -al > ret.txt
- cat ret.txt > t3_new.txt 文件内容的复制
- cat t4.txt > t3_new.txt
-
把前一个查看命令的结果追加输出到指定的文件中:查看命令 >> 文件名
-
- 如果目标文件不存在,则新建一个文件
- 如果目标文件已存在,则在文件原来内容的基础上进行追加
- ls > ret.txt
- ls -al >> ret.txt
- cat t4.txt >> ret.txt
2.4 时间日期指令
2.4.1 data指令(查看或者设置系统的日期或者时间)
-
date 查看系统当前的完整的日期和时间
-
date +%Y 系统当前的年份
-
date +%m 系统当前的月份
-
date +%d 系统当前的日期
-
date ‘+%Y-%m-%d %H:%M:%S’ 按yyyy-MM-dd HH:mm:ss格式显示
-
date -S ‘2020-10-20 10:20:30’ 设置当前的系统时间
2.4.2 查看系统日历:cal
- cal:查看当前月份的日历
- cal 2021:查看指定年份的日历
2.5 linux中关于搜索文件或者目录的命令
-
find 搜索关键字
-
- find *.txt 搜索当前目录下,所有的.txt文件
- find e 搜索当前目录下,所有名称中包含e的那些文件或者目录
- find /etc *.txt 搜索/etc目录下所有.txt文件
- find /etc -size -5k 搜索/etc目录下所有小于5k的文件
- find /etc -user zhangsan 搜索/etc目录下所有的所有者是zhangsan的文件和目录
-
locate:在整棵目录树中搜索文件或者目录,都是根据名称搜索,效率高。
-
搜索过滤命令,在前一个搜索命令的结果中进行按名称进一步过滤:搜索命令 |grep [选项] 过滤条件
-
- find *.txt|grep new 搜索当前目录下,所有名称包含new的.txt文件
- find /etc -size -5k|grep firefox 搜索etc目录下小于5k的文件且文件名中带有firefox的文件
- cat t.txt|grep h 查看文件t.txt中包含h的所有关键字
2.6 压缩和解压缩的命令(重要)
2.6.1 gzip命令
-
压缩或者解压单个文件:gzip 文件名:压缩单个文件,生成一个.gz的压缩包,并且会把原来的文件删除。
-
- gzip t.txt 将t.txt压缩并将原来的文件删除
-
gunzip .gz压缩包名:解压.gz压缩包,并且会把原来的.gz压缩包删除。
-
- gunzip t.txt.gz 将t.txt压缩包解压缩并删除t.txt.gz压缩包
2.6.2 zip命令
-
压缩(打包)或者解压多个文件和目录,不删除原来的压缩包:zip 目标压缩包名称(通常使用.zip压缩包) 文件或者目录列表
-
- zip test.zip test.txt t.txt t_new.txt 压缩这三个文件为test.zip
-
unzip 压缩包名(.zip) -d 解压目录名:将指定的.zip压缩包解压到当前目录(或者指定目录)
-
- unzip test.zip -d test3
2.6.3 tar命令
-
压缩(打包)或者解压多个文件和目录:tar [选项] 目标压缩包名称(xxx.tar.gz) 文件或者目录列表
-
- tar -zcvf mytar.tar.gz test.zip t.txt 将test.zip和t.txt压缩到mytar.tar.gz文件中
-
tar [选项] 压缩包名(xxx.tar.gz) -C 解压目录名:将指定的.tar.gz压缩包解压到当期目录(或者指定目录)
-
- tar -zxvf mytar.tar.gz -C test3 将mytar.tar.gz解压到test3中
综上所述
- Linux下最常用的压缩文件就是.tar了,使用tar程序打出来的包我们常称为tar包。
对于tar包,可以再用gz,zip等压缩算法再次压缩,比如:jdk-8u181-linux-x64.tar.gz
- 解压缩命令
tar (可以保留原文件,可以压缩文件夹)
-c: 建立压缩档案
-r:向压缩归档文件末尾追加文件
-x:解压
-z:是否需用用gzip压缩;
-t:查看内容
-v:显示所有过程
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名,-f是必须的
压缩文件:tar -cvf abc.tar *.txt
解压文件:tar -xvf abc.tar
解压到指定的文件夹:tar -zxvf java.tar.gz -C /usr/java
zip (可以保留原文件,可以压缩文件夹)
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-v 显示指令执行过程或显示版本信息
-q 不显示指令执行过程。
压缩文件:zip -r abc.zip *.txt
解压文件:unzip -r abc.tar
gzip (不能保存原文件,不能压缩文件夹)
压缩文件:
1. tar -cvf abc.tar *.txt 得到abc.tar
2. gzip abc.tar 得到abc.tar.gz
解压文件:
gunzip abc.tar.gz 得到abc.tar
2.7 组管理命令
2.7.1 组的简介
Linux的组类似于角色,系统可以对有共性的多个用户进行统一的管理。每一个用户都至少属于一个组,创建用户时如果不指定组,会默认创建一个跟用户名相同的组,并且把新创建的用户分配到组中,root用户默认属于root组。
Linux中的组相当于角色的概念,比如有一个文件只能让dev组的人访问,而其他人不能访问,则就把能够访问这个文件用户全部放在dev组下,这样我们设置权限的时候只需要设置各组的权限即可
在linux中的**每个用户必须属于一个组,不能独立于组外,一个用户可以属于多个组。**可以改变用户所属组。
在linux中,每一个文件或者目录也必须属于一个组,而且只能属于一个组,默认情况下,文件所有者所属的主组就是文件所属的组;文件或者目录就可以通过组来控制哪些用户可以对他本身进行哪些操作的权限访问
在linux中每个文件有所有者、所在的组、其它组,也可以改变文件所在组。
在文件或者目录看来,linux系统中所有的用户分为三类:
所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
同组用户:跟文件或者目录属于同一个组的用户(这个一般是分配的)
其它组用户:既不是文件或者目录的所有者,也不是同组用户
2.7.2 查看文件组命令
ls -l
ls -ahl #(a-all,h-human,l-list)
2.7.3 修改文件组命令
修改文件所有者命令
chown 新所有者 文件名
chown newowner:newgroup file 同时修改用户的所有者和所有组
-R 如果是目录则使其下所有子文件或目录递归生效
功能说明:把文件所有者修改为指定的用户。
-
chown huangsiyuan index.js 修改index.js的所有者
-
chown -R huangsiyuan test 递归修改test目录下文件的所有者
-
chown huangsiyuan:index index.js 修改index.js文件的所有者并修改组为index
-
chown huangsiyuan:index test
-
chown -R huangsiyuan:index test 递归修改目录的所有者和所在的组
修改文件所在组命令
chgrp 新组名 文件名
-R 如果是目录则使其下所有子文件或目录递归生效
功能描述:把文件所在组改为指定组
- chgrp index index.js 将index.js文件所属的组修改为index组
- chgrp -R index test 将test目录下所有文件所属组递归修改为index组
2.8 权限管理命令
2.8.1 权限管理简介
在linux中,任何文件或者目录都有三种权限:读(Read)、写(Write)、执行(Execute)
-
对于文件而言:
-
- 读:可以读取、查看文件的内容, 比如:cat、more、less、head、tail等。
- 写:可以修改文件的内容,比如:vi或者vim等
- 执行:如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh。
-
对于目录而言:
-
- 读:可以读取、查看目录下边的内容,比如:ls等
- 写:可以修改目录中的内容,创建子目录、删除子目录、创建文件、删除文件、重名文件或者目录
- 执行:可以进入该目录, 比如:cd等。
在linux中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其它组用户权限。
- 第一部分权限:所有者权限,文件或者目录的所有者对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。比如:rwx:拥有读写执行的权限,r-x:拥有读和执行的权限,r–:只拥有读的权限,—:没有任何权限。
- 第二部分权限:同组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
- 第三部分权限:其它组用户权限,文件或者目录的其它组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
这里所说的权限都是文件和目录的权限。在Linux中,每一个文件和目录都有自己的访问权限,通过文件列表可以查看到。
2.8.2 查看权限命令
查看权限信息
ls -aul 文件名
查看所有用户信息
cat /etc/passwd
查看所有组信息
cat /etc/group
2.8.3 修改权限命令
第一种修改权限方式
修改文件或者目录的权限:chmod
- 用r、w、x分辨表示读、写、执行的权限,
- 用u、g、o、a分别表示给所有者、同组用户、其它组用户、所有用户修改权限
- 用+、-、=分别表示给指定的用户增加、减少、设置对应的权限
语法
chmod [权限增添] 目录或文件
如果想要同组用户能够使用cd命令访问路径的话必须要给同组目录添加上执行权限
如果想要让某一组用户能够访问某一个目录,则需要将目录放在该用户组下(也就是文件和用户需要在同一组下),设置为同组用户,然后给同组用户放开权限即可访问到
第二种修改权限方式
第二种方式:通过数字变更权限
chmod 一组三个数字 文件目录名
说明:r=4 w=2 x=1 rwx=4+2+1=7
每一个文件或者目录都有三部分权限,每一部分权限都可以用一组数据之和来表示,三部分权限就是一组三个数据序列:
chmod -R 550 test #给test目录所有文件递归让所有者和同组用户赋予读和执行的权限
2.8.4 修改用户所在组信息
Linux修改用户所在组方法
- usermod -g 用户组 用户名 强行设置某个用户所在组
- usermod -G 用户组 用户名 把某个用户改为 group(s)
- usermod -a -G 用户组 用户名 把用户添加进入某个组(s)
附usermod使用说明:
功能说明:修改用户帐号。
语 法:usermod [用户帐号]
补充说明:usermod可用来修改用户帐号的各项设定。
参 数:
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s 修改用户登入后所使用的shell。
-u 修改用户ID。
-U 解除密码锁定。
三. 网络配置
3.1 查看网络配置
虚拟机内查看
3.2 设置Linux网络配置
进入到/etc/sysconfig/network-scripts/ifcfg-ens33目录下配置这些文件
使用vim或者vm编辑器进行编辑
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.11.128
GATEWAY=192.168.11.2
DNS=192.168.11.2
四. 进程管理
4.1 进程介绍
在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。每一个进程,都会对应一个父进程。
进程有两种运行方式:前台和后台。前台方式是目前用户可以在前台操作的,后台方式是实际在运行,但用户在前台看不见。
一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。
4.2 操作进程命令
线程:一个程序的线路
进程:一个程序的执行,一个进程占用一个端口。
4.2.1 查看进程
语法:ps 参数
参数说明
- ps –a:显示当前终端下的所有进程信息
- ps –u:以用户的格式显示进程信息
- ps –x:显示后台进程运行的参数
- ps –e:显示所有进程信息
- ps –f:以全格式显示进程信息
ps //只会显示应用进程 ps -e //显示所有进程 ps -ef //以全格式的形式显示所有进程 //用于查看linux系统中某一些软件或者应用是否处于启动状态
- USER:用户名称
- PID:进程号
- %CPU:进程占用CPU的百分比
- %MEM:进程占用物理内存的百分比
- VSZ:进程占用的虚拟内存大小(单位:KB)
- RSS:进程占用的物理内存大小(单位:KB)
- TT:终端名称,缩写.
- STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
- STARTED:进程的启动时间
- TIME:CPU时间,即进程使用CPU的总时间
- COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
- PPID 父进程的ID
- C CPU使用的资源百分比
- PRI指进程的执行优先权(Priority的简写),其值越小越早被执行
- SZ 使用掉的内存大小
4.2.2 终止进程
语法:
- kill 选项 进程ID
- killall 进程名称(支持通配符)
选项说明:
-9:表示强迫进程立即停止。
4.3 服务管理
4.3.1 服务介绍
服务是支持Linux运行的一些必要程序,本质上也是进程,叫守护进程。守护进程通常默默地运行在后台,为应用程序提供必要支撑,比如sshd、防火墙等。
4.3.2 服务管理命令
设置服务
语法:
systemctl [start、stop、restart、reload、status、enable] 服务名称
功能描述:开启、关闭、重启、重新加载、查看服务状态、开机启动
- systemctl status firewalld 查看防火墙运行状态
- systemctl stop firewalld 关闭防火墙
- systemctl start firetalld 开启防火墙
- systemctl enable firewalld 设置防火墙开机启动
查看网络状态
netstat 选项
选项说明:
- -an 按一定顺序排列输出
- -p 显示哪个进程在调用
ping命令,查看网络连接
ping 选项 目标主机
功能描述:是一种网络检测工具,它主要是用检测远程主机是否正常,或是两部主机间的介质是否为断、网线是否脱落或网卡故障。
五. 总结
以上是本篇博文的全部内容了,里面包含了一些Linux的常用命令,里面也配有相应的图片和命令的一些解释,正在整理下一篇的笔记,下一篇给大家带来的是在Linux服务器上面配置相应的环境以及部署项目的一些相关的知识。
本篇博文,大家看一看,如果发现有什么不对的,或者有什么不足的,大家可以多多提出,咱们一起学习,共同进步!!!