Linux 文件与目录管理

1.目录与路径

相对路径和绝对路径

  • 绝对路径是由‘/’写器,如/usr/share/doc
  • 相对路径不是由‘/’写起 如cd ../man
  1. .---代表此层目录
  2. ..---代表上层目录
  3. - ---代表前一个工作目录
  4. ~ ---代表家目录
  5. ~account ---代表使用者的家目录(account 是个账号名称)

处理目录的命令

  • cd:切换目录
  • pwd:显示当前目录
  • mkdir:建立一个新目录
  • rmdir:删除一个空目录
liangguolong-a@liangguolonga-virtual-machine:~$ cd /home/liangguolong-a/ 
公共的/       文档/         .cache/       .mozilla/     .thunderbird/
模板/         下载/         .config/      snap/         
视频/         音乐/         .gnupg/       .ssh/         
图片/         桌面/         .local/       sword/        
liangguolong-a@liangguolonga-virtual-machine:~$ cd /home/liangguolong-a/sword   #绝对路径
liangguolong-a@liangguolonga-virtual-machine:~/sword$ cd ../snap   #相对路径
liangguolong-a@liangguolonga-virtual-machine:~/snap$ cd 
liangguolong-a@liangguolonga-virtual-machine:~$ cd  回到家目录
liangguolong-a@liangguolonga-virtual-machine:/tmp/swd$ pwd
/tmp/swd
liangguolong-a@liangguolonga-virtual-machine:/tmp/swd$ pwd
/tmp/swd
liangguolong-a@liangguolonga-virtual-machine:/tmp/swd$ 
显示当前路径
/tmp/swd/bb
liangguolong-a@liangguolonga-virtual-machine:/tmp/swd/bb$ pwd -P
/tmp/swd/aa
liangguolong-a@liangguolonga-virtual-machine:/tmp/swd/bb$ pwd    P参数是大写 加P代表显示真正路径而非链接路径
/tmp/swd/bb
liangguolong-a@liangguolonga-virtual-machine:/tmp/swd/bb$ 
liangguolong-a@liangguolonga-virtual-machine:/tmp$ mkdir liang
liangguolong-a@liangguolonga-virtual-machine:/tmp$ mkdir -p lgl/lgl2/lgl3  连续创建
liangguolong-a@liangguolonga-virtual-machine:/tmp$ mkdir -m 711 sb    设置文件权限
liangguolong-a@liangguolonga-virtual-machine:/tmp$ rmdir liang
liangguolong-a@liangguolonga-virtual-machine:/tmp$ rmdir -p lgl/lgl2/lgl3   连同一起删掉

关于执行文件路径变量:$PATH

root@liangguolonga-virtual-machine:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
liangguolong-a@liangguolonga-virtual-machine:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
root@liangguolonga-virtual-machine:/home/liangguolong-a# PATH=‘${PATH}:/root’
把root 加入环境变量中

 

  • PATH是可以修改的
  • 使用绝对路径或相对路径直接指定某个命令的文件名来执行的,会比查找PATH来的正确
  • 命令应该放在正确的目录下,执行起来比较方便
  • 本命令(.)最好不要放在PATH当中

文件与目录管理

文件与目录的 查看

ls [-aAdfFhlnRrSt]  文件名或者目录名
ls [--cololr={never.auto,always}] 文件名或目录名
ls [--full-time]  文件名或目录名

-a :全部文件,连同隐藏文件一起列出来
-A :全部文件,连同隐藏文件,但不包括.与..这两个目录
-d :仅列除目录本身,而不是列出目录内的文件数据
-f :直接列出结果,而不进行排序(默认文件名排序)
-F :根据文件,目录等信息,给予附加数据的结构
    *:代表可执行文件 /:代表目录  =:代表socket文件 |:代表FIFO文件
-h :将文件容量以人类易读的方式(GB,KB)列出来
-i :列出inode号码
-l :详细信息显示,包含文件属性与权限等数据
-n :列出UID与GID而非使用者与用户组的名称
-r :将排序结果反向输出
-R :连同子目录内容一起列出来,等于该目录下所有文件可以显示出来
-S :以文件容量大小排序,而不是用文件名排序
-t :依时间排序,而不是用文件名
--color=never:不要一句文件特性给予颜色显示
--color=always:显示颜色
--color=auto:让系统自行依据设置来判断给与的颜色
--full=time:以完整的时间模式输出
--time={atime,ctime}:输出access时间或改变权限属性时间,而非内容修改时间
liangguolong-a@liangguolonga-virtual-machine:~$ ls -al
列出所有信息
liangguolong-a@liangguolonga-virtual-machine:~$ ls -al --full-time
显示文件的修改时间
liangguolong-a@liangguolonga-virtual-machine:~$ ls -alF --color=never
不显示颜色,但显示该文件名代表的类型

复制,删除和移动

cp [-adfilprsu] 源文件 目标文件
cp [options] sotrecl sourec2 sourec3......

-a :相当于-dr --preserve=all的意思
-d :若源文件为链接文件的属性,则复制链接文件的属性而非文件本身
-f :为强制的意思,若目标文件已经存在且无法开启,则删除后在尝试一遍
-i :若目标文件已经存在,在覆盖时会先询问操作在执行
-l :进行硬链接的链接文件建立,而给复制文件本身
-P :连同文件的属性一起复制过去,而非使用默认属性
-r :递归复制,用于目录的复制操作
-s :复制成为符号链接
--preserve=all:除了-p的权限相关的参数外,还加入了SELinux的属性,like,xattr等也复制
如果源文件有两个以上,则最后一个目标文件一定要是目录才行
liangguolong-a@liangguolonga-virtual-machine:/tmp$ cp /var/log/wtmp .
复制到当前文件在最后面需要加点
liangguolong-a@liangguolonga-virtual-machine:~$ cp -r ~/sword /tmp/swore
liangguolong-a@liangguolonga-virtual-machine:/tmp$ cp -a /var/log/wtmp wtmp-2
复制文件的所有特性 -a
  • 是否需要完整的保留源文件的信息
  • 源文件是否为符好链接
  • 源文件是否为特殊的文件
  • 源文件是否为目录
rm  [-fir] 文件或目录

-f :就是force的意思,忽略不存在的文件,不会出现警告的信息
-i :交互模式,在删除前会询问是否要删除
-r :递归删除,常用于目录的删除

liangguolong-a@liangguolonga-virtual-machine:/tmp$ rm -r swore
liangguolong-a@liangguolonga-virtual-machine:/tmp$ rm -i swore/text.text
mv  [-fiu] source destination
mv  [options] sourcel sourcel2 sourcel3

-f :force 强制的意思,如果目标文件已经存在,不会询问直接覆盖
-i :若目标文件已经存在,则会询问是否覆盖
-u :若目标文件已经存在,且source 比较新,才会更新


liangguolong-a@liangguolonga-virtual-machine:~$ cd /tmp
liangguolong-a@liangguolonga-virtual-machine:/tmp$ cp ~/.bashrc bashrc
liangguolong-a@liangguolonga-virtual-machine:/tmp$ mkdir mvtest    创建一个文件夹
liangguolong-a@liangguolonga-virtual-machine:/tmp$ mv bashrc mvtest  把内容移动到这个文件夹内
liangguolong-a@liangguolonga-virtual-machine:/tmp$ ls -l

liangguolong-a@liangguolonga-virtual-machine:/tmp$ mv mvtest  mvtest1   改名字


liangguolong-a@liangguolonga-virtual-machine:/tmp$ mv mvtest  mvtest1
liangguolong-a@liangguolonga-virtual-machine:/tmp$ mkdir su1
liangguolong-a@liangguolonga-virtual-machine:/tmp$ mkdir su2
liangguolong-a@liangguolonga-virtual-machine:/tmp$ cp ~/.bashrc su1
liangguolong-a@liangguolonga-virtual-machine:/tmp$ cp ~/.bashrc su2 
liangguolong-a@liangguolonga-virtual-machine:/tmp$ mv su1 su2 mvtest1   将所有文件移动到该目录

获取路径的文件名和目录名称

liangguolong-a@liangguolonga-virtual-machine:~$ basename /tmp/sword/text.text
text.text
basename ---取的最后的文件名
liangguolong-a@liangguolonga-virtual-machine:~$ dirname /tmp/sword/text.text
/tmp/sword
dirname ----取的文件目录

 

文件内容查看

  • cat :由第一行开始显示文件内容
  • tac :从最后一行开始显示,可以看出tac和cat 是相反的
  • nl :显示的时候,同时输出行号
  • more :一页一页的显示文件内容
  • less :与more类似,但是它可以往前翻页
  • head :只看前面几行
  • tall :只看后面几行
  • od :以二进制的方式读取文件内容

直接查看文件内容

cat [-AbEnTv] 
选项和参数
-A :相当于-vET的整合选项,可以列出一些特殊字符,而非空白
-b :列出行号,仅针对非空白行做出行号显示,空白行不标行号
-E :将结尾的换行符$显示出来
-n :打印出行号,连同空白行也会有行号,与-b的选项不同
-T :将Tab 以^I显示出来
-v :列出一些看不出来的特殊字符

liangguolong-a@liangguolonga-virtual-machine:~$ cat  -b /home/liangguolong-a/sword/text.text
除了空白符其他地方显示行号

root@liangguolonga-virtual-machine:/# tac -b /home/liangguolong-a/sword/text.text
反方向
nl [-bnw] 文件

-b :指定行号指定的方式,主要有两种
    -b a :表示不论是否为空行,也同样列出行号
    -b t :如果有空行,空的那一行不要列出行号

-n :列出行号的表示方式,主要有三种
    -n ln :行号在屏幕的左边显示
    -n rn :行号在自己栏位的右边显示,且不加0
    -n rz :行号在自己栏位的右边显示,且加0

-w :行号栏位的占位字符数

root@liangguolonga-virtual-machine:/# nl -b a /tmp/text.text
空白位置显示行号

root@liangguolonga-virtual-machine:/# nl -n rz  /tmp/text.text
右边符好显示加0
root@liangguolonga-virtual-machine:/# nl -n rz -w 3  /tmp/text.text
0符好位数限制

可翻页查看--一页一页的翻

 more /home/liangguolong-a/sword/text.text

 less /home/liangguolong-a/sword/text.text
  • 空格键代表向下翻一页
  • 回车键代表向下翻一行
  • /字符串查找字符串中的关键词
  • :f立即显示出文件名以及目前显示的行数
  • q代表立即离开more,不在显示文件内容
  • b代表往回翻页,只对文件有用

less的用法比more又更有弹性,在more 的时候,并没有办法向前翻一页。只能往后面看,若使用less 就可以使用pageup,pagedown 等功能来往前往后看。

  • pagedown 向下翻动一页
  • pageup 向上翻动一页
  • /字符串向下查找字符串的功能
  • ?向上查找字符串的功能
  • n重复前一个查找
  • N反向的重复前一个查找
  • g前进到这个数据的第一行
  • G前进到这个数据的最后一行
  • q离开

数据截取

head [-n number] 文件

-n :后面接数字,代表显示几行的意思

liangguolong-a@liangguolonga-virtual-machine:~$ head -4 /tmp/text.text


tail [-nf] 文件

-n :后面接数字,代表显示几行的意思
-f :表示持续刷新后面所接文字中的内容,要按ctrl-c才会结束

liangguolong-a@liangguolonga-virtual-machine:~$ tail -n 2 /tmp/text.text

非纯文本文件

od [-t TYPE] 文件   查看非纯文本文件

-t :后面可以接各种类型的输出,如:
   a 利用默认的字符来输出
   c 使用ascll字符来输出
   d[size]利用10进制来输出数据
   f[size]利用进制来输出数据
   o[size]利用浮点数来输出数值
   x[size]利用进制来输出

iangguolong-a@liangguolonga-virtual-machine:~$ od -t c /tmp/text.text

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值