文章目录
Linux系统中文件目录树
基本指令的使用:
shell
Linux命令的帮助信息查看
--help
command --help 说明: 显示command 命令的帮助信息
通过man命令查看帮助信息
shell
man command( 命令的名称)
man 命令查看的帮助信息更加详细
ls,pwd,cd,touch,mkdir,cp,mv,rm,clear
ls -----> 显示文件或者目录
shell
ls[-lah] [文件或目录]
- -l 以列表的形式显示出文件或目录的内容
- -a 显示所有的文件或目录,包含隐藏文件
- -h 显示出文件的目录或大小
shell
ls 列举出当前目录中的文件内容
ls -l
ls -a
ls -lh h 一定要和l要一起使用
ls -lha 以列表方式,更加人性化,显示所有文件
ls -lha /usr/bin 查看/usr/bin 文件里面的内容
将根目录下所有的文件详细信息输出到demo文件中(包含隐藏文件)
touch------> 创建文件
shell
touch demo 创建一个名为 demo 的文件 注意是文件,不是文件夹
如果创建的文件名不存在,则新建一个文件
如果创建的文件名已存在,则更新文件的修改时间
pwd------> 向用户展示此时子啊哪个目录下
shell
pwd 显示用户当前操作在哪个目录
cd------> 切换目录
shell
cd 切换目录
cd [目录路径]
绝对路径: 绝对路径必须是根目录 /
开头或者 ~
然后一个层级一个层级定义对应目录,目录与目录之间用 /
分隔
相对路径:不以根目录 /
或者~
开头,而是以当前路径开始,结合返回上层路径(...) 来和相对路径的切换
shell
cd 或者 cd ~ 返回到根目录
cd .. 返回到上一层目录
cd - 返回到上一次的目录
比如说原来的路径为 /
我们使用 cd /etc/abrt
那么此时就切换到了 /etc/abrt
然后使用 cd ..
切换到上一级目录 /etc
,cd -
切换到上一次所在的路径 /
创建目录: mkdir
格式: mkdir 目录名称(多个目录之间用户空格隔开)
通过 -p 选项,实现多个层级的目录创建
shell
mkdir -p dir1/dir2/dir3
如果创建的目录名称已存在,则创建失败
mkdir mike 在当前路径下,新家mike 文件夹
mkdir /mike 在根路径下,新建mike文件夹
rm 删除文件或者目录
语法: rm [选项] 文件
使用rm 命令要小心,因为文件删除后不能恢复,为了防止文件误删,可以在rm后使用-i参数
以逐个确认要删除的文件
参数:
-i 以进行交互式方式执行
-f 强制删除,忽略不存在的文件,无需提示
-r 递归的删除目录中的文件,删除文件夹时此参数
删除bb 文件
rm -i bb
删除adir文件
shell
rm -r adir
rm -ir adir
删除当前目录下所有文件和文件夹
shell
rm -rf *
rm -rf /* 删除根目录下的所有文件
cp ------> 将给出的文件或目录 复制 到另一个文件或目录中
语法: cp [选项] 数据源 目的地
创建文件 file 并重命名为 aa
touch file mv file aa
复制文件aa 到 adir 目录下(要求提示符)
shell
cp -i aa adir
cp aa adir 把aa 文件复制到adir目录中
ls adir/ 查看adir目录中的文件有什么
-i 交互是复制,在覆盖目标文件之前将给出提示要求用户求人
-f 覆盖已经存在的目标文件而不提示
-r 若给出的源文件是目标文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
-v 显示拷贝的进度
如果命令单用,不能实现目的,应该想到需要使用命令选项扩充提示文件存在是否覆盖
如果目标文件是文件夹,需要使用 r 选项,否则无法复制
复制文件夹 bdir 到 adir 目录下
shell
cp -r bdir/ adir/
mv ------> 用户可以使用mv 命令来移动文件或目录,也可以给文件或目录重命名
语法:mv[选项] 数据源 目的地
选项参数
-f 禁止交互操作,如有覆盖也不给出提示
-i 确认交互方式操作,如果mv 操作将导致对已有的目标文件的覆盖西东会访问是否重写,要求用户回答以避免误覆盖文件
-v 显示移动进度
shell
mv aa cdir/bdir/
创建多个文件
shell
touch bb cc
>/>> ------> 重定向:
Linux允许将命令执行结果 重定向到一个文件中
将本应显示在终端上的内容 输入 / 追加到指定文件中
>
表示的是 输出 会覆盖文件原有的内容
>>
表示追加,会将内容追加到已有文件的末尾
shell
ls -al / > demo
cat/less/more------> 查看文件:
作用: 会一次性显示所有内容,适合 查看内容较少的文本文件,可以用来查看文件,常见文件,合并文件,追加文件
语法: cat [选项] 文件
-b 对非空输出行编号
-n 对输出的所有行编号
shell
cat demo
cat /usr/include/stdio.h
cat -n /usr/include/stdio.h
less
作用:用于分屏显示文件内容,每一次只显示一页内容,适合于查看内容较多的文本文件
less[参数] 文件
参数选项:
-N 对输出的所有行编号
使用less 的操作键:
空格键 显示手册页的下一屏
enter / 上下光标键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 后退
/word 搜索word字符串
shell
more demo 和 less 是增加效果
less 和 more 都常用于查看文件较多的文件信息快捷键,两个命令基本操作快捷键相同
注意 想要以分屏样式查看大量内容的文件信息,文件的内容至少应该超过当前终端窗口的显示大小
grep ------> 根据关键词,搜索文本文件内容
语法: grep [选项] 关键词 文件
参数选项
-v 显示不包含匹配文本的所有行(相当于求反)
-n 显示匹配行及行号
-i 忽略大小写
grep 正则表达式:
'^a' : 表示搜索的文件内容行时以a 开头的
'ke$' 表示搜索的文件内容行时以ke 结尾
[Ss]igna[LI] 匹配[]中的任意一个字符,寻找匹配单词为SignaL,Singal,signal,signaL,signal 的行
grep -n '[Ss]igna[Ll]' test.txt
grep -nv 'ke$' 1.txt 在1.txt查找不是ke结尾的内容,原因时,加了-v,是取反的意思
grep -i 'signal' 1.txt 在1.txt查找signal的内容,-i忽略大小写
grep -n '[Ss]igna[Ll]' 1.txt 第一个字母为 S 和 s 最后一个为 L 和 l
管道 |
Linux 允许将一个命令的输出可以通过管道作为另一个命令的输入
可以理解显示生活中的管子,管子的一头塞东西进去,另一头取出来,这里 | 的左端为塞东西(写) 右端取东西(读)
常用的管道命令:
less : 分屏显示内容
grep : 在命令执行结果的基础上查询指定的文本
shell
ls -l /usr/bin | grep more
ls -l /usr/bin 本来显示在屏幕的内容,放在管道
通过管道取出关键信息
管道的另一边 grep more 把管道的内容只取出包含more关键字的内容
ls /usr/bin | grep ^au
ls /usr/bin 显示的内容 放入管道
管道的另一边,只取出au开头的内容
查找demo 文件内容中包含mysql 的信息
grep 内容文件名: 从文件中查找包含特定内容的信息
shell
grep mysql demo
在 /usr/bin 目录下所有文件的信息中查找包含 mysql 的信息
shell
ls -al /usr/bin/ | grep mysql
通过管道符可以方柏霓快捷的将两条指令结合起来,以省去现将结果写入文件,再进行查找的操作
注意在测试工作中,我们只需要掌握管道符后侧使用的命令为 grep
将根目录下所有文件的详细信息输出到demo 文件中
shell
ls -al / > demo
回显: echo
重启和关机命令
重启命令: reboot
关机命令: shutdown
对应的选项:
shell
shutdown -r now 表示重启,会给其他用户发送提示信息
shutdown -h now 表示立即关机
shutdown -h 20:25 表示定时关机,晚上8;25定时关机
shutdown -h + 10 表示从当前在往后十分钟进行关机
ps------> 查看系统进程
命令格式: ps -aux | grep '关键字'
-a 显示所有用户的进程
-u 显示进程的详细状态
-x 显示没有控制终端的进程
一般会就和grep 及管道符去查找特定的进程信息
shell
ps -aux | grep 'sedispatch' 查找系统进程当中包含 sedispatch 关键字的进程信息
实时查看系统的进程信息: top
快捷键:
M 可以按内存的使用率降序排序显示进程信息
P 可以按CPU的使用率降序排列显示进程的信息
kill ------ > 关闭进程
命令格式: kill -9 进程ID
进程ID 一般会通过ps 命令去看到
-9 表示的是强制的关闭对应的进程
注意: 需要注意当前执行操作的用户,普通用户不能关闭其他用户的进程,智能关闭自己打开的进程
netstat ------ > 查看系统监听端口
命令格式: netstat [-anptu] | grep '关键字' (必须是root用户操作)
-a 选项: 查看所有已打开的端口
-n 选项: 以数字方式显示已打开的端口,不显示别名
-p 选项: 显示对应的进程PID
-t选项 显示出 tcp 协议的端口
-u 选项 显示出udp 协议的端口
shell
查看当前系统中已打开的TCP协议端口
netstat -anpt
查看当前系统中是否已经打开了3306 端口
netstat -anptu | grep '3306'
查看当前系统中是否已打开http的服务:
netstat -aptu | grep 'http'
lsof ------> 查看系统监听端口
命令格式: lsof -i(root用户操作)
-i 表示查看所有一打开的进程的端口
例子:查看系统所有打开的进程端口
shell
lsof -i
查看系统中3306 的 端口是否已打开
shell
lsof -i:80
netstat 和 lsof 的区别:
shell
netstat -anptu | grep ssh
端口和进程号都能查
lsof -i:22 只能根据端口查进程号
使用场景:
当我们去启动某个应用程序时,该应用程序的端口有可能被其他程序占用
那么此时就可以通过netstat 或者 lsof 查看对应的端口被占用了
然后关闭对应的进程,重新启动要重启的应用程序
head/tail------> 查看日志文件:
head 命令
head 用来显示文件前10行内容 如果不加参数默认显示文件前10行内容
head -15 文件名 显示文件前15行内容
例子:
查看某个文件的开头10行内容 head -10 temp.txt
提示 一般用于,想要查看一个很大的文件前几行内容时使用
tail 命令
tail 显示文件后10行内容 如果不加参数默认显示文件后10行内容
tail -15 文件名 显示文件结尾15 行内容
tail -f 文件名 实时监控文件内容 用于查看线上服务的运行日志,实时显示写入日志的信息
查看某个文件的结尾10行内容
tail -10 temp.txt
注意 head和tail 命令多用于查看日志文件内容时使用
说明 日志文件 (一种负责记录系统或程序允许过程信息的文件)
作用: 测试人员可以通过查看日志文件信息,帮助判断Bug出现的原因
将 ping www.itheima.com 的信息输出到 ping_log文件中
shell
ping www.baidu.com >> ping_log
重新开启一个终端窗口,动态查看ping_log 文件中的信息
shell
tail -f ping_log
说明: 只要目标文件的内容是一直写入的状态,使用tail -f 文件名,即可实现实时监控文件内容变化的操作
应用场景: 当测试发现问题时,需要去查看后台的日志信息,具体操作步骤:通过tail -f 日志文件名(实时打开对应的日志文件并查看)
操作系统复现对应的问题(此时会将操作中出现错误的日志信息打印到tail -f的查看窗口中)
shell
pwd 查看当前目录的路径
clear 清屏
which 工具名称 查找工具的安装位置
find------>查找文件
命令格式: find[路径] -name 文件名
路径可有可无,没有的情况表示的是当前目录
文件名可以使用通配符,使用通配符时,文件名必须在一号里面
例子: find .-name test.sh 在当前目录及子目录下查找为test.sh的文件
例子: find .-name'abc*.txt' 在当前目录及子目录下查找名称为abc开头的txt文件
ln ------ > 链接
命令格式: ln -s 源文件 链接文件
说明:
源文件必须使用绝对路径
不加-s 参数表示的是硬链接
shell
ln -s /hone/admin/mike mike_link
这里的mike_link 相当于是一个快捷方式
我们可以通过这个链接和原本的文件去修改在同一份内容中写入的内容,并且如果把源文件删除,那么此时的链接文件是不能访问原文件的,就等于说链接文件不能指向源文件,不能引用其中的东西。
硬链接:
相当于 把源文件复制了一份,但是这个硬链接和传统意义上的复制是不一样的,因为源文件和这个硬链接文件指向的是同一份内存地址。就是源文件和链接文件中的内容是一样的,但是如果删除了源文件,此时的链接文件是依然存活的。
软链接和硬链接的区别:
软连接的源文件被删除后,链接文件失效,没有意义
硬链接的源文件被删除后,链接文件还存在,链接文件的大小与源文件的大小一致。硬链接只能是普通文件,不能是文件夹
chmod ------> 用户权限和管理:
权限: 读 写 执行 无权限
英文: read write execute
缩写 r w x -
修改用户权限chmod 字母法
命令格式: chmod u+rwx 1.txt
用户选项:
u 表示的是所属的用户
g 表示的是所属的用户组
0 表示的是其他用户
a 表示的是所有的用户
+
表示的是增加权限
-
表示的是撤销权限
=
表示设置权限
shell
chmod u+w 1.txt 表示对当前目录下的1.txt文件的当前用户增添写的权限
chmod g-x 1.txt 表示对当前目录下的1.txt文件撤销用户组的执行权限
chmod o=rwx 1.txt 表示对当前目录下的1.txt文件的其他用户权限设置wield可读可写可执行
修改用户权限 chmod数字法
修改文件的权限:
创建abc.txt 文件,将该文件的权限改成 拥有者 读写执行 用户组 读写 其他用户 读写
shell
chmod 766 abc.txt
通过数字法修改abc.txt文件权限为: 拥有者 读写执行 用户组 读执行 其他用户 读执行
shell
chmod 755 abc.txt
增加用户,查看登录用户
增加用户: useradd 用户名
shell
useradd -g root admin1 创建用户时,并指定用户的组为root组
查看当前登录的用户: who
删除用户
shell
userdel -r 用户名 -r 作用把用户目录都删除
shell
sudo useradd -g root mike
新建用户叫mike 加到root 用户组中
sudo userdel -r mike
切换用户,修改密码,退出
切换用户
shell
su-: 切换到root 用户,需要输入 root 的密码
su用户名 切换到指定的用户下,如果是从root用户下切换,不需要输入密码
修改密码:
shell
passwd: 修改当前用户的密码,需要输入原密码
passwd 用户名 修改指定用户的密码,必须通过root 用户来实现
退出登录用户 exit
如果是图形界面,退出当前终端
如果是使用ssh 远程登录,退出登录账户
如果是切换后的登录用户,退出则返回上一个登录账号
文件归档管理
打包和压缩 tar gzip zip unzip
打包和压缩
打包压缩 是日常工作中备份文件的一种方式
在不同操作系统中,常用的打包压缩方式是不同的
window 常用 rar mac 常用zip Linux 常用 tar.gz
打包 / 解包
tar 是 Linux 中最常见的备份工具,此命令可以把一系列文件打包到一个大文件中,可以把打包的文件恢复成一系列文件
tar 使用格式如下:
shell
打包文件
tar -cvf 打包文件.tar 被打包的文件/路径
解包文件
tar -xvf 打包文件.tar
shell
-c 生成档案文件 创建打包文件
-v 列出归档解档的详细过程,显示进度
-f 指定归档文件名称,f后面一定是.tar 文件,所以必须放在选项的最后面
-t 列出档案中包含的文件
-x 解开档案文件
注意 f选项必须放在最后,其他选项顺可以随意
压缩,解压缩 gzip
tar 与 gzip 命令结合使用实现文件 打包 压缩
tar 只负责打包文件,但不压缩
用gzip 压缩 tar 打包后的文件,其扩展名一般用 xxx.tar.gz
gzip使用格式如下:
gzip[选项] 被压缩文件 (gzip -r xx.tar)
常用选项:
-r 压缩所有子目录,即递归处理
-d 指定文件解压缩
打包压缩合并
.tar 命令中增加一个选项 -z 可以调用 gzip 实现了一个压缩的功能,实现一个先打包后压缩的过程
命令格式如下:
shell
压缩文件
tar -zcvf 打包文件.tar.gz 被压缩单位文件/路径
解压缩文件
tar -zxvf 打包文件.tar.gz
解压缩到指定路径
tar -zxvf 打包文件.tar.gz -C 目标路径
shell
tar -zcvf adir.tar.gz adir/ -z: gzip 压缩 -c 打包 -c 显示过程 -f 指定文件 打包和压缩
tar -zxvf adir.tar.gz -C adir/ -x 解包 -C用于指定解压文件目录 解压的解包
zip unzip
通过 zip 压缩文件的目标文件不需要指定扩展名,默认扩展名为 zip
命令格式如下:
zip [ -r] 打包文件 被压缩的文件
解压缩文件
unzip -d 解压后的文件目录 打包文件.zip
-r 递归处理,将制定目录下的所有文件和子目录一并处理
shell
zip adir adir 这是一个错误的案例
注意: 如果目标文件是文件夹,需要使用 -r 选项处理文件夹内部的所有文件
zip -r adir adir 这才是正确的
语法: zip -r 压缩包名 目标文件
注意压缩包名后缀.zip 可以省略
unzip -d bdir/ bdir.zip
语法 unzip -d 解压文件路径 压缩文件名 注意 解压需要先指定解压路径
说明 解压文件时出现重命名提示操作选项
unzip adir adir.zip 注意,也可以在当前目录下解压压缩文件
V I 编辑器
Vi是一个文本编辑器
可以执行输出,删除,查找,替换,块操作等众多文本操作
只能是编辑文本的内容,不能对字体 段落进行排版
不支持鼠标,没有菜单,只有命令
三种工作模式:
vi有三种基本工作模式:命令模式,文本输入模式,末行模式
:q 当vi 进入文件没有对文件内容做任何操作可以按q 退出
:q! 当vi 进入文件对文件内容有操作单步想保存退出
:wq 正常保存退出
:wq! 强行保存退出,只针对与root用户或文件所有人
三种模式的切换
vi 文件名 如果文件已经存在,会直接打开文件 ,如果文件不存在,打开一个临时的文件,在保存且退出后,就会新建一个文件
i 进入编辑模式
yum软件包管理工具
说明:
yum 是一个在Linux系统中的常用的软件包管理器
yum 提供了查找,安装,删除某一个,一组甚至全部软件包的命令,而且命令简洁而好记
常用命令:
yum list 列出所有客安装的软件清单
yum search 查找软件包
yum install <Package_name> 安装指定的软件
yum update <Package_name> 更新指定的软件
yum update 更新所有软件
yum remove <Package_name> 删除软件包
标文件
注意压缩包名后缀.zip 可以省略
unzip -d bdir/ bdir.zip
语法 unzip -d 解压文件路径 压缩文件名 注意 解压需要先指定解压路径
说明 解压文件时出现重命名提示操作选项
unzip adir adir.zip 注意,也可以在当前目录下解压压缩文件
**V I 编辑器**
Vi是一个文本编辑器
可以执行输出,删除,查找,替换,块操作等众多文本操作
只能是编辑文本的内容,不能对字体 段落进行排版
不支持鼠标,没有菜单,只有命令
三种工作模式:
vi有三种基本工作模式:命令模式,文本输入模式,末行模式
:q 当vi 进入文件没有对文件内容做任何操作可以按q 退出
:q! 当vi 进入文件对文件内容有操作单步想保存退出
:wq 正常保存退出
:wq! 强行保存退出,只针对与root用户或文件所有人
三种模式的切换
vi 文件名 如果文件已经存在,会直接打开文件 ,如果文件不存在,打开一个临时的文件,在保存且退出后,就会新建一个文件
i 进入编辑模式
yum软件包管理工具
说明:
yum 是一个在Linux系统中的常用的软件包管理器
yum 提供了查找,安装,删除某一个,一组甚至全部软件包的命令,而且命令简洁而好记
常用命令:
yum list 列出所有客安装的软件清单
yum search 查找软件包
yum install <Package_name> 安装指定的软件
yum update <Package_name> 更新指定的软件
yum update 更新所有软件
yum remove <Package_name> 删除软件包