一、LINUX目录结构
1、LINUX操作系统的目录结构
2、目录内容
- /在LINUX中表示根目录
- 出现在开头的/表示根目录
- 出现在/后面的表示层次关系
3、相对路径和绝对路径
绝对路径:以根目录为起点,描述路径的一种写法,路径开头以/开头
相对路径:以当前路径为起点,描述路径的一种写法,路径不用以/开头
特殊路径符
- . 表示当前目录
- .. 表示上一层目录 若回退两级 则 cd ../.. 回退三级 cd ../../.. 以此类推
- ~ 表示HOME目录
二、LINUX命令
1、命令行格式
command [-options] [paramter]
参数:
command:命令本身
options:[可选,非必填]命令的一些选项,可以通过选项控制命令的细节
paramter:[可选,非必填]命令的参数,多用于指向命令的目标等
2、常用命令
- mkdir:创建文件夹
- mkdir -p :若没有该路径则会创建
- touch:创建文件
- cat:查看文件内容
- more:查看文件内容,空格键翻页,按键盘q退出
- which命令查找命令的程序文件
cp复制命令行格式
- cp [-r] [参数1] [参数2]
- -r 选项可选,用于复制文件夹使用,表示递归
- [参数1] linux路径,表示被复制的文件或文件夹
- [参数2] linux路径,表示要复制到的地方
mv移动文件或文件夹命令行格式
- mv 参数1 参数2
- 参数1:linux路径,表示被移动的文件或文件夹
- 参数2:linux路径,表示移动到地方,如果目标不存在则进行改名,确保目标存在。
rm删除文件或文件夹命令行格式
- rm [-r -f] 参数1 参数2 ... 参数N
- -r:用于删除文件夹
- -f:强制删除
- 参数1 参数2 .... 参数N:表示删除的文件或文件路径,按空格间隔
- rm命令支持通配符*,用于做模糊匹配
- 举例:
- *名称:表示任何以该内容结尾的内容
- 名称*:表示任何以该内容开头的内容
- *名称*:表示任何包含该内容的内容
find命令查找指定文件
- 语法格式:
- find 起始路径 -name "被查找文件名"
- find命令支持通配符*,用于做模糊匹配
- 举例:
- *名称:表示任何以该内容结尾的内容
- 名称*:表示任何以该内容开头的内容
- *名称*:表示任何包含该内容的内容
find命令按文件大小查找文件
- 语法格式:
- find 起始路径 -size +|- -n[kMG]
- +、- 表示大于和小于
- n表示数字
- kMG表示单位,k(小写)表示kb,M表示MB,G表示GB
grep命令从文件中通过关键字过滤文件行
- 语法:
- grep [-n] 关键字 文件路径
- 选项-n可选,表示在结果中显示匹配的行的行号
- 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议用" " 将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符的输入
wc命令做数量统计
- 语法:
- wc [-c -m -l -w] 文件路径
- 选项,-c,统计bytes数量
- 选项,-m,统计字符数量
- 选项,-l,统计行数
- 选项,-w,统计单词数量
- 参数,文件路径,被统计的文件,可作为管道符的输入
- wc命令若不带参数则输出内容为:行数 单词数 文件大小
管道符:|
- 管道符的含义:将管道符左边命令的结果,作为右边命令的输入
echo命令
- 可以使用echo命令在命令行内输出指定内容
- 语法:echo 输出的内容
反引号
- 被反引号包括的内容,会作为命令执行而不是普通字符
重定向符号
- >:将左命令的结果,覆盖写入到符号右侧指定的文件中
- >>:将左命令的结果,追加写入到符号右侧指定的文件中
tail命令
- tail命令可以查看文件尾部内容,跟踪文件的最新更改
- 语法:
- tail [-f -num] liunx路径
- 参数,Liunx路径,表示被跟踪的文件路径
- 选项,-f,表示持续跟踪
- 选项,-num,表示查看尾部多少行, 不填写默认10行
三、vi/vim编辑器
- 通过vi/vim编辑器编辑文件
- 语法:
- vi 文件路径
- vim 文件路径
- 如果文件路径表示的文件不存在,那么此命令会创建一个新的文件用于编辑
- 如果文件路径表示的文件存在,那么此命令用于编辑已有文件
3.1vi/vim使用方法和常用快捷键
模式 | 命令 | 描述 |
命令模式 | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置之后进入输入模式 |
命令模式 | I | 在当前行的开头,进入输入模式 |
命令模式 | A | 在当前行的结尾,进入输入模式 |
命令模式 | 0 | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
输入模式 | ESC | 任何情况下输入ESC都能回到命令模式 |
命令模式 | 键盘上、键盘k | 向上移动光标 |
命令模式 | 键盘下、键盘j | 向下移动光标 |
命令模式 | 键盘左、键盘h | 向左移动光标 |
命令模式 | 键盘右、键盘l | 向右移动光标 |
命令模式 | 0 | 移动光标到当前行的开头 |
命令模式 | $ | 移动光标到当前行的结尾 |
命令模式 | pageup(PgUp) | 向上翻页 |
命令模式 | pangdown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
命令模式 | dd | 删除光标所在行的内容 |
命令模式 | ndd | n是数字,表示删除当前光标向下n行 |
命令模式 | yy | 复制当前行 |
命令模式 | nyy | n是数字,复制当前行和下面的行 |
命令模式 | p | 复制粘贴的内容 |
命令模式 | u | 撤销复制 |
命令模式 | ctrl+r | 反向撤销修改 |
命令模式 | gg | 跳到行首 |
命令模式 | G | 跳到行尾 |
命令模式 | dG | 从当前行开始,向下全部删除 |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
命令模式 | d0 | 从当前光标开始,删除到本行的开头 |
底线命令模式 | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set paste | 设置粘贴模 |
四、LINUX系统的ROOT用户
1、用户
1.1超级用户和普通用户
在LINUX系统中,拥有最大权限的账户名为:root(超级管理员)
普通用户和root用户的区别:
- 普通用户的权限,一般在其HOME目录内是不受限制的
- 一旦除了HOME目录,大多数地方,普通用户只有读和执行的权限,没有修改权限
1.2普通用户和超级用户的切换
su 命令就是用于账户切换的系统命令,语法: su [-] 用户名
- - 符号是可选的,表示是否在切换用户后加载环境变量,建议带上
- 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
- 切换用户后后,可有通过exit命令退回上一个用户,也可以使用快捷键:crtl+d
- 使用普通用户,切换到其它用户需要输入密码
- 使用root用户,切换到其它用户,无需密码,可以直接切换
1.3sudo 命令
sudo命令,为普通的用户赋权,临时用以root身份执行
语法:sudo 其它命令
在其它命令之前,带上sudo,即可为这一条命令临时赋root权限,但并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证
2、用户组
2.1用户和用户组
2.2用户组管理
用户组管理需要使用root用户执行
- 创建用户组
- 命令:groupadd 用户组名
- 删除用户组
- 命令:groupdel 用户组名
2.3用户管理
用户管理需要使用root用户执行
- 创建用户
- 命令:useradd [-g -d] 用户名
- 选项:-g 指定用户的组,不指定-g,会创建同名组并自动加入,使用-g需要组已存在,如已存在同名组,必须使用-g
- 选项:-d 指定用户的HOME路径,不指定,HOME路径默认在:home/用户名
- 删除用户
- 命令:userdel [-r] 用户名称
- 选项:-r 删除用户的HOME路径,不是用-r 删除用户时,HOME路径保留
- 查看用户所属组
- id [用户名]
- 参数:被查看的用户名,如果不提供则查看自身
- 修改用户所属组
- 命令:usermod -aG 用户组 用户名
- 将指定用户加入指定用户组
2.4查看系统用户
语法:getent passwd
查询结果内有7个信息:
用户名:密码(X):用户ID:组ID:描述信息(无用):HOME(目录):执行终端(默认bash)
2.5查看系统用户组
语法:getent group
查询结果内有3个信息:
组名:组认证(X):组ID
3、权限控制
3.1rwx的含义
- r表示读权限
- w表示写权限
- x表示执行权限
3.2文件和文件夹rwx含义的区别
- r针对文件可以查看文件内容
- r针对文件夹可以查看文件夹下的内容
- w针对文件表示可以修改此文件
- w针对文件夹表示可以在文件夹内容进行创建、删除、改名等操作
- x针对文件表示可以将此文件当做程序执行
- x正对文件夹表示可以更改工作目录到此文件夹内
3.3修改权限控制
3.3.1chmod命令
可以使用chnod命令,修改文件和文件夹的权限信息
注意:只有文件、文件夹的所属用户或root用户可以修改
语法: chmod [-R] 权限 文件或文件夹
选项:-R ,对文件夹内的全部内容应用同样操作
实例:
chmod u=rwx g=rx o=x 文件名
chmod 751 文件名/文件夹
以上表示的含义均为 这个文件所属用户有读写执行 用户所属用户组有读和执行 其它用户只有执行的权限
chmod -R u=rwx g=rx o=x 文件夹
chmod -R 751 文件名/文件夹
以上表示的含义均为 这个文件夹所属用户有读写执行 用户所属用户组有读和执行 其它用户只有执行的权限,对文件夹内的全部内容应用同样操作
3.3.2chown命令
使用chown命令,修改文件和文件夹的所属用户和用户组,此命令只适用于root用户执行
语法:chown [-R] [用户][:][用户组] 文件或文件夹
- 选项:-R,对文件夹内的全部内容应用同样操作
- 选项:用户,修改所属用户
- 选项:用户组,修改所属用户组
- :(冒号):用于分割用户和用户组
实例:
chown lj:lj 文件
将文件所属用户修改为lj,用户组修改为lj
chown -R lj:lj 文件夹
将文件夹所属用户修改为lj,用户组修改为lj,并对文件夹内的全部内容应用同样操作
五、软件安装和服务自启动
软件安装
语法:yum -y [install | remove | status] 服务名
服务自动启
语法:systemctl [start|stop|stauts|enable|disable] 服务名
六、软连接
ln命令创建软连接
在系统中将文件或文件夹链接到其它位置
语法: ln -s 参数1 参数2
选项: -s 创建软连接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
七、日期和时区
date命令
可以通过date命令在命令行中查看系统的时间
语法:date [-d] [+格式化字符串]
-d:按照给定的字符串显示日期,一般用于日期计算
格式化字符串:通过特定的字符串标记,用来控制显示的日期格式
%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 到现在的秒数
八、IP地址和主机名
查看主机名称:hostname
变更主机名称:hostnamectl set-hostname 新主机名
九、网络请求和下载
9.1ping命令
可以通过ping命令,检查指定的网络服务器是否是可联通状态
语法:ping [-c num] ip或主机名
选项-c:检查的次数,不使用-c选项,将无限次数持续检查
参数:ip或主机名,被检查的服务器的ip地址或主机名地址
9.2wget命令
wget是非交互式的文件下载器,可以在命令行内下载网络文件
语法: wget [-b] url
选项: -b ,可选,后台下载,会将日志写在当前工作目录的wegt-log文件
参数:url 下载链接
9.3curl命令
curl命令可以发送网络请求,可用于:下载文件,获取信息等
语法: curl [-O] url
选项: -O,用于下载文件(仅访问地址不需要加-O),当url是下载链接时,可以使用此选项保留文件
参数:url,要发起请求的网络地址
十、端口
端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类
- 物理端口:又成之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
- 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
Linux系统可以支持65535个端口,这65535端口分为3类进行使用:
- 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用
- 注册端口:1024~49151,通常可以随意使用,用于宋丹的绑定一些程序\服务
- 动态端口:49152~65534,通常不会固定绑定程序,而是当程序进行网络连接时,用于临时使用。
查看端口占用
语法: netstat -anp |grep 端口号,安装netstat:yum -y install net-tools
十一、进程
程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
并会为每一个进程都分配一个独有的:进行ID(进行号)
查看进行
语法: ps [-e -f]
选项:-e,显示出全部的进行
选项:-f,以完成格式化的形式展示信息(展示全部信息)
从左到右分别是
- UID:进程所属的用户ID
- PID:进程的进程号ID
- PPID:进程的父ID(启动此进程的其它进程)
- C:此进程的启动时间
- STME:进程的启动时间
- TIY:启动此进程的终端序号,如果显示?,表示非终端启动
- TIME:进程占用CPU的时间
- CMD:进程的启动命令或启动路径
关闭进程
语法: kill [-9] 进程ID
选项:-9,表示强制关闭进程。
十二、主机状态监控
查看系统资源占用
可以通过top命令查看cpu、内存使用情况
默认每5秒刷新一次,语法:直接输入top即可,按q或ctrl+c退出
- 第一行
top:命令名称 ;15:35:21:当前系统时间 ;up 1:10 :启动了1分10秒;5 users:5个用户登录;load average:1、5、15 分钟负载
- 第二行
Tasks:184个进程;2 runing:2个进程在运行;182 sleeping:182个进程睡眠;0个停止进程,0个僵尸进程
- 第三行
%Cpu(s):CPU使用了;us:用户CPU使用率;sy:系统CPU使用率;ni:高优先级进程占CPU时间百分比;id:空闲CPU率;wa:IO等待CPU占用率;hi:CPU硬件中断率;si:CPU软件终端率;st:强制等待占用CPU率 - 第四、五行
Kib Mem:物理内存,total:总量;free:空闲;used:使用;buff/cache:buff和cache占用
KibSwap:虚拟内存(交换空间),total:总量;free:空闲;used:使用;buff/cache:buff和cache占用
- PID:进程ID
- USER:进程所属用户
- PR:进程优先级,越小越高
- NI:负值表示高优先级,正表示低优先级
- VIRT:进程使用虚拟内存,单位KB
- RES:进程使用物理内存,单位KB
- SHR:进程使用共享内存,单位KB
- S:进程状态(S-休眠,Z-僵死状态,N-负数优先级,I-空闲状态)
- %CPU:进程占用CPU率
- %MEM:进程占用内存率
- TIME+:进程使用CPU时间总计,单位10毫秒
- COMMAND:进程的命令或名称或程序文件路径
选项 | 功能 |
-p | 只显示某个进程信息 |
-d | 设置刷新时间,默认是5S |
-c | 显示产生进程的完整命令,默认是进程名 |
-n | 指定刷新次数,比如 top -3 ,刷新输出3次后退出 |
-b | 以非交互非全屏默认运行,以批次的方式执行 top ,一般配合 -n指定输出几次统计信息,将输入的重定向到指定文件,比如: top -b -n 3 > /tmp/top.tmp |
-i | 不显示任何闲置(idle)或无用(zombie)的进程 |
-u | 查找特定用户启动的进程 |
按键 | 功能 |
h | 显示帮助画面 |
c | 会显示产生进程的完整命令,等同于-c |
f | 可以选择需要展示的项目 |
M | 根据驻留内存大小(RES)排序 |
p | 根据CPU使用百分比大小进行排序 |
T | 根据时间/累计时间进行排序 |
E | 切换顶部内存显示单位 |
e | 切换进程内存显示单位 |
I | 切换显示平均负载和启动时间信息 |
i | 不是显示闲置或无用进程,等同于-i |
t | 切换显示CPU状态信息 |
m | 切换显示内存信息 |
磁盘信息监控
语法:df [-h]
选项:-h ,以更加人性化的单位显示
磁盘信息监控
语法: iostat [-x] [num1] [num2]
选项:-x,显示更多信息
num1:数字,刷新间隔,num2:数字,刷新次数
网络状态监控
语法: sar - n DEV num1 num2
选项: -n,查看网络,DEV表示查看网络接口
num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)
十三、环境变量
在LINUX系统中执行:env命令即可查看当前系统中记录的环境变量
$符号
在LINUX系统中,$符号被用于取“变量”的值
自行设置环境变量
- 临时设置:export 变量名 = 变量值
- 永久生效
- 针对当前用户生效,配置在当前用户的 ~/bashrc文件中
- 针对所有用户生效,配置在系统的~/etc/profile文件中
- 并通过语法,source配置文件,或重新登录生效
十四、上传和下载
rz和sz命令需要安装,可以通过yum -y install lrzsz
rz:进行文件上传
sz:进行文件下载
语法: sz 文件名
十五、压缩和解压缩
tar命令
语法:tar [-c -v -x -f -z -C] 参数1,参数2,.......参数n
- -c ,创建压缩文件,用于压缩模式
- -v,显示压缩、解压过程,用于查看进度
- -x,解压模式
- -f,要创建的文件,或要解压的文件, -f选项必须在所有选项中位置处于最后一个
- -z,gzip模式,不使用-z就是普通的tarball格式
- -C,选择解压的目的地
tar常用的压缩组合命令
tar -cvf 文件名称.tar 参数1,参数2,参数3.....参数n
tar -zcvf 文件名称.gz 参数1,参数2,参数3.....参数n
tar常用的解压组合命令
tar -xvf 文件名.tar
tar -xvf 文件名.tar -C 地址
tar -zxvf 文件名.tar -C 地址
zip命令
zip压缩文件
语法: zip [-r] 参数1,参数2 .......参数n
选项:-r,被压缩的包含文件夹时使用
unzip解压文件
语法:unzip [-d] 参数
选项:-d,指定要解压到的位置
参数:被解压的zip压缩包文件