Linxu_文件管理命令
文件操作命令
- cd [目录名] 切换到指定目录(目录可以是一条路径(绝对路径/相对路径))
cd 是change directory的缩写
当前在/var/log/目录下
切换到 home目录
cd ../../../home
cd /home
cd ../ 返回上一级
cd ../.. 返回上两级目录
cd / 切换到根目录
cd – 返回上一次操作所在的目录
cd ~ 返回家目录
- pwd 查看当前位置(以绝对路径显示)
- ls [参数] 查看目录下的文件
(1) -a 显示隐藏文件(.开头的文件是隐藏文件)
(2) -l (list) 查看详细的文件信息(ls -l 可以简写为ll)
参数可以连用
ls -l /var/log
- mkdir [文件名] 创建文件夹(目录文件)
mkdir [A] [B] [C] [D] 创建多个文件夹
文件名最长为255个字节
mkdir -p E/F/G/H 创建递归目录
- touch [文件名] 创建文件
在A 目录中
touch A B C D 创建文件(一次性创建A B C D 四个文件)
- rmdir 删除空目录(目录下没有文件或文件夹)
(1) -p 递归删除
如果被删除目录非空或者非目录,无法删除
- rm 文件名(没有参数的时候,删除普通文件)
(1) -r 删除目录文件
(2) -f 取消提示(又叫强制删除)
在不知道被删除文件的作用时,不要用rm -r -f (rm -rf)
- cp 源文件 目的文件(可以更改文件名字)
复制文件(将源文件复制到目的文件,可以添加路径,默认复制文件)
-r 复制目录
cp 123 456 复制文件123为456
cp -r /opt/20190301/ . 把opt目录下的20190301目录复制到当前目录下(.代表当前目录)
cp -r /opt/20190301/ test 把opt目录下的20190301目录复制到当前目录下并改名为test
- mv 源文件 目的文件
剪切(移动)
mv abc def
把abc重命名为def
mv /opt/20190301 /home/
把目录20190301移动home目录下
- cat 文件(可加路径)
-n 显示行号
查看文件内容
- head 文件名(默认前十行)
-n 数字 显示前n行
head -n 5 /etc/group显示/etc/group的前五行内容
- tail 文件名(默认后十行)
-n 数字 显示后N行
-f 实时查看 (跟踪显示,循环显示,常用于查看日志信息/var/log/xxx.log)
tail -n 5 -f /etc/group
tail -5f /etc/group
- more 文件(查看文件内容,按照比例一页一页查看)
空格 下一页
Enter 下一行
q 退出,离开
b 返回上一次操作
- less 文件名(一页一页查看,显示的是一屏(根据你的屏幕大小显示))
空格 翻一页
Pageup 向上一页
Pagedown 向下翻一页
G 跳到最后一行
g 跳到第一行
q 离开
/关键字 向下查找
?关键字 向上查找
- sort 文件名
将文件内容排序(按照access表排序,从小到大)
- echo [内容] 回显/打印内容(常用于脚本中将结果显示到屏幕上)
- 重定向
① > 覆盖重定向(原内容不存在) 将前一个命令的结果(必须是有输出结果的,例如:ls,pwd,cat,more等)导入到后一个命令中
② >> 追加重定向(原内容存在,追加到最后一行) 将前一个命令的结果(必须是有输出结果的,例如:ls,pwd,cat,more等)导入到后一个命令中
- vim(vi) 文本编辑器(相当于Windows的记事本,多平台的)
(1) 模式
① 一般模式(光标的移动,搜索,代替,复制,粘贴,删除等功能)
② 命令模式(保存,读取其他的额外功能,标志左下角有冒号光标)
③ 编辑模式(插入信息,编辑文本等功能,标志左下角有插入或者input)
命令模式的命令
④ wq 保存退出
⑤ q不保存退出(编辑的文件没有保存)
⑥ wq!强制保存退出
⑦ q!强制不保存退出
⑧ w 文件名 另存为对应的文件
⑨ set nu显示行号
⑩ set nonu取消显示行号
n1,n2 s/关键字1/关键字2/g 从n1行到n2行,用关键字2替换关键字1
1,5 s/root/中国/g 替换1-5行(用中国替换掉root)
% s/root/中国/g 替换一屏
一般模式命令
⑪ dd删除光标所在的一行
⑫ ndd删除光标所在行以及下面的n-1行(n必须大于0)
⑬ D删除光标及光标之后的内容
⑭ x删除光标所在位置的字符
⑮ nx删除光标所在位置以及后面的n-1个字符
⑯ NX删除光标之前的字符及前面的n-1个字符
⑰ u撤销
⑱ yy复制光标所在的一行
⑲ Nyy复制光标光标所在行以及下面的n-1行
⑳ p(小写)在光标下一行粘贴
21 P(大写)在光标上一行粘贴
22 v选中文本(光标所在的字符,按y复制,p粘贴,d删除,退出v)
23 V选中文本(光标所在的一行,按y复制,p粘贴,d删除,退出V)
24 gg光标跳到第一行(ngg跳到指定行,nG跳到指定行)
25 G光标跳到最后一行
26 ^光标移动到行首
27 $光标移动到行尾(^$代表空行)
28 查找关键字 /关键字 向下查找
?关键字 向上查找
交换文件(是因为一个文件同时被多个人打开,解决方法:把.xxx.swp的隐藏文件删除,或者强制写入(一直按确认键))
- clear 清屏(把内容推送到上一屏)
- wc (Word Count) 文件名 统计文件中的信息(多少行,词组)
(1) -l 统计文件有多少行
(2) -w 统计文件中有多少词组(单词)
(3) -c 统计文件中有多少字节(文件大小,中文是4B(多个中文的情况下,第一个是4B,其他的是3B,例如:一二三四五六七八九十,一是4B,二到十都是3B,一共是31B),英文或者字符或者数字2B)
- find 路径(搜索范围) -name 文件名(目录名或文件名)
查找文件(磁盘中查找,速度慢)
gvfs文件 权限不足是因为该目录是个空的,查不查都没关系
- locate 文件名 (从数据库查找,速度快)
数据库存放的是文件名字等信息,默认一天更新一次
查找当天文件时,需要更新数据库updatedb
一般使用前,先更新updatedb再查找locate
- grep 关键字 文件名
从文件中过滤出来含有关键字的行
-n 显示行号
-v 反向过滤(关键字所在的行不显示)
grep ^关键字 etc.txt 以关键字开头的行
grep 关键字$ etc.txt 以关键字结尾的行
grep ^$ etc.txt 过滤空行
- gzip 文件名 压缩文件(只能压缩普通文件,默认的后缀名.gz)
① 压缩格式
1) Rar
2) Zip
3) Tar
4) Jar
- gunzip 文件名 文件的解压缩
- zip 压缩后的文件名 想要压缩的文件名(可以压缩目录,默认后缀名是.zip)
- unzip 文件名 解压缩
- tar 参数 (打包后的文件名) 文件
打包(由多个文件(包括文件夹)形成一个文件)
压缩(由一个体积大的文件形成一个体积小的文件)
参数
-c 打包
-v 显示打包过程中的详细信息
-f 后面紧跟打包文件名
-x 解包
-z 使用gzip压缩方式压缩
-t 查看包中内容
-C(大写) 解包到指定目录
##
tar -cvf abc.tar A B C 将A B C 三个文件打包为abc.tar并显示打包过程
tar -cvzf abc.tar A B C 将A B C 三个文件打包为abc.tar并压缩且显示打包过程
tar -xvf abc.tar 将abc.tar解包为A B C 三个文件
tar -xvf abc.tar -C 路径
将abc.tar解包到指定路径下
tar -tvf abc.tar 查看abc.tar包中内容
- ln -s 源文件名 链接文件名
创建软连接
ln 源文件 链接文件名
创建硬链接(相当于备份,实时更新)
删除源文件之后,软连接不能工作(没有那个目录或文件呢),硬链接正常工作
软连接占用空间小,硬链接占用空间的源文件一样
相同点:随着源文件的更新而更新
- chmod 权限 文件名
更改文件权限
- 全部更改
(1) rwx分别对应二进制,转换为十进制
例如:rw_r_ _ _wx
110 100 011
6 4 3 拥有者的权限是rw,所属组的权限是r,其他人的权限是wx
- 单独更改
拥有者 u(user)
所属组 g(group)
其他人 o(other)
所有人 a(all)
+ 增加权限 –(减号) 减少权限 = 赋予权限
示例
chmod u+r,g+w ls.txt
- sed 参数 动作(行编辑器)
(1) 参数
① -n 打印文件内容
② -i 编辑文件内容(修改原文件内容)
③ -e 编辑文件内容(不修改原文件内容)
(2) 动作
① a增加
② p打印
③ s替换
④ d删除
示例
- sed -n “7p” ls.txt 显示第七行内容
- sed -n “4,7p” ls.txt 显示第四五六七行
- sed -n “/关键字/p” 文件名 显示关键字所在的行
sed -n “/^$/p” 文件名 过滤空行
- sed -e “s/关键字1/关键字2/g” 文件名
用关键字2替换掉关键字1(原文中是关键字1)
Sed -e “s/关键字1/关键字2\n/g” ls.txt
\n是换行符
转义符
5.sed -e “4a\你在哪一步?” ls.txt
在第四行插入数据你在哪一步(数据在第五行)
sed -e “a\你在哪一步?” ls.txt
如果没有行号,就在原文中每一行的下一行添加:你在哪一步
6.sed -e “3d” ls.txt
删除第3行数据
sed -e “3,10d” ls.txt
删除3至10行数据
- awk 列编辑器
1) 域(区域)
- 以关键字为分隔符,划分的N个区域
- 依次$1,$2……$N
awk -F “目” ‘{print $1}’ ls.txt
awk -F “目” ‘{print $1,$2….}’ ls.txt
如果以空格为分隔符
awk ‘{print $1,$3….}’ ls.txt
- cut [参数] 列数 文件名
切割显示文件内容
参数
-b 以字节进行定位
-c 以字符进行定位
-f 以域(字段)进行定位(与-d连用,等同于awk)
示例:
cut -nb 3 test(-n 显示中文)
以字节进行定位,显示test文件中每行的第三个字节的内容
cut -c 5 test
显示test文件中每行的第五个字符
cut -c 5,9 test
只显示第五个字符和第九个字符
cut -c 5-9 test
显示第五个字符至第九个字符
cut -c 3,5-9 test
显示第三个字符,第五个字符至第九个字符