1.打包解压缩
# 1.打包文件(c表示打包,f指定要操作的文件)
tar cf /tmp/demobackup.tar demo
# 2.打包并压缩(加入z,j,J参数表示用不同的压缩方式来压缩,用双扩展名表示打包并压缩)
#压缩方式:gzip->.tar.gz/.tgz bzip2->.tar.bz2/.tbz2(双扩展名的两种写法都可以)
tar czf /tmp/demobackup.tar.gz demo
tar cjf /tmp/demobackup.tar.bz2 demo
tar cJf /tmp/demobackup.tar.xz demo
# 3.解压(x参数解压)
tar xf /tmp/demobackup.tar -C 文件解包存放的位置 #-C 在特定目录解压缩
tar xzfv /tmp/demobackup.tar.gz # -v 解压缩过程将文件显示出来
tar xjf /tmp/demobackup.tar.bz2
# 4. 查看压缩包中的文件
-t 查看压缩包里面的文件 ,t,c,x三个动作参数不能同时存在,一次操作只能使用其中的一个参数
2. ls 的参数
参数 | 用法 |
---|---|
- l | 显示长格式文件 |
-a | 显示隐藏文件 |
-t | 按照时间顺序显示 |
-R | 递归显示 |
-h | 文件大小用M显示 |
-d | 单独查看某个文件,ls -d 要查看的文件名 |
-r | 逆序显示 |
3.文件及文件夹操作
命令 | |
---|---|
mkdir | 新建文件夹 |
mkdir -p /tmp/demo/ | 嵌套建立多层目录 |
rmdir | 删除空文件夹 |
rm -rf | 删除非空目录,f表示不提示 |
rm | 删除文件 |
cp -r | 复制目录 |
cp -p | 复制文件但是保留用户权限时间等文件属性 |
mv | 移动 mv 原文件 目的目录 |
mv | 重命名 mv 源文件名 目标文件名 |
4. Vim操作
1. 插入模式
进入插入模式有多种方式 | |
---|---|
i | 光标处插入 |
I | 光标移到该行开头插入 |
a | 光标移到后一位插入 |
A | 光标移到该行末尾插入 |
o | 光标该行的下一行插入空行 |
O | 光标该行的上一行插入空行 |
2. 正常模式
(插入模式下按ESC 回到正常模式)
正常模式 | |
---|---|
h j k l | 光标上下左右移动操作 |
yy | 单行复制 |
3yy | 多行复制,复制3行 |
y$ | 复制光标到该行结尾的所有内容 |
p | 将复试的行粘贴 |
dd | 剪切光标所在的行 |
d$ | 剪切光标到该行结尾的所有内容 |
u | 复原前一个动作(撤销) |
ctrl + r | 重做上一个动作 |
x | 删除光标当前字符 |
r | 替换光标当前字符 |
^ | 光标移到该行开头 |
$ | 光标移到该行末尾 |
g | 光标移到文本第一行开头 |
G | 光标移到文本最后一行开头 |
5G | 光标移到指定的第5行的开头 |
:set nu | 显示行数 |
:set nonu | 不显示行数 |
3. 命令模式
命令 | |
---|---|
:w | 保存文件( :w /root/a.txt 适用于直接vi文件没保存的) |
:q | 退出 |
:q! | 表示强制退出,不对文件进行保存 等于ZQ |
:wq | 强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。等同于ZZ |
:wq! | 保存并强制退出 |
:! 命令 | :!ifconfig 临时退出去看ip地址 |
/word | 向光标之下寻找一个名称为 word 的字符串。(多次按n 向下查找 / 按shift+n 向上查找(反向查找)) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。(多次按n 向上查找 / 按shift+n 向下查找) |
:n1,n2s/a/b/g | 部分行内替换, :3,5/s/7/8/g 在第三3行到5行将7替换成8 |
:%s/a/b/g | 全文替换,将a替换成b |
4. 可视模式
正常模式进入可视模式的命令 | |
---|---|
v | 进入字符可视模式 |
V(shift+v) | 行可视模式 |
ctrl + v | 块可视模式,配合d和大写i命令进行块的操作 |
举例;块模式,先按ctrl+v,用光标移动选择对应的块(每一行相同位置组成的块),再按shift+i,回到所选快位置的第一行光标处插入XXX,再按2下ESC,这样所选块的每一行开头都插入了XXX内容。或者选中了块后按d删掉该块
5. 用户和用户组管理
useradd 新用户名
id 用户名
passwd 用户名(修改用户密码)
userdel 用户名(删除用户但是会保留该用户的家目录)
userdel -r 用户名(删除用户不会保留用户的家目录,删得比较干净)
groupadd 用户组名 (新建用户组)
usermod -g 目标用户组 用户名 (将用户加入到目标用户组中)
useradd -g 目标用户组 新建用户名 (新建用户并直接加入到目标用户组中,常用,一步到位)
su 用户名(切换用户)
sudo (以其他用户身份执行命令)
6.文件和目录的权限
1.文件类型:
- 普通文件
d 目录
l 符号链接
b 块特殊文件(设备文件)
c字符设备文件(设备文件)
f命名管道(网络中的)
s套接字文件(网络中的)
2.权限表示方法
普通文件字符权限表示方法 | 数字权限表示 | 目录文件权限表示方法 |
---|---|---|
r 读 | r=4 | x 进入目录 |
w写 | w=2 | rx 显示目录内的文件名(可进可查看) |
x执行 | x=1 | wx 修改目录内的文件(可修改可删除) |
rwx 修改目录内的文件(可进可查看可修改可删除) |
创建新文件有默认权限,根据umask(022)来计算,属主和属组根据当前进程的用户来设定,默认的普通文件权限应该是666,减去umask等于644,则默认文件权限都是644
3.修改权限命令
1. chmod 修改文件,目录的权限
修改权限: 属主权限(u) 属组权限(g) 其他用户权限(0) 3个一起修改(a)
例子;
chmod g+x afile
chmod o-r afile
chmod a+w afile
2. chown 更改属主和属组
chown user1 /test (更改目录test的属主为user1)
chown :group1 /test (更改目录test的属组,属组前面要加上:)
chown user1:group /test (同时更改属主和属组)
3. chgrp 可以单独更改属组(不常用)
4.特殊权限
SUID (用于二进制可执行文件,执行命令时取得文件属主权限,如/usr/bin/passwd ; -rwsr-xr-x)
chmod 4XXX /afile (给文件设置SUID,用数字权限前面加个4)
SGID (用于目录,在该目录下创建新文件和目录,权限自动更改为该目录的属组,文件共享的时候经常用到)
chmod 1XXX /afile (给文件设置SGID ,用数字权限前面加个1)
SBIT (用于目录,该目录下新建的文件和目录,仅root和自己可以删除,如ls /tmp ; drwxrwxrwt.)
7. 进程和文件系统
1.查看进程
ps -e
ps -ef
ps -eLf|more (分页查看更多进程)
top
top -p 进程号 (只动态查看一个进程)
pstree
2. 内存查看
free -m
top
3.磁盘查看
fdisk -l (分区磁盘的查看)
parted -l
dh -h
du /etc/passwd (查看文件实际用量)(ls -lh 中的h查出来的文件有空洞大小,不是文件实际的大小)
创建一个有空洞的文件(linux虚拟化就是创建一个非常大比如1T大小的文件,实际占用大小可以很小)
dd if=/dev/zero bs=4M count=10 seek=20 of=bfile
count就是记录一块是10M,seek时跳过20块X4M
ls -lh bfile -> 120M (记录从看似hi到结尾写了多少字节)
du -h bfile ->40M(真正统计实际的文件长度)
常见的文件系统,linux支持多种文件系统:ext4/xfs/NTFS
ext4中
超级块
i节点(inode),记录每个文件权限信息,文件名存在父目录中,ls -i查看
数据块(datablock),记录数据信息
-------------------------------------------------------------------
用i节点的角度来解读下面几个命令:
cp afile afile1
ls -li afile* 复制文件,会生成2个不同的i节点
mv afile afile2
ls -li afile* 重命名很快,是因为两个文件对应的i节点没变
vim编辑文件保存后会改变i节点,因为每次使用vi编辑一个文件,它会在缓冲区新生成一个afile.swp的隐藏文件,改变的数据存在swp文件中。
echo 123>afile 追加不会改变i节点,只会改变数据块的内容
rm afile 删除文件,准确来说是将i节点和文件名之间的链接断开
ln afile bfile
给afile创建一个硬链接,硬链接的两个文件是同步更改的,这两个文件名指向同一个i节点
- 硬链接:两个文件指定的是同一个inode
- 硬链接不能跨分区存在
- 硬链接不能链接到目录(要避免循环引用)
- 删除硬链接只会减少文件被硬链接的次数,源文件不会动.
删除源文件,硬链接不受影响。
ln -s afile aafile
给afile创建一个软链接(符号链接),aafile文件的i节点和afile是不一样的。
ls -li aafile -> 3799 lrwxrwxrwx ...
(会多一个l
表示它是一个符号链接)
- 软链接:是一个独立的文件,有自己独立的inode,和源文件不一样。
- 软链接没有存储任何数据,只是存储了访问文件的另-种路径,所以对软连接修改权限是不会生效的.
软链接可以对目录创建也可以跨分区 - 删除软链接,跟源文件没任何关系。
源文件被删除,软连接将不可用.