linux命令笔记-文件目录管理(二)
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