第四篇:linux之文件管理

2021/8/5 7:09:47

本文主要是介绍第四篇:linux之文件管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第四篇:linux之文件管理

目录
  • 第四篇:linux之文件管理
    • 一、处理目录
    • 二、文件查看
    • 三、文件相关
    • 四、文件属性
    • 五、文件类型
    • 六、系统链接文件

一、处理目录

"""mkdir:英文全拼:make directory):创建一个新的目录"""
选项: -v 显示详细信息  -p 递归创建目录
# mkdir dir1
# mkdir /home/yangyi1/dir1 /home/yangyi1/dir2
# mkdir -v /home/yangyi1/{dir3,dir4}  
# mkdir -pv /home/yangyi1/dir5/dir6

"""touch:创建一个新文件"""
# touch file                    # 无则创建,有则修改时间
# touch file2 file3
# touch /home/yangyi1/file4 file5
# touch file{a,b,c}             # {}集合,等价 touch filea fileb filec
# touch file{1..10}
# touch file{a..z}

"""rm(英文全拼:remove): 删除文件或目录"""
选项:-r: 递归 -f: 强制删除[不提醒] -v: 详细过程
rm  file.txt  # 删除文件, 默认rm存在alias别名,为rm -i,所以会提醒是否删除文件
rm -f file.txt  # 删除文件, 不提醒
rm -r dir/  # 递归删除目录,会提示
rm -rf dir/  # 强制删除目录,不提醒(慎用)
# 删除示例
mkdir /home/dir10  # 创建dir10的文件夹
touch /home/dir10/{file2,file3,.file4}  # 文件夹dir10下创建3个文件
touch file{1..10}  # 当前目录下创建file1 - file10的文件
touch {1..10}.pdf  # 创建以.pdf结尾的文件
rm -rf file  # 强制递归删除文件
rm -f file*  # 强制删除以file开头的文件
rm -f *.txt  # 强制删除以.txt结尾的文件

"""mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称"""
mv file file1  # 地移动算改名【相当于重命名】
mv file1 /tmp/  # 移动文件至tmp目录 注意:与mv file1 tmp 不一样
mv /tmp/file1 ./  # 移动tmp目录下的file1文件至当前目录下
mv dir/ /tmp/  # 移动dir目录至/tmp目录下
mv file1 file2 file3 /opt/  # 移动多个文件至同一个目录
mv dir1/ dir2/ dir3/ /opt/  # 移动多个目录至同一个目录

"""cp(英文全拼:copy file): 复制文件或目录"""
选项:-v:详细显示命令执行的操作 -r: 递归处理目录与子目录 -p: 保留源文件或目录的属性
cp name /tmp/name1  # 修改名称,将name拷贝到/tmp/文件夹下,同时修改名称为name1
cp file /tmp/  # 不修改名称,将file拷贝到/tmp/文件夹下
cp -p file /tmp/file_p  # -p保持原文件或目录的属性
cp -r  /etc/ /tmp/  # 复制目录需要使用-r参数, 递归复制
cp -rv /etc/hosts /etc/hostname /tmp/  # 拷贝多个文件至一个目录

"""补充:以树状显示目录结构命令tree"""
yum install tree
tree /home/yangyi1/  # 以树状显示当前目录下的结构

二、文件查看

"""cat:查看文件内容(全拿出来)"""
cat >> file1.txt << EOF  # 往文件中追加内容
> yangyi
> is 
> so
> handsome
> EOF  # 结束符

"""less、more文本查看,分页"""
less /etc/services  # 使用光标上下翻动,空格进行翻页,q退出
more /etc/services  # 使用回车上下翻动,空格进行翻页,q退出(有百分比)

"""head"""
head /etc/services  # 查看头部内容,默认前10行
head -n5 /etc/services  # 查看头部前5行,使用-n进行指定即可
ps aux | head -n5  # 查看前5个进程【|管道符,将前面的结果显示给后面】

"""tail"""
tail /etc/services  # 查看尾部内容,默认后10行
tail -n20 /etc/services  # 查看文件尾部20行
tail -f /var/log/messages  # 动态查看文件尾部变化【一般看日志】
ps aux | tail -n2  # 查看后2个进程

"""grep:过滤文件内容"""
grep "yangyi" file.txt  # 查找文件中有yangyi的行
ps aux | grep ssh  # 一般和'|'联合使用,进行过滤,查看sshd进行是否运行
grep "^root" file.txt  # 查看文件中以root开头的行
grep "root$" file.txt  # 查看文件中以root结尾的行
grep -i "root" file.txt  # 忽略大小写匹配
grep "sync$|ftp" file.txt  # 匹配文件中包含sync结尾或ftp的字符串

"""上翻、下翻"""
ctrl+b: 下翻
crtl+f: 上翻

三、文件相关

"""wget:下载"""
yum install wget  # 安装wget
wget 资源路径  # 默认下载到当前路径下
wget -O /home/a.jpg https://www.www.zyiz.net/i/l/?n=20&i=blog/111.png  # 默认下载到指定路径下

"""curl:测试连通性,浏览网上资源,-o保存到本地"""
curl www.baidu.com
选项: -o 执行下载地址
curl -o /home/a.jpg https://www.www.zyiz.net/i/l/?n=20&i=blog/111.png  # 把curl的资源保存到文件中去
    
"""上传下载"""
yum install lrzsz  # 安装lrzsz
rz  # 进行上传,弹出框,上传到当前目录下(不能大于4g)
sz a.png  # 下载文件,下载到当前主机

"""which: 查看命令的绝对路径"""
which ls  # 查看ls的绝对路径【which后面跟路径,在/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin找】
    alias ls='ls --color=auto'
        /usr/bin/ls
        
"""whereis:查找文件的路径,帮助手册等"""
whereis ls
	ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
whereis -b ls  # 查找ls命令,只找二进制(可执行文件)
	ls: /usr/bin/ls

"""sort:排序"""
sort 文件名  # 按照第一部分【开头】进行排序
sort -t ":" -k2 file.txt  # 【it指定以什么分隔,-k2第二部分,但是排序有误】
sort -t ":" -n -k2 file.txt  # 【-n指定以数字进行排序】

"""uniq:去重【必须连续的数据才可以,所以一般要和sort连用】"""
sort file.txt | uniq 

"""cut:截取字符"""
echo "my name is yangyi, and my age is 18." > file1.txt   # 将内容写入文件
cut -d " " -f2,4 file1.txt  # 把字符串按" "进行分割,取出第2和第4个
name yangyi,

"""wc:统计行号"""
选项: -l 显示文件行数  -c 显示文件字节  -w 显示文件单词
wc -l /etc/services  # 统计文件中有多少行
ls | wc -l  # 统计当前路径下有多少文件和文件夹
ps aux |grep ssh | wc -l  # 统计有多少个ssh相关的进程

四、文件属性

ls -l  # 可以查看文献属性详细信息 【ls -lh以人性化显示,kb、gb等】
-rw-r--r--. 1 root    root     22 Aug  4 12:55 file1.txt
"""含义"""
-: 文件类型
rw-r--r--: 权限
1: 硬链接的次数
root: 属主(属于哪个用户)
root: 属组(属于哪个组)
22: 文件大小
Aug  4 12:55: 修改时间
file1.txt: 文件名

五、文件类型

-   # 普通文件(文本, 二进制, 压缩, 图片, 日志等) 
d   # 目录文件
b   # 设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c   # 设备文件(字符设备),终端 /dev/tty1, /dev/zero
s   # 套接字文件, 进程间通信(socket)
p   # 管道文件
l   # 链接文件

"""通过file来查看更加详细的信息"""
file file1.txt
file1.txt: ASCII text

六、系统链接文件

"""软连接和硬链接区别"""
软链接新建inode,硬链接指向同一个inode
ln命令创建硬链接,ln -s命令创建软链接
目录不能创建硬链接,并且硬链接不可以跨越分区系统
目录软链接特别常用,并且软连接支持跨越分区系统
硬链接文件与源文件的inode相同,软连接文件与源文件inode不同
删除软连接文件,对源文件及链接文件无任何影响
删除文件的硬链接文件,对源文件及链接文件无任何影响
删除链接文件的源文件,对硬链接无影响,会导致软连接失效
删除源文件及其硬链接文件,真个文件会被真正的删除

"""建立软链接【类似于windows的快捷方式】"""
ln -s a.png /home/yangyi1/a.png  # 将当前目录下的a.png发送软链接到/home/yangyi1/目录下
一般是对可执行文件建立软链接(删除不会软链接,并不会删除原来)
比如: 
    
"""建立硬链接"""
ln  /root/file /tmp/file_hard  # 直接建立即可


这篇关于第四篇:linux之文件管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程