1.目录与路径
相对路径和绝对路径
- 绝对路径是由‘/’写器,如/usr/share/doc
- 相对路径不是由‘/’写起 如cd ../man
- .---代表此层目录
- ..---代表上层目录
- - ---代表前一个工作目录
- ~ ---代表家目录
- ~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