gzip
- 压缩和解压文件
- gzip只能对一个文件进行压缩
- gzip只能压缩文件,不能压缩目录
gzip 文件名 # 压缩
gzip -d 文件名 # 解压
ls -al > a.txt # 快速的生成一个文件
gzip a.txt # 把a.txt压缩为a.txt.gz, 压缩之后,a.txt就不存在了
gzip -d a.txt.gz # 解压a.txt.gz, 解压之后,a.txt.gz就不存在了
zip
- 类似于windows上的压缩软件,压缩后的格式为zip格式
zip 压缩后的文件名 要压缩的文件
unzip 要解压的压缩文件
zip a.zip a.txt # 把a.txt压缩为a.zip
rm a.txt
unzip a.zip # 解压a.zip文件
tar
- 作用,把多个文件目录打包成一个文件
- 注意:tar只是打包,不负责压缩
tar -cvf 打包文件名.tar 要打包的目录名 # 打包
tar -tvf 打包文件名 # 查看打包文件内容
tar -xvf 打包文件名 # 解包
mkdir abc
cd abc
echo hello > a.txt
ls -al > b.txt
cd ..
tar -cvf abc.tar abc # 把目录abc打包为文件abc.tar
rm -rf abc # 把abc目录删除掉
tar -tvf abc.tar # 查看abc.tar文件里的内容
tar -xvf abc.tar # 把tar文件还原为原始的目录
tar和gzip
- 由于gzip不能直接压缩目录,所以一般都是用tar先把目录打包成一个文件,然后再用gzip压缩这个文件
- tar和gzip都是配合使用的
- tar有个参数z,会自动调用gzip压缩和解压
tar -zcvf 文件名.tar.gz 要打包和压缩的目录名
tar -zxvf 文件名.tar.gz 要解压和解包的文件名
# 在abc目录的上级目录
tar -zcvf abc.tar.gz abc # 把目录abc打包同时压缩
rm -rf abc
tar -zxvf abc.tar.gz # 把文件解压同时解包
df
- 查看磁盘使用情况
df
df -h # 用人性化方式显示大小
ps
- 查看系统进程
- 进程就是正在运行的程序
ps -aux
ps aux # aux前面的-可以取消
USER代表启动进程的用户名
PID:每个进程都有一个唯一的编号
COMMAND:进程的名字
top
- 动态查看进程信息
top
- 退出top
- 在top界面下按q
kill
- 杀死进程
kill PID
- 第一步:找到要杀掉进程PID
- ps aux
- 通过command就可以找到命令对应的PID
- 第二步:kill PID
先在一个终端窗口执行top, top保持运行不退出
再打开另一个终端窗口,执行
ps aux
从ps的aux结果中找到top的PID
kill PID
- 如果遇到杀不掉的,加-9参数
- kill -9 PID
ping
- 检查与目标主机是否可网络联通
ping 目标主机的ip或者域名
ping 192.168.12.37
ifconfig
- 查看网卡信息
ifconfig
su
- 切换用户
su - 用户名 # 切换用户,同时当前目录修改为目标用户的主目录
su 用户名 # 切换用户,但不改变当前目录
- 退出切换的用户
exit
su - root # -的左右都有空格 切换到root用户,同时当前目录变为root用户的主目录
exit
su root # 切换到root,但不改变当前目录
exit
- 如果su切换的目标用户是root,可以省略用户名
su - # 等同于su - root
su # 等同于su root
添加用户
- 添加用户必须是root才能有权限
- useradd
- -d指定用户的主目录
- -m如果主目录不存在,自动创建
在linux增加用户有个习惯,所有用户的主目录都在/home目录下
用户的主目录名和用户名相同
# 案例添加一个用户, 名字叫user1,主目录在/home/user1目录
su - # 切换到root用户
useradd -d /home/user1 user1 -m # 创建一个用户user1,主目录在/home/user1
passwd user1 # 为user1设置密码
# 密码需要输入两次
exit
su - user1
# 输入user1的密码
# 到这里,当前目录已经改变为user1 的主目录
pwd
- passwd
- 修改用户密码
- root用户可以修改任何用户的密码
- 普通用户只能修改自己的密码
passwd 用户名 # 修改指定用户的密码
passwd # 修改用户自己的密码
删除用户
- userdel
- r删除用户的同时删除用户的主目录和邮箱
- f强制删除,即使用户登录了,也删除
su -
userdel -rf user1 # 强制删除用户user1, 同时删除用户的主目录和邮箱
whoami
- 当系统用户特别多,用su切换多次,有时候会忘记当前是哪个用户登录
whoami
- 显示当前登录的用户名
vi
用vi编写第一个文件
- 目的:用vi创建一个文件b.txt,文件内容为hello
cd # 回到主目录
vi b.txt # 用vi创建一个文件b.txt
# 进入vi界面后按i键,之后输入hello
# 按ESC键
# 按冒号:
# wq回车
# 退出vi后可以用ls查看是否新增了文件b.txt
# 可以用cat b.txt查看内容是否为刚才用vi输入的hello
vi的三种模式
-
命令模式
- 刚进入vi界面的时候,是命令模式
- 在命令模式下按i进入输入模式
- 在命令模式下按冒号:进入末行模式
-
输入模式
- 进入输入模式以后就可以输入内容
- 在输入模式下按ESC回到命令模式
-
末行模式
- 在末行模式下输入wq,保存文件退出vi
-
输入模式不能直接进入末行模式
-
不管在哪个模式下,只要按ESC键,都会回到命令模式
vi的三种不同启动方式
- vi 新文件名
- 创建一个空文件
- vi 已有文件名
- 打开一个已有的文件
- vi
- 直接启动vi,不打开任何文件
命令模式下的指令
插入指令
- i
- 在光标所在当前位置插入
- a
- 在光标所在位置后插入
- o
- 在光标所在行的下一行插入
- I
- 在光标所在行首插入
- A
- 在光标所在行尾插入
- O
- 在光标所在行的上一行插入
进入末行模式指令
- 冒号:
删除指令
- x
- 删除光标前一个字符
- dd
- 删除光标所在的行
- ndd
- n是一个数字,代表删除光标所在下面的n行
- 3dd,删除3行
撤销指令
- u
- 撤销
- ctrl+r
- 反撤销
复制粘贴指令
-
yy
- 复制光标所在的行
-
nyy
- 复制光标所在下方n行
- 5yy,复制5行
-
p
- 粘贴
-
课堂练习
随便两个文件,内容不限
a.txt ,b.txt
把b.txt内容复制到a.txt内容的最后面,保存a.txt文件
- 练习答案
# 先有a.txt和b.txt
vi b.txt
# nyy 把b.txt内容拷贝到内存
退出vi
vi a.txt
# 把光标移动到最后一行
p # 把刚才从b.txt中拷贝的内容粘贴到a.txt里
# 回到末行模式, wq保存退出
行定位指令
- 如果文件内容特别多,通过上下光标定位行,比较繁琐
- 可以通过行定位指令快速定位到指定行
- G
- 到最后一行
- 1G
- 到第一行
- nG
- n是个数字
- 到n行
查找指令
/要查找的字符串
- n查找下一个
- N查找上一个
/root 在文件中查找有无字符串root
末行模式的指令
- w
- 保存,不退出vi
- w 文件名
- 把内容保存为指定的文件
- 如果启动vi的时候,没有指定文件,如果要保存内容,必须用w 文件名,指定要保存的文件
- q
- 退出vi
- 如果文件内容已经改变,就不能使用q退出vi
- wq
- 保存文件,并退出vi
- q!
- 不保存文件,退出vi
课堂练习
把根目录下proc目录下cpuinfo文件拷贝到用户的当前目录
用vi把文件的第五行修改为aaaaaaaaaaaaaa
保存退出
- 作业答案
cd # 回到主目录
cp /proc/cpuinfo . # 把/proc/cpuinfo拷贝到当前目录
chmod u+w cpuinfo # 给cpuinfo这个文件的用户添加w写权限
vi cpuinfo # 用vi打开cpuinfo这个文件
# 把光标移动到第五行,进入输入模式
# 在输入模式下删除第五行已有的内容
# 在输入模式下输入aaaaaaaaaaa
# 按ESC回到命令模式,按冒号:进入末行模式
# 在末行模式下按wq保存退出
# 退出之后可以用
more cpuinfo # 查看修改是否成功
非正常退出vi的处理方式
- 当打开vi后,并且修改了文件内容,没有保存退出,而是非正常的关闭了vi,下次再启动vi会出现异常退出的提示
- O
- 只读方式打开
- E
- 编辑之前vi没有修改过的内容
- R
- 编辑vi修改过的内容
- D
- 直接删除交换文件
- Q
- 直接退出vi,不做任何操作
- 直接通过rm删除vi非法关闭后的swp文件
- 如果vi非法关闭,那么会产生一个swp文件
- 假设vi非法关闭的时候文件名叫a.txt,那么swp文件叫.a.txt.swp
- 可以通过rm命令手工的把swp文件删除,也可以解决这个问题
ls -a # 通过ls 的-a参数可以找到相关的swp文件
rm .a.txt.swp