Linux介绍
参考文献
https://blog.csdn.net/u011863024/article/details/118473464
linux 是一种开源的操作系统,以下是不同的linux版本,都是用了linux内核开发的。
- VmWare;这是虚拟机,模拟电脑的软件
- CRT:远程访问的软件
常见命令
命令大全
https://blog.csdn.net/a303549861/article/details/93754526
切换目录命令cd
使用cd app 切换到app目录cd ..
切换到上一层目录cd /
切换到系统根目录cd ~
切换到用户主目录cd -
切换到上一个所在目录使用tab键来补全文件路径
列出文件列表
ls(list)是一个非常有用的命令,用来显示当前目录下的内容。配合参数的使用,能以不同的方式显示目录内容。 格式:ls[参数] [路径或文件名]
常用:
在linux中以 . 开头的文件都是隐藏的文件
* ls
* ls -a 显示所有文件或目录(包含隐藏的文件)
* ls -l 缩写成ll
创建目录和移除目录
mkdir(make directory)命令可用来创建子目录。
mkdir app 在当前目录下创建app目录
mkdir –p app2/test 级联创建aap2以及test目
rmdir(remove directory)命令可用来删除“空”的子目录:rmdir app 删除app目录
浏览文件
cat用于显示文件的内容。格式:cat[参数]<文件名>
* cat yum.conf
more一般用于要显示的内容会超过一个画面长度的情况。按空格键显示下一个画面。
回车显示下一行内容。
按 q 键退出查看。
* more yum.conf
* 空格显示下一页数据 回车显示下一行的数据
less用法和more类似,不同的是less可以通过PgUp、PgDn键来控制。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
* less yum.conf
* PgUp 和 PgDn 进行上下翻页.
【tail】
tail命令是在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件后几行的内容。
用法:
tail -10 /etc/passwd 查看后10行数据
tail -f catalina.log 动态查看日志(*****)
ctrl+c 结束查看
rm
rm 删除文件
用法:rm [选项]... 文件...
rm a.txt 删除a.txt文件
删除需要用户确认,y/nrm 删除不询问
rm -f a.txt 不询问,直接删除rm (只能珊瑚文件不能删除文件夹)
rm -r a 递归删除不询问递归删除(慎用)
rm -rf a 不询问递归删除
rm -rf * 删除所有文件
rm -rf /* 自杀
cp、mv
cp(copy)命令可以将文件从一处复制到另一处。一般在使用cp命令时将一个文件复制成另一个文件或复制到某目录时,需要指定源文件名与目标文件名或目录。
cp a.txt b.txt 将a.txt复制为b.txt文件
cp a.txt ../ 将a.txt文件复制到上一层目录中
cp -r:递归复制整个文件夹
mv 移动或者重命名(可以剪切文件和文件夹)
mv a.txt ../ 将a.txt文件移动到上一层目录中
mv a.txt b.txt 将a.txt文件重命名为b.txt
tar
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
打包:
tar –cvf xxx.tar ./*
打包并且压缩:
tar –zcvf xxx.tar.gz ./*
解压
tar –xvf xxx.tar
tar -zxvf xxx.tar.gz -C /usr/aaa
find
find指令用于查找符合条件的文件
示例:
find / -name “ins*” 查找文件名称是以ins开头的文件
find / -name “ins*” –ls
find / –user itcast –ls 查找用户itcast的文件
find / –user itcast –type d –ls 查找用户itcast的目录
find /-perm -777 –type d-ls 查找权限是777的文件
grep
查找文件里符合条件的字符串。
用法: grep [选项]... PATTERN [FILE]...示例:
grep lang anaconda-ks.cfg 在文件中查找lang
grep lang anaconda-ks.cfg –color 高亮显示
pwd
显示当前所在目录
touch
创建一个空文件
- touch a.txt
clear/ crtl + L
清屏
echo
echo 输出内容到控制台。
基本语法
echo [选项] [输出内容]
应用实例
案例:使用echo指令输出环境变量,输出当前的环境路径。
echo $PATH
案例:使用echo指令输出hello,world!
echo ”hello,world!“
head
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
基本语法
head 文件路径(功能描述:查看文件头10行内容)
head -n 5 文件路径(功能描述:查看文件头5行内容,5可以是任意行数)
应用实例
案例:查看/etc/profile的前面5行代码
head -n 5 /etc/profile
locate
ocate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
基本语法
locate 搜索文件
特别说明
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
应用实例
案例1:请使用locate指令快速定位hello.txt文件所在目录
updatedb -> locate hello.txt
需要联网
gzip/gunzip指令
基本语法
gzip (文件)(功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip (文件.gz)(功能描述:解压缩文件命令)
应用实例
案例1:gzip压缩,将/home下的hello.txt文件进行压缩
gzip hello.txt
案例2:gunzip压缩,将/home下的hello.txt.gz文件进行解压缩
gunzip hello.txt.gz
细节说明
当我们使用gzip对文件进行压缩后,不会保留原来的文件。
zip/unzip指令
zip用于压缩文件, unzip用于解压的,这个在项目打包发布中很有用的。
基本语法
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
zip常用选项
-r:递归压缩,即压缩目录unzip的常用选项
-d <目录>:指定解压后文件的存放目录
应用实例
案例1:将/home下的所有文件进行压缩成mypackage.zip
zip -r mypackage.zip /home/
案例2:将mypackge.zip解压到/opt/tmp目录下
upzip -d /opt/tmp/ mypackage.zip
tar指令
tar指令是打包指令,最后打包后的文件是.tar.gz的文件。
基本语法
tar [选项] XXX.tar.gz 打包的内容(功能描述,打包目录,压缩后的文件格式.tar.gz)。
选项说明
选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 通过gzip支持压缩或解压缩
-x 解包.tar文件
应用实例
案例1:压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz
tar -zcvf a.tar.gz a1.txt a2.txt
案例2:将/home的文件夹压缩成myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
案例3:将a.tar.gz解压到当前目录
tar -zxvf a.tar.gz
案例4:将myhome.tar.gz解压到/opt/自录下
tar -zxvf myhome.tar.gz -C /opt/
细节说明
指定解压到的那个目录,事先要存在才能成功,否则会抛错。
文件/目录所有者
二般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
查看文件的所有者
指令:ls -ahl
应用实例:创建一个组police,再创建一个用户tom,将tom放入police组,然后使用tom来创建一个文件ok.txt,看看情况如何。
groupadd police
useradd -g police tom
passwd tom 修改密码
touch ok.txt
ls -ahl
修改文件所有者
指令:chown 用户名 文件名
应用案例:使用root创建一个文件apple.txt ,然后将其所有者修改成tom。
chown tom apple.txt
文件/目录所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。
查看文件/目录所在组
基本指令
ls -ahl
应用实例
修改文件所在的组
基本指令
chgrp 组名 文件名
应用实例:使用root用户创建文件 orange.txt,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到police组。
touch orange.txt
chgrp police orange.txt
修改权限-chmod
chmod -R 777 ./ 递归修改权限
crond任务调度
crontab
常用选项
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
Vim编辑器
在Linux下一般使用vi编辑器来编辑文件。vi既可以查看文件也可以编辑文件。三种模式:命令行、插入、底行模式。
切换到命令行模式:按Esc键;
切换到插入模式:按 i 、o、a键;
i 在当前位置前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
切换到底行模式:按 :(冒号);更多详细用法,查询文档《Vim命令合集.docx》和《vi使用方法详细介绍.docx》
打开文件:vim file
退出:esc :q
修改文件:输入i进入插入模式
保存并退出:esc:wq
不保存退出:esc:q!
三种进入插入模式:
i:在当前的光标所在处插入
o:在当前光标所在的行的下一行插入
a:在光标所在的下一个字符插入
快捷键:
dd – 快速删除一行
yy - 复制当前行
nyy - 从当前行向后复制几行
p - 粘贴
R – 替换
which
which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
使用实例:
which pwd 查找pwd命令所在路径
which java 查找path中java的路径
一般模式切换到指令行模式的可用的按钮说明
:w 将编辑的数据写入硬盘档案中(常用)
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ 这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)
ZQ 不保存,强制退出。效果等同于 :q!。
:w [filename] 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号,或者为:set number
:set nonu 与 set nu 相反,为取消行号!
2.重定向输出>和>>
> 重定向输出,覆盖原有内容;>> 重定向输出,又追加功能;示例:
cat /etc/passwd > a.txt 将输出定向到a.txt中
cat /etc/passwd >> a.txt 输出并且追加
ifconfig > ifconfig.txt
ps
ps 正在运行的某个进程的状态
ps –ef 查看所有进程
ps –ef | grep ssh 查找某一进程
kill 2868 杀掉2868编号的进程
kill -9 2868 强制杀死进程
4.管道 |
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。示例
ls --help | more 分页查询帮助信息
ps –ef | grep java 查询名称中包含java的进程
ifconfig | more
cat index.html | more
ps –ef | grep aio
文件权限
- Linux三种文件类型:
普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
设备文件: Linux系统把每一个设备都看成是一个文件
修改root密码
https://blog.csdn.net/weixin_30895873/article/details/116552823
抓包命令tcpdump
- 首先需要root用户才能使用
- 需要安装这个命令,which tcpdump
使用命令:
#tcpdump --e host ICE
ICE 是一台装有linux的主机。它的MAC地址是0:90:27:58:AF:1A H219是一台装有Solaris的SUN工作站。它的MAC地址是8:0:20:79:5B:46; 上一条命令的输出结果如下所示:
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ICE. telne t 0:0(0) ack 22535 win 8760 (DF)
21:50:12是显示的时间, 847509是ID号,eth0 <表示从网络接口eth0接收该分组, eth0 >表示从网络接口设备发送分组, 8:0:20:79:5b:46是主机H219的MAC地址, 它表明是从源地址H219发来的分组. 0:90:27:58:af:1a是主机ICE的MAC地址, 表示该分组的目的地址是ICE。 ip 是表明该分组是IP分组,60 是分组的长度, h219.33357 > ICE. telnet 表明该分组是从主机H219的33357端口发往主机ICE的 TELNET(23)端口。 ack 22535 表明对序列号是222535的包进行响应。 win 8760表明发 送窗口的大小是8760。
tcpdump dst host 192.168.84.1 (查找目的地之的包信息)
tcpdump src host 192.168.84.1 (查找源地址的包信息)
参考:https://www.cnblogs.com/monogem/p/9802756.html