Linux常用命令(3)-文件和目录管理

时间:2021-07-01 16:27:45
(1)、Linux 文件权限和目录配置
Linux 文件分三种身份 owner、group、others。 三种权限 read、write、execute
#ls -al
drwxr-xr-x   1     root   root  4230  2012-09-12 17:21 jdk-7u7
对应文件权限  连接数    用户组  用户 文件大小  最后修改日期      文件名
其中[d] 表示为目录
   [-] 表示为文件 
文件类型和权限三个为一组,总共三组,其中第一组是文件所有者权限,第二组是用户组权限,第三组是其它用户权限,每一组都有[rwx]三个参数组合。[r]代表读,[w]代表写,[x]代表可执行如果没有权限则是[-],也可以用数字表三r:4 w:2 x:1
改变文件属性和权限
chgrp:改变文件所属用户组 chgrp [-R] users install.log  [-R] 表示递归更噶,包括子目录下的所有文件以及目录
chown:改变文件所有者  chown [-R] oracle:oracle install.log
chmod:改变文件权限  文件的身份和权限需要累加的,比如[-rwxrwx---],
      对应owner = rwx = 4+2+1 = 7
         group  = rwx = 4+2+1 = 7
         others = --- = 0+0+0 = 0
      所以权限数字是770 
chmod [-R] 770 文件和目录
权限的增加和移除
比如要增加一个可执行权限
chmod a+x 文件和目录,对所有用户加上可执行权限,同理chmod a-x 对所有用户去掉可执行权限
可选项[a,o,g,u]

(2)、文件和目录的创建,删除,查找,复制,粘贴,
#ls|wc -l 统计文件和目录个数
#pwd -P。显示当前目录(路径),[P] 显示正确的文件,而不是连接文件(windows 里面的快捷方式)的路径
#mkdir -m 777 test1。新建目录,并且赋予这个目录777的权限。
#mkdir -P test1/test2 目录默认只能一层一层创建,加上[P] 系统会自动创建test1,test1/test2
#rmdir -P test1/test2。默认只能一层一层删除目录,并且目录必须为空,[P]系统会一次删除多层。如果被删除的目录不为空,需要使用下面的命令。
#rm -r test2。将目录下所有的东西都删除。
#rm -rf test2。将目录下所有的东西都删除包括test2目录。
#rm -rf !(Rbeijing.MID | Rbeijing.MIF)  这两个命令结合删除Rbeijing.MID 和Rbeijing.MIF以外的文件。
#ls | xargs -n 10 rm -fr ls 删除大量琐碎文件
#cp -a /var/test1 /var/test2 复制文件test1到test2。[a]复制的源数据和目标数据,权限和身份时间和当前用户一模一样。 [r]是可以复制目录的。[i]询问用户已经存在的文件复制是否覆盖
#scp 远程文件拷贝
比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。
#scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root
如果想反过来操作,把文件从远程主机copy到当前系统,也很简单。
#scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz
#cat -n test 查看文件内容,[n] 显示行号。
#find -name test.pdf 查找test.pdf文件
#find /TRS -name protect  查找TRS目录下所有的protect目录
-type  查找某一类型的文件
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
# find -type d  查找目录
#mv 移动文件/或者重命名命令
mv 1.txt desfile把1.txt文件移动到desfile目录里,类似剪切
mv 1.txt 2.txt 把1.txt文件命名为2.txt
#dd if=1.txt of=2.txt 把1.txt的内容拷贝到2.txt文本文件里面,且支持块拷贝
#grep 在文本中查找文字
-c:只输出匹配行的计数。
-n:显示匹配行及行号。
- v:查找不包含匹配项的行
比如:
$ grep ‘test’ d*            #显示所有以d开头的文件中包含 test的行。
$ grep -vn "48" data.doc            #输出所有不包含48的行
$ grep -i "ab" data.doc        #输出所有含有ab或Ab的字符串的行
$ grep –e "abc|efg"  文件名  //从文件内容查找包含abc或者efg的字符串
$grep "17071" 20120406.txt | grep "2012-04-06 06:28:08" | grep "word2"  //查找既满足17071,2012-04-06 06:28:08 ,word2三个字符串的行
#more 
-n 行数 指定每屏显示的行数 
+ 行号 从指定行号开始显示
#tail
1.要显示 notes 文件的最后十行,输入:
tail notes
2.要指定从 notes 文件末尾开始读取的行数,输入:
tail  -n 20 notes
#wc -l 目录 统计文件个数
- c 统计字节数。
- l 统计行数。
- w 统计字数。
档案与文件系统的打包压缩

(3)、档案与文件系统的打包压缩
a、压缩指令
在Linux下面,压缩过的文件的扩展名主要有*.tar, *.tar.gz,*.gz
*.gz        gzip 程序压缩的档案; 
*.tar       tar 程序打包的数据,并没有压缩过; 
*.tar.gz    tar 程序打包的档案,并且做了压缩;
*.tgz       tar 打包压缩的档案。

b、打包指令
#tar -cvf file.tar file  //打包
#tar -cvzf file.tar.gz file  //打包并且压缩
tar -cvfz 05.tgz  /mnt/ctb/data/traffic/backup/2014/05 //打包并且压缩
#tar -xvf eclipse-jee-juno-linux-gtk.tar.gz //解压缩包
可选参数[c]  create a new archive
[v]  verbosely list files processed,处理过程中输出相关信息
[f]  use archive file or device ARCHIVE,压缩的文件名
[z]  --gzip, --gunzip, --ungzip   filter the archive through gzip,压缩的格式

[x]  extract files from an archive,从归档文件中解出文件