linux文件操作相关命令
linux下各个文件颜色
文件类型.png
- 绿色文件代表可执行文件
- 蓝色文件代表文件夹
- 白色文件代表普通文件
- 红色代表压缩文件
- 常见的文件是普通文件
(-)
、目录(d)
、软连接(l)
。- 块设备文件、字符设备文件、套接字文件和管道文件是特殊文件,一般不用做其他操作。
一、增
touch a.txt
创建普通文本
mkdir 文件夹
创建文件夹
mkdir -p test/{a,b,c,d}
批量创建
mkdir -p a/b/c/d/e
递归创建
二、删
rmdir 文件名
删除空的,文件夹
rm 文件名
删除文件
rm -rf 文件
(指定某个文件) 递归删除(不会用者慎用)
三、改
vi/vim 文件名
(前提是有vim编辑器) 编辑文本文件
mv 旧文件名字 新文件夹名字
修改文件名
mv 文件路径 文件路径
移动文件路径
cat >>/t1.txt << EOF
追加文字到文件
>追加的内容
>EOF
再次输入EOF结束
ip addr > /tmp/network.txt
(>)把命令执行的结果信息,写入到文件中
sed命令
:sed还可以修改文本
s
替换指令
d
删除指令
g
全局替换
例1:找到/tmp/pwd.txt文件中所有的root字符串,全局替换为ROOT(不加-i不会写入到文件,只会返回替换结果)
sed -i 's/root/ROOT/g' /tmp/pwd.txt
例2:找到26行,删除
sed -i '26d' /tmp/pwd.txt
例3:删除文件空白行
sed -i '/^$/d' filename.txt
四、查
-
cat
cat
查看文件内容
cat /etc/os-release
查看系统版本 -
ls
ls
查看文件夹内容
ls -l
(简写ll
)查看文件夹详细内容
ls -la
显示文件详细信息,包括隐藏文件
ls -lh
可以直接看出文件大小
ls -i
查看文件inode号
ls -ld /etc/
查看目录本身相关信息 -
stat
stat 文件名
查看文件的具体信息 -
whereis 命令:whereis ls
搜索系统命令所在位置(还可查看命令帮助文档,不能搜索普通文件键)
-
which 命令:which ll
搜索命令所在位置(可以查看别名,(并不是所有都能看到别名))
-
more
more /etc/passwd
用于查看内容较多的文本
按下空格space
是翻页
按下b
键是上一页
回车键
向下读取内容 -
echo
echo 用于在终端输出字符串或变量提取后的值,格式是"echo 【字符串|$变量】"
echo 字符串
显示字符串
echo $PATH
查看环境变量
echo > test.txt
用echo清空一个文件 -
head / tail
head
显示文件前几行,默认前10行
tail
显示文件后几行,默认后10行
head -2 /t11.txt
:查看前两行
tail -2 /t1.txt
:查看后两行
tail -f /var/log/mysql.log
#持续刷新显示,常用于 对日志文件监控,检测,日志实时写入的信息, 可用echo "xxxxxx" >> /var/log/mysql.log
验证实时变化。 -
pwd
pwd
查看当前工作目录 -
find:查找文件(耗费资源大,功能全,可按不同的文件属性查询)
-
按名字查找
find / -name settings.py
找到服务器上的settings.py
find /etc -name 'ifc*'
找到/etc下的网卡配置文件(网卡配置文件名是ifc开头)
通配符:*
匹配任意内容?
匹配任意一个字符[]
匹配任意一个中括号内的字符
find /root -iname install.log
不区分大小写 -
按时间查找
find /var/log/ -mtime +10
:查找10天谴修改的文件
-10
:10天内修改文件
10
:10天当天修改的文件
atime
:文件访问时间
ctime
:改变文件属性
mtime
:修改文件内容 -
按大小查找
find . -size 25k
:查找文件大小是25kb的文件
-25k
小于25kb
+25k
大于25kb
2M
等于2M的 -
可以加上逻辑条件
逻辑条件综合查询
-
-
grep
find和grep的区别grep [选项] 字符串 文件名
:在文件中匹配符合条件的字符串
-i
忽略大小写
-v
排除指定字符串
-
locate
配置文件内容含义locate 文件名
:在后台数据库中按文件名搜索,搜索速度快
(locate命令只能按照文件名搜索)(且按照/etc/updatedb.conf配置文件搜索的)/var/lib/mlocate
:locate命令所搜索的后台数据库(不是实时更新,一天更新一次)
updatedb
:更新数据库
五、复制
-
cp
cp xxx.py /tmp/
复制xxx.py到/tmp/下
cp xxx.py /tmp/ooo.py
复制xxx.py到/tmp/下顺便改名为ooo.py
cp -r
: 递归,复制目录以及目录的子孙后代
cp -p
:连带文件属性复制(包括为文件的创建时间)
cp -d
:若源文件是链接文件,则复制连接属性
cp -a
:相当于-pdr
(完全复制,所有信息都和原文件一模一样)cp是个好命令,操作文件前,先备份: cp main.py main.py.bak
-
scp
- 传输本地文件到远程地址:
scp 本地文件 远程用户名@远程ip:远程文件夹/
scp 本地文件 远程用户名@远程ip:远程文件夹/远程文件名
scp -r 本地文件夹 远程用户名@远程ip:远程文件夹/
scp -r /tmp/ root@192.168.1.155:/home/
- 复制远程文件到本地:
scp root@192.168.1.155:/home/a.txt /tmp/a.txt
scp -r root@192.168.1.155:/home/ /home/
- 传输本地文件到远程地址:
六、路径切换
-
cd ~
切到当前登录的用户的家目录 root用户是/root家目录,普通用户/home/ -
cd -
切到上一次的工作目录 -
cd ..
切到上一级工作目录 -
cd ./xxx
切到当前工作目录下的某个目录 -
cd /xxx/xxx/xxx
切到具体的某个目录
七、软连接配置(类似于Windows快捷方式)
ln -s 目标文件 软连接名
ln -s /tmp/xiaofeng.txt /home/xf.txt
还有一个`硬链接`:硬链接相当于是两个文件名对应同一块内存,
对一个文件修改之后另一个也变,一个删除了,另一个可以正常使用,
硬链接不常用,所以就不过多介绍,理解就行。
八、文件,文件夹的权限
-
1.通过
ls -l /tmp/*
去查看文件 文件夹所有权限
drwx------. 2 root root 6 Nov 8 19:05 vmware-root
-rw-r--r--. 1 root root 1977763 Nov 8 22:17 gaoxiao.gif
-
2.用户分类
文件,文件夹的用户分类分为三种, user(属主) group(属组) other(外包,其他人 ) - rw- r-- r-- 文件类型 属主的权限 属组的权限 other(外包)的权限
-
3.解读权限
对于普通文本权限来说- 是普通文本 r 读取 w 写入 x 执行
对于文件夹来说
d 文件夹类型 r 可以对此目录执行ls列出所有文件 w 可以在这个目录创建文件 x 可以cd进入这个目录,或者查看详细信息
-
4.文件权限的 r w x 对于数字的转化,转化为8进制的数字
r 4 w 2 x 1
-
5.文件权限练习:
提示:
r w x rwx rwx
4 2 17 0 0 rwx --- --- 7 4 4 rwx r-- r-- 7 7 7 rwx rwx rwx 7 5 5 rwx r-x r-x
-
6.更改文件所有者和所属组,语法:
命令 解释 chown 用户名 文件名
改变文件的所有者 chgrp 组名 file
改变文件的所属组 chown root:root 文件名
即修改所有者,又修改所属组 chmod 700 test.py
修改test.py文件权限为700 groupadd 组命
添加组命 gpasswd -a user1 user
将user1用户,添加至user组里