Linux文件和用户管理
一、目录与路径
绝对路径:一定由根目录/写起
相对路径:不是由根目录/写起,转换路径的时候使用
. 代表当前所在的目录
.. 代表上层目录
-代表前一个工作目录
~代表自己的家目录
~user代表userd的个人的家目录
目录的相关操作和路径变量
(1)cd 变换目录

(2)pwd 显示当前所在的目录
(3)mkdir建立一个新目录
mkdir[-mp][目录名称]
参数说明:
-m:设定档案的权限,直接设定,而不是根据umask来设置目录权限
-p:递归建立目录

(4)rmdir删除一个里面是空的空目录
rmdir [-p][目录名称]
参数说明:
-p:递归删除上层的空目录

当删除一个目录下面有目录的目录时,会产生错误。

如果删除绝对路径,只能删除最下端没有目录的目录

加-p参数后会递归删除目录


当目录下不为空,存在文件时,递归删除会失败。rmdir递归操作只能针对空目录

(5)环境变量PATH:当我们在执行一个指令的时候,系统会按照PATH定义的路径搜索文档,先搜到的指令档案先被执行。

二、管理文件和目录
管理文件与目录就是"显示属性"、"复制"、"删除文件"以及"移动文件或目录"
ls 显示档案名称、属性等
-a全部的档案都列出(连同隐藏档)

-A全部文件、与隐藏文件,但不包含.和..这两个文件

-d仅列出目录本身,而不是列出目录内的文件数据

-f直接列出结果,而不进行排序(ls默认以文件名排序)

-F根据文件、目录等信息,附加数据结构。如*表示可执行文件;/表示目录;=表示套接字;I表示FIFO文件-n列出UID与GID,而非用户与用户组的名称-r将排序结果反向输出,例如:原文件名由小到大,反向则由大到小
-h列出文件大小(GB、MB、kB)
-列出inode的值
-l列出长数据串,包含文件属性
-n列出UID与GID,而非用户与用户组的名称


-R与子目录内容一起列出来
-S以档案大小排序
-t按时间顺序排列
--color==never:不要显示颜色
--color==always:均显示颜色
--color==auto:由系统自行判断
ls -l会显示文件夹下所有文件占内存总大小

ls -li 会显示单个文件的节点

ls -lh会以人文阅读方式显示文件大小

ls -lin会列出UID(用户ID)与GID(组ID),而非用户与用户组的名称

ls -R以目录结构的形式显示文件夹下的组织结构

ls -t以时间顺序排序的组织结构

ls -l --color=never表示不显示颜色

ls -l --color=always表示总是显示颜色

当输入ls时,默认显示颜色

ls -l --full-time,长列表显示全部的时间。

cp 拷贝档案
cp[-drsu][源文件][目标文件]
-a相当于pdr
-d 若源文件为连接文件的属性,则复制连接文件属性而非文件本身
-f(force)的意思,若有重复或其他疑问时,不询问用户,而强制复制
-i若目标文件已经存在,在覆盖时先询问是否真的操作
-l 建立硬连接的文件,而非复制文件本身
-p 与文件的属性一起复制,而非使用默认属性
-r 递归持续复制,用于目录的复制操作
-s 复制成符号连接文件(symbolic link)即快捷方式
cp ~/.bashrc bashrc 从根目录拷贝bashrc到本目录下

cp -i ~/.bashrc bashrc 如果已经有了原始文件,询问是否覆盖

cp -s bashrc bashrc-s 复制一个链接档

cp -l bashrc bashrc-h 建立一个硬链接档

cp bashrc-s bashrc-s1将链接档复制成为普通文档

cp -d bashrc-s bashrc-s2 复制链接档为链接档

cp -r /home/* test/递归将/home/*下的所有文件和文件夹复制到test目录下


可以看到/home下的所有文件夹全部复制到test文件夹下了,但是test1的文件夹属性不相同。
cp -pr /home/* test 将home下的文件以及文件夹连同文件文件夹属性复制到test目录下

cp /var/log/wtmp wtmp 拷贝复制文件夹,如果不加-pr参数会丢失同组用户下的w权限


cp -a /var/log/wtmp wtmp copy -a可以复制全文件属性

rm 删除档案
rm[-fir][文件名]
-f:就是force的意思,强制删除
-i:交互模式,在删除前,询问用户是否操作
-r:递归删除,常用在目录的删除
rm -i bashrc 删除bashrc,删除前询问是否删除


rm -f bashrc* 强制删除bash开头的文件
删除前

删除后

rm -rf删除test1

mv 移动档案、重命名档案
mv[-fiu][源文件][目的文件]
-f:force,强制的意思,强制直接移动而不询问
-i:若目标文件(destination)已经存在,就会询问是否覆盖
-u 若目标文件已经存在且源文件比较新,才会更新
basename:提取路径的最后一个文件夹或文件名(编程用)。如basename /usr/local/etc
dirname:提取最后一个文件名或文件夹前的路径,与basename正好相反
mv test.txt test 剪切test.txt到test目录下


mv -u test.txt test 更新test.txt到test目录下

mv test.txt test2.txt 文件重命名

basename /tmp/test/test 提取路径的最后一个文件名或文件夹名

dirname /tmp/test/test提取路径的最后一个文件名或文件夹名之前的目录
三、查看文件内容
cat 由第一行开始显示档案内容
cat[-nAE]
-A:相当于-vET的组合参数,可以列出一些特殊字符
-E:将结尾的换行符$显示出来(^M$为换行符号,linux以$为换行符号,至于^|则是<tab>按键)
-n:显示行号
-T:将tab按键以^|显示出来
-v:列出一些看不出来的特殊字符
cat test1.txt显示文件中的内容

cat -E test1.txt显示文件内容以及换行符

cat -n test1.txt 显示文件内容以及行号

cat T test1.txt显示Tab

会显示两个Tab键

cat -nTE test1.txt 显示行号、换行符以及Tab键

cat -A test1.txt 显示文件内容

tac 从最后一行开始显示,可以看出tac是cat的倒着写,倒序显示文件内容
tac test1.txt,倒序显示文件内容

nl显示的时候,顺道输出行号
nl[-bnw]文件
-b:指定行号指定的方式,主要有两种
-b a:表示不论是否有空行,也同样列出行号
-b t:如果有空行,空行不要列出行号
-n:列出行号表示的方法有三种:
-w:行号字段占用的位数
-n ln:行号在屏幕最左方显示
-n rn:行号在字段的最右方显示,且不加0
-n rz:行号在字段的最右方显示,且加0
nl -b a test1.txt 不论是否有空行,同样列出行号

nl -b t test1.txt 不显示空行行号

nl -n ln test1.txt 靠左显示行号

nl -n rn test1.txt 靠右显示行号

nl -n rz test1.txt 靠右补0显示行号

nl -b a -n rn -w 3 test1.txt 指定行号显示无论是否有空行,行号不加0显示,占位符为3

nl -b a -n rz -w 3 test1.txt 指定行号显示无论是否有空行,行号加0显示,占位符为3

more 一页一页的显示文档内容
less 与more相似,但是比more更好的是,他可以往前翻页
head只看头几行
tail只看尾巴几行
od 以二进制的方式读取文档内容
touch 修改文档时间和创建新文件
四、文件和目录的默认权限与隐藏权限

浙公网安备 33010602011771号