linux系统
一句话理解linux系统:和windows一样,都是一种计算机操作系统。
为什么windows系统看起来更友好,但是企业中不用windows系统而选择linux呢?
总结为三点:
1.linux系统也是代码开发出来的,是开源的,源码可见,用户也可以去修改
2.linux提供简单强大的命令行操作
3.linux是一个模块化的操作系统,可以轻松添加或移除组件
Linux的发行版本有很多,但是最权威的发行发行公司属 red hat,红帽公司发行的版本主要有:
Rhel红帽企业版:专门为企业提供稳定,商业支持的发行版本
文件类型
执行之后显示了很多内容,但是这些内容都代表什么意思呢?
文件类型
“-”表示普通文件;
“d”表示目录;
“l”表示链接文件;
“p”表示管理文件;
“b”表示块设备文件;
“c”表示字符设备文件;
“s”表示套接字文件;
目录/链接个数
对于目录文件,表示它的第一级子目录的个数。注意此处看到的值要减2才等于该目录下的子目录的实际个数。
Include其实是没有子目录的,所以应该是0,但是它这里却显示2,这是因为要加上.目录和..目录。在linux下,
.目录表示当前目录
..目录表示上一级目录
文件属性
以back_init文件为例,其属性可分为三段:[rwx][rwx][r-x],其中:
第一段表示文件创建者/所有者对该文件所具有的权限,
第二段表示创建者/所有者所在的组的其他用户所具有的权限,
第三段表示其他组的其他用户所具有的权限。
r(Read,读取权限):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
w(Write,写入权限):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(execute,执行权限):对文件而言,具有执行文件的权限;对目录来说,该用户具有进入目录的权限。
所有者及组
表示该文件的所有者/创建者(owner)及其所在的组(group)。
文件大小
如果是文件,则表示该文件的大小,单位为字节。
如果是目录,则表示该目录符所占的大小,并不表示该目录下所有文件的大小。
b:字位(存储器的最小单位 bit) B:字节(Byte)
1汉字=2B
1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB
修改日期
该文件最后修改的日期时间。
文件名称
文件名,无需多说
字体颜色
在大多数的linux shell窗口中,还能用颜色来区分不同文件的属性:
灰白色表示普通文件;
亮绿色表示可执行文件;
亮红色表示压缩文件;
灰蓝色表示目录;
亮蓝色表示链接文件;
亮黄色表示设备文件;
一.执行指令
清屏 :clear
跳转目录 :cd 目录名 或 cd /目录/目录 路径区分相对路径和绝对路径
注意1:路径有相对路径和绝对路径
你处在你所在的目录A中时,你可以直接cd+A目录下的目录名a进入A目录的下级目录,那cd a , a就是相对路径
如果你此时正处在A目录中,你想进入根目录下的B目录中的b目录中的b1目录时 你就需要cd /B/b/b1,那么/B/b/b1就是b1目录的绝对路径注意2:cd是指令,目录名是指令的操作对象,二者之间要有空格。其他指令亦是如此。
返回上一级:cd ..
返回上两级:cd ../..
查看所有目录和文件:ll
查看当前所处绝对路径:pwd
创建目录:mkdir 目录名
创建平行目录:mkdir 目录名1 2 3
创建联级目录路:mkdir -p 目录1/2/3
新建文件:touch aa.txt
编辑文件:vi/vim aa.txt(当文件不存在时编辑结束立即创建名为aa文件)
编辑文件具体操作:按i进入编辑 开始 按esc 和:结束编辑这时输入wq(保存)或wq!(强制保存)或q!(不保存并退出)
查看文件:cat 文件名(文件全部内容)
:less 文件名(上下左右翻页查看)
:more 文件名(按百分比查看)
查看(按行数):head 文件(默认查看前10行)
:tail 文件 (默认查看后10行)
:head -n 数字 文件(产看前规定数字行数)
:tail -n 数字 文件 (查看后规定数字行数)
:tail -n +数字 文件 (查看从数字行数起到最后一行)
查找文件:find
find /目录/ "*.txt"查找目录下的所有.txt文件
find /目录/ -name aa.* 查找目录下名为aa的所有文件
忘记文件在哪find /* -name aa.txt
删除:rm -rf 文件或目录
复制:cp aa.txt a/cc.txt(把aa文件复制到a目录(考虑路径的绝对性)中给名为cc)
: cp -r /a/b /a/c(把a下的b目录复制到a下c目录中)
移动(剪切):mv a.txt ../(移动到上级目录)
:mv a.txt /目录/目录(绝对路径)把文件移到指定目录
:mv aa bb 档aa存在时把aa移到bb目中
:mv a.txt a/bb.txt 吧a.txt移动到a目录中 改名为bb
yum工具:检查是否安装 rpm -qa | grep yum
安装lrzsz工具:yum install lrzsz
lrzsz工具实现linux系统和windows系统之间交互
rz 是 windows系统上传到linux系统
sz 文件名 是从linux系统中下载文件到Windows系统中
新建用户
useradd 新用户名 -d/home/新用户名 -p 密码
cat /etc/passwd 查找所有用户
cat /etc/shadow 查看密码
然后在root用户下执行passwd (a1新用户名) 改密码 即可完成创建新用户
切换用户:su 用户名(a1)root到普通用户不要密码
普通用户到root 要密码
删除用户 :userdel -r 用户名(要重启一次xshell7 因为删除用户会结束进程 在操作一次删除命令 即可完成用户删除)
更改权限
chmod 777 aa.txt 给所有用户所有权限
chmod -R 777 aa 赋予所有用户aa目录下的全部目录和文件所有权限
chmod u/g/o-/+r/w/x aa.txt 针对文件aa进行用户权限(读/修改/执行)增减
chown a aa.txt 文件属主(属有人)修改
chown root.root aa.txt文件属主和属组修改
chgrp bb aa.txt 文件所在组修改
创建新组:groupadd 组名
cat /etc/group 查看一共多少组
groups 用户名 查看该用户所在组及成员
gruopdel 组名 删除组
useradd 新用户名 -g 组名 新建用户到指定组中
文件和目录压缩打包及解压
tar包 :
文件: tar -cvf a.tar a.txt(a文件压缩为tar格式)
tar -xvf a.tar(解压)
目录:tar -cvf bb.tar bb(目录压缩tar格式)
tar -xvf bb.tar(解压)
tar.gz包
文件:tar -zcvf a.tar.gz a.txt(a文件压缩为tar.gz格式)
tar -zxvf a.tar.gz (解压)
目录:tar -zcvf bb.tar.gz bb(目录压缩)
tar -zxvf bb.tar.gz (解压)
zip包
文件:zip a.zip a.txt
unzip a.zip
目录:zip -r bb.zip bb
unzip bb.zip
gzip打包(只能打包文件、不能打包目录)
gzip aa.txt ==》打包命令:打包文件后,源文件消失,只剩下包名
gunzip aa.txt.gz ==》解压命令:解压之后包名消失,出现源文件
打包和压缩
Windows的压缩文件的扩展名 .zip/.rar
linux中的打包文件:aa.tar
linux中的压缩文件:bb.gz
linux中打包并压缩的文件:.tar.gz
Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
命令:tar -zcvf 打包压缩后的文件名 要打包的文件,其中:z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
tar -zcvf ab.tar aa.txt bb.txt
或:tar -zcvf ab.tar *
解压
命令:tar [-zxvf] 压缩文件
其中:x:代表解压
示例:将/usr/tmp 下的ab.tar解压到当前目录下
tar -zxvf ab.tar
示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
tar -zxvf ab.tar -C /usr------C代表指定解压的位置
多有米项目搭建后用到的特别重要的指令(必需背下来)
实时查看动态日志 tail -f 日志名
根据关键字查看日志 cat Catalina.log | grep 关键字
根据日志刷新时间查看日志 sed -n '/开始时间/,/结束时间/p' [日志文件名] 例如:
sed -n '/2019-10-24 22:16:21/,/2019-10-21 20:16:58/p' all.log | grep 关键字
sed遇到的坑
精确查找的话,开始时间和结束时间必须要是日志里面有的,要是没有的时间,那查找就没有结果
如果开始时间日志里面是没有的,那么查询结果为空
如果结束时间日志里面是没有的,查询的结果就是开始时间到最后的全部日志
可以用模糊查询,比如查询时间段2019-10-24 22:14 到 2019-10-24 22:16
sed -n '/2019-10-24 22:14:*/,/2019-10-24 22:16:*/p' all.log
通过进程名或者进程号查看进程
ps -ef | grep 进程名/进程号
netstat -pan | grep 8080(端口号) 查看端口号被什么进程占用了
Kill -9 进程号 可以通过该指令杀掉占用了我端口号的进程