linux命令笔记-文件目录管理(二)

时间:2022-01-22 09:15:05

cd 用来变更用户所在目录

cd 目录名  切换到指定目录下

pwd  打印出当前目录

cd ./  当前目录

cd ../  切换到上一级目录


 mkdir 创建目录

mkdir 目录名  当目录的上一级不存在时,会报错

mkdir -p 目录名  当目录的上一级不存在时,自动创建

mkdir -m 权限 目录名  创建目录时,同时指定目录的权限 


ls

ls -ld 目录名  查看目录的属性

ls -l 目录名 查看目录下的文件

[root@localhost ~]# ls -ld /tmp/test/123
drwxr-xr-x. 2 root root 4096 2月 20 18:10 /tmp/test/123

rmdir 删除空目录

rmdir 目录名1 目录名2  删除多个目录用空格分割

rmdir 目录名1/目录名2/目录名3  级联删除多个目录


rm 删除目录

rm -r 目录名  删除时,会提示是否删除,输入'y'则会删除,输入'n'就不删除

rm -rf 目录名  强制删除


 环境变量PATH设置

which 命令 查找某个命令的绝对路径

echo $PATH  打印$PATH内容

PATH=$PATH:/root  将root路径加入$PATH中


cp 拷贝

cp  test1 test2   将test1文件拷贝成test2文件

cp -r 目录1 目录2  拷贝目录 

cp -i ……   遇到一个存在的文件,会问是否覆盖

cp -a 目录1 目录2  复制之后的目录和原目录完全一样

 

touch 文件名  如果有这个文件,则会访问这个文件,如果没有这个文件,则会创建这个文件

echo 'abc' > 111 将'abc'写进文件111中,覆盖原先的内容

echo 'def' >> 222 将'def'写进文件111中,追加到尾部

cat 文件名  把读出的内容打印到当前屏幕上


mv 是move的缩写

mv dira dirb 若dirb目录不存在,则相当于把'dira'目录重命名为'dirb'

mv dirc dirb 若dirb目录存在,则会把'dirc'移动到'dirb'目录里

mv file1 file2 若file2文件不存在,则会把'file1'重命名为'file2'

mv file2 dirb 将file2文件移动到dirb中


cat 查看文件并显示到屏幕上

cat -n 文件名  查看文件时,把行号也显示到屏幕上

cat -A 文件名 显示所有东西出来,包括特殊字符

tac 文件名 把文件的内容显示在屏幕上,先显示最后一行,再显示倒数第二行……最后显示第一行


more 查看文件(下一屏)

more 文件名  当文件内容多时,可以看完一屏后按空格键继续看下一屏,看完后就会退出。若想提前退出,只需按'q'键即可


less 查看文件(翻页、查找)

less 文件名 可以上翻、下翻,空格键同样可以翻页,按'j'键可以向下移动,按'k'键向上移动(每次移动一行)。

使用more或者less时,按一下'/'或'?'键,然后输入一个word回车,这样就可以查找这个word了,'/'是向下搜索,'?'是向上搜索


head 查看文件(行)

head 文件名  显示文件的前十行

head -n   行数  文件名 显示文件前n行

tail  文件名  显示文件最后十行

tail -n 行数 文件名  显示文件最后n行

tail -f 文件名  动态显示最后十行(当文件不断增加时)         


文件的所属主以及所属组

所属主:即文件的拥有者,所属组:即文件所属主所在的一个组

通过ls -l查看


文件属性

[root@localhost ~]# ls -l
总用量 40
-rw-------. 1 root root 652 3月 7 12:00 anaconda-ks.cfg
drwxr-xr-x. 3 root root 3201 3月 11 05:10 dirb

上面的例子详解:

第一列'drwxr-xr-x':

  第一位标识文件类型:'d'是目录,'-'普通文件,'l'是链接文件,'b'是块设备,'c'是串行端口设备(鼠标、键盘等),'s'是套接字文件(用于进程间通信)

  后面的九位,三个一组。其中r 代表可读,w代表可写,x代表可执行。前三个是所属主(user)的权限,中间三个是所属组
(group)的权限,后三个是其他非本组权限。

  第二列:'3' 是占用的节点,为目录时,通常与该目录地下还有多少目录有关系

  第三列:该文件的所属主

  第四列:该文件的所属组

  第五列:该文件的大小 

  第六、七、八列:文件最近修改的日期,分别是month、day、时分(atime)

  第九列:文件名


更改文件所属组 chgrp

groupadd 组名  增加一个用户组

chgrp 组名 目录   只改了目录的所属组,没有修改目录下的文件和子目录

chgrp -R 组名 目录  级联修改,修改了目录以及目录下的文件、子目录所属组


更改文件所属主 chown

useradd 用户名  创建用户

chown 用户名 目录/文件  若是目录,只改了目录的所属主,没有修改目录下的文件和子目录

chown -R 用户名 目录  级联修改,修改了目录以及目录下的文件、子目录所属组

chown -R 用户名:组名  目录  目录以及目录下的文件均修改了修改所属主, 所属组


改变用户对文件的读写执行权限 chmod

 rwx:r=4,w=2,x=1,'-'=0

例如:'drwxrwx---'用数字表示是770

chmod [-R] xyz 文件名 (这里的xyz表示数字)  

chown还支持rwx的方式设置权限(1)user(2)group(3)others,分别用u、g、o代表,a代表全部

例如:chown u=rwx,og=rx test


 umask

目录权限默认值是775,普通文件权限是664

umask xyz (xyz代表数字)

umask的值与权限:

umask 文件 目录
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 7
7 0 0

 

 

 

 

 

 

 

 


chattr 修改文件特殊属性

chattr [+-=][ASaci] [文件或目录名]

注释:'+-=':分别为增加、减少、设定

'A':文件或目录的atime将不可被修改;

'S':将数据同步写入磁盘中;

'a':只能追加不能删除,非root用户不能设定该属性;

'c':自动压缩该文件,读取时会自动解压;

'i':文件不能被删除、重命名、设定链接、写入、新增数据


lsattr 读取文件或目录的特殊权限

lsattr [-aR] [文件/目录名]

'-a' 类似与ls 的-a 选项,即连同隐藏文件一同列出;

'-R'连同子目录的数据一同列出


find 查找

find [路径] [参数]

-atime +n/-n:访问或执行时间(Access time)大于/小于n天的文件

-ctime +n/-n:写入、更改incode属性(例如更改所有者、权限或者链接)时间(Create time)大于/小于n天的文件

-mtime +n/-n:写入时间(Modified time)大于/小于n天的文件

例如:find /tmp/ -atime +10 

stat命令可以列出文件的atime、ctime、mtime

例如:stat test/test1

(atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用了noatime参数那么就不会更新atime的信息。总之, 這三個 time stamp 都放在 inode 中。若 mtime, atime 修改inode 就一定會改, 既然 inode 改了, 那 ctime 也就跟着要改了)
find -name filename 根据文件名查找文件
例如:find -name test1

find filetype 根据文件类型查找

例如:find /tmp/ -type f


 

链接文件

索引节点(inode)
在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存在,从而实现文件的快速访问。系统是通过索引节点(而不是文件名)来定位每一个文件。
硬链接(Hard Link)
硬链接说白了是一个指针,指向文件索引节点,系统并不为它重新分配inode。可以用:ln命令来建立硬链接。
引用
ln [options] existingfile(文件名) newfile(链接名)
ln [options] existingfile-list(目录名) directory(链接名)

用法:
第一种为”existingfile”创建硬链接,文件名为”newfile”。
第二种在”directory”目录中,为” existingfile-list”中包含的所有文件创建一个同名的硬链接。
常用可选[options]:-f 无论”newfile”存在与否,都创建链接。-n 如果”newfile”已存在,就不创建链接

软链接(Soft Link)

软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。和win下的快捷方式差不多。

可以用:ln -s 命令来建立软链接。

引用

ln -s existingfile(文件名) newfile(链接名)

ln -s existingfile-list(目录名) directory(链接名)

[root@localhost ~]# mkdir file01
[root@localhost ~]# cd file01
[root@localhost file01]# cp /etc/passwd ./
[root@localhost file01]# ll      #ll相当于ls -l
总用量 4
-rw-r--r-- 1 root root 1097 5月 10 17:08 passwd
[root@localhost file01]# du -sk
8 .
[root@localhost file01]# ln passwd passwd-hard  #建立硬链接
[root@localhost file01]# ll
总用量 8
-rw-r--r-- 2 root root 1097 5月 10 17:08 passwd
-rw-r--r-- 2 root root 1097 5月 10 17:08 passwd-hard
[root@localhost file01]# du -sk
8