ps: 红字字体为重要部分, 仔细看
一、 目录、文件基本命令(mkdir、tree、touch、rmdir、rm、cp、mv、)
1. mkdir: 创建目录;
常用选项:
①。 -p: 递归创建目录
[root@Centos1 ~]# mkdir a/b/c #当前没有a/b/c目录, 所以创建不成功 mkdir: cannot create directory `a/b/c': No such file or directory #提示没找到a/b/c 目录 [root@Centos1 ~]# mkdir -p a/b/c #可以结合-p选项递归创建a/b/c目录 [root@Centos1 ~]# mkdir -p a/B/C [root@Centos1 ~]# tree -C a #查看a目录的结构 a |-- B | `-- C `-- b `-- c
②。 -v: 可视化
[root@Centos1 ~]# mkdir -pv a/A/B/C mkdir: created directory `a/A' mkdir: created directory `a/A/B' mkdir: created directory `a/A/B/C'
2. tree:显示目录结构;
常用选项:
①。 -C: 显示颜色
[root@Centos1 ~]# tree -C a #查看a目录的结构 a |-- B | `-- C `-- b `-- c
3. touch:创建文件;
[root@Centos1 ~]# touch a/A/B/C/1
4. rmdir:用于删除空目录, 如果目录中含有文件, 则无法删除, 所以不常用;
5. rm: 删除文件或目录;
常用选项:
①.。 -i: 删除时提醒
[root@Centos1 ~]# rm a/A/B/C/1 #删除刚创建的文件1 rm: remove regular empty file `a/A/B/C/1'? y #输入y则删除,输入n为不删除
②。 -r: 删除目录
[root@Centos1 ~]# rm -r a/A/B/C/ #删除a/A/B/下的C目录 rm: remove directory `a/A/B/C'? y #输入y则删除,输入n为不删除 [root@Centos1 ~]# ls -l a/A/B/ #可以看到, a/A/B下没有了C目录 total 0
③。 -f: 强制删除(删除时不提醒)
[root@Centos1 ~]# rm -rf a/A/B #删除a/A下的B目录 [root@Centos1 ~]# ls -l a/A/ total 0 [root@Centos1 ~]# mkdir -p a/A/1/2/3/4/ #结合-p创建递归目录 [root@Centos1 ~]# rm -rf a/A #删除A目录. [root@Centos1 ~]# ls a #可以看到,A目录下的子目录一块删除 B
6. cp:复制文件和目录;
常用选项:
①。 -r: 复制目录
[root@Centos1 ~]# ls -l | grep '^d' #过滤当前以d开头的目录 drwxr-xr-x. 3 root root 4096 Mar 10 05:09 a [root@Centos1 ~]# cp a /etc/ #如果不输入-r选项, 不允许拷贝目录 cp: omitting directory `a' [root@Centos1 ~]# cp -r a /etc/
②。 -a: 复制时文件属性保持一致
[root@Centos1 ~]# cp -a a /home/ drwxr-xr-x. 2 root root 4096 Mar 10 05:40 /home/a #红色表示文件属性 当目标文件已存在时, 复制源文件会提示是否覆盖. 如果不希望覆盖, 即使用cp的绝对路径. [root@Centos1 ~]# cp 1.txt /home/ [root@Centos1 ~]# cp 1.txt /home/ cp: overwrite `/home/1.txt'? y [root@Centos1 ~]# /bin/cp 1.txt /home/
7. mv:移动文件或改名;
常用选项:
①。 -i: 移动或改名时提醒.
[root@Centos1 ~]# ls a #a目录下有1.txt、2.txt、3.txt 1.txt 2.txt 3.txt [root@Centos1 ~]# echo abc> 1.txt #将'abc'重定向到当前目录的1.txt文件中 [root@Centos1 ~]# mv 1.txt a #将当前目录的1.txt移动到a目录 mv: overwrite `a/1.txt'? y #输入y则覆盖. [root@Centos1 ~]# cat a/1.txt #查看a/1.txt文件内容 abc [root@Centos1 ~]# echo 222 > 1.txt #将'222'重定向到当前目录的2.txt文件中 [root@Centos1 ~]# cat 1.txt 222 [root@Centos1 ~]# /bin/mv 1.txt a/ 当目标文件存在是时, 会提示是否覆盖. 如果不希望提示, 需要使用命令的绝对路口/bin/mv, 并进行强制覆盖. [root@Centos1 ~]# cat a/1.txt 222
②。 -v: 可视化
[root@Centos1 ~]# mv -v a/1.txt ./ `a/1.txt' -> `./1.txt'
二、 查看文件和目录(cat、tac、rev、more、less、tail、head)
1. cat: 查看文件;
常用选项:
①。 -A: 在每行结束处显示'$'
[root@Centos1 ~]# cat 1.txt abc def ijk [root@Centos1 ~]# cat -A 1.txt abc$ def$ ijk$
②。 -n: 显示行号
[root@Centos1 ~]# cat -n 1.txt 1 abc 2 def 3 ijk
2. tac: 文件倒序;
[root@Centos1 ~]# tac 1.txt ijk def abc
3. rev: 颠倒文件左右内容;
[root@Centos1 ~]# rev 1.txt cba fed kji
4. more: 当内容为满屏时, 按百分比显示文件内容;
[root@Centos1 ~]# more /etc/init.d/iptables
5. less: 和more类似, less支持快捷键;
[root@Centos1 ~]# less /etc/init.d/iptables 下面是快捷键: n与N结合/使用: n往下,N往上 n与N结合?使用: n往上,N往下 ctrl+f: 往下翻页 ctrl+b: 往上翻页 快捷键使用:j像下,k像上 G跳转到最后一行g跳转到第一行
6. tail: 默认查看文件尾10行;
[root@Centos1 ~]# tail /etc/passwd postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin named:x:25:25:Named:/var/named:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin rtkit:x:498:499:RealtimeKit:/proc:/sbin/nologin pulse:x:497:498:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin [root@Centos1 ~]# tail -3 /etc/passwd #查看末尾3行, 加-3 gdm:x:42:42::/var/lib/gdm:/sbin/nologin avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin
7. head: 默认查看文件前10行;
[root@Centos1 ~]# head /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin [root@Centos1 ~]# head -3 /etc/passwd #查看前3行. 加-3 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
三、文件及目录属性
[root@Centos1 ~]# ls -l total 28 -rw-r--r--. 1 root root 12 Mar 10 05:56 1.txt drwxr-xr-x. 2 root root 4096 Mar 10 05:38 a
Linux文件类型:
f或者- : 普通文件
d: 目录文件
b: 块设备文件
c: 字符文件
s: 套接字文件
l: 软连接文件
p: 管道文件
1: 表示几个文件使用了相同inode号
.: selinux
+: ACL
Linux文件链接数(即inode)
[root@Centos1 ~]# ls -ldai a #查看a目录本身inode 914018 drwxr-xr-x. 3 root root 4096 Mar 10 05:38 a #3代表的链数. 914018表示inode [root@Centos1 ~]# ls -ali a/ total 8 914018 drwxr-xr-x. 2 root root 4096 Mar 10 05:38 . #查看当前目录 913921 dr-xr-x---. 3 root root 4096 Mar 10 05:56 .. 915949 -rw-r--r--. 1 root root 0 Mar 10 05:28 2.txt 915950 -rw-r--r--. 1 root root 0 Mar 10 05:28 3.txt [root@Centos1 ~]# ls -ali a/1 total 8 915947 drwxr-xr-x. 2 root root 4096 Mar 10 06:27 . 914018 drwxr-xr-x. 3 root root 4096 Mar 10 06:27 .. #查看a/1目录
从上面的inode中可以看出indeo出现三次:
1。 目录本身
2。 a/目录里的'.(隐藏)'当前目录
3。 a/1目录的..(上一级)'上一级目录
四、修改文件及目录的属性和权限(chown、chmod)
1. chown: 修改目录及文件属性(属主、属组)
[root@Centos1 ~]# useradd user1 #创建用户 [root@Centos1 ~]# useradd user2 [root@Centos1 ~]# ls -l | grep '^d' drwxr-xr-x. 3 root root 4096 Mar 10 06:27 a [root@Centos1 ~]# chown user1 a [root@Centos1 ~]# ls -l | grep '^d' drwxr-xr-x. 3 user1 root 4096 Mar 10 06:27 a [root@Centos1 ~]# chown :user2 a [root@Centos1 ~]# ls -l | grep '^d' drwxr-xr-x. 3 user1 user2 4096 Mar 10 06:27 a [root@Centos1 ~]# chown root:root a [root@Centos1 ~]# ls -l | grep '^d' drwxr-xr-x. 3 root root 4096 Mar 10 06:27 a
常用选项:
-R: 递归修改属性
[root@Centos1 ~]# ls -l a total 4 drwxr-xr-x. 2 root root 4096 Mar 10 06:27 1 [root@Centos1 ~]# chown -R user1:user2 a/1 [root@Centos1 ~]# ls -l a total 4 drwxr-xr-x. 2 user1 user2 4096 Mar 10 06:27 1
2. chmod: 修改文件目录的权限
[root@Centos1 ~]# ls -l | grep '^d' drwxr-xr-x. 3 root root 4096 Mar 10 06:27 a [root@Centos1 ~]# chmod 777 a [root@Centos1 ~]# ls -l | grep '^d' drwxrwxrwx. 3 root root 4096 Mar 10 06:27 a
权限用二进制表示应为:
r=4
w=2
x=1
常用选项:
①。 -R: 递归修改文件、目录权限
[root@Centos1 ~]# ls -l a total 4 drwxr-xr-x. 2 user1 user2 4096 Mar 10 06:27 1 [root@Centos1 ~]# chmod -R 700 a [root@Centos1 ~]# ls -l && ls -l a/ drwx------. 3 root root 4096 Mar 10 06:27 a -------------------------------------------------------- drwx------. 2 user1 user2 4096 Mar 10 06:27 1
五、umask权限掩码
[root@Centos1 ~]# umask #umask默认掩码为0022 0022 创建目录的默认掩码为777-022=755。 创建文件的默认掩码为666-022=644。 [root@Centos1 ~]# umask 0001 #修改默认掩码 [root@Centos1 ~]# ls -l | grep aaaa drwxrwxrw-. 2 root root 4096 Mar 10 06:50 aaaa [root@Centos1 ~]# touch a.txt #创建一个文件 [root@Centos1 ~]# ls -l | grep a.txt -rw-rw-rw-. 1 root root 0 Mar 10 06:48 a.txt
a.txt不属于目录, 切不带有'x(执行)'权限. 技术umask改为0001, 而创建的文件权限仍然为666.
如有错误, 请大家指正。
51博客:http://chenxiaojian.blog.51cto.com