|
| 1 | +1. [目录相关操作(cd, pwd, mkdir, rmdir)](#1) |
| 2 | +2. [文件与目录管理(ls, cp, rm, mv, dirname, basename)](#2) |
| 3 | +3. [查看文件内容(cat, less, more, head, tail)](#3) |
| 4 | +4. [指令与文件的查找(which, locate, find)](#4) |
| 5 | + |
| 6 | +## <span id="1">1.目录相关操作(cd, pwd, mkdir, rmdir)</span> |
| 7 | +### cd:切换工作目录(change directory) |
| 8 | +```python |
| 9 | +. : 当前目录 |
| 10 | +.. : 上一层目录 |
| 11 | +- : 前一个工作目录 |
| 12 | +~ : “目前使用者身份”所在的主文件夹 |
| 13 | +``` |
| 14 | + |
| 15 | +### pwd:显示当前所在的目录(print working directory) |
| 16 | +* -P: 显示出真实的路径,而不是使用链接(link)路径。 |
| 17 | + |
| 18 | +```python |
| 19 | +[root@iZ8vb6ughzbdqkfd58dowoZ mail]# pwd |
| 20 | +/var/mail |
| 21 | +[root@iZ8vb6ughzbdqkfd58dowoZ mail]# pwd -P |
| 22 | +/var/spool/mail |
| 23 | +``` |
| 24 | + |
| 25 | +### mkdir:创建新目录 |
| 26 | +-p:默认不加参数只能一层一层创建目录,加了-p可以直接递归创建 |
| 27 | + |
| 28 | +```python |
| 29 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# mkdir d1 |
| 30 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# ll |
| 31 | +total 4 |
| 32 | +drwxr-xr-x 2 root root 4096 Feb 12 17:42 d1 |
| 33 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# mkdir d2/d3/d4 |
| 34 | +mkdir: cannot create directory ‘d2/d3/d4’: No such file or directory |
| 35 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# mkdir -p d2/d3/d4 |
| 36 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# ls |
| 37 | +d1 d2 |
| 38 | +``` |
| 39 | + |
| 40 | +### rmdir:删除空目录 |
| 41 | +rmdir只能删除空目录,被删除的目录中肯定不能存在其他目录或者文件。 |
| 42 | +-p: 连同上层的空目录也一起删除 |
| 43 | + |
| 44 | +```python |
| 45 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# ls |
| 46 | +d1 d2 |
| 47 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# rmdir d1 |
| 48 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# ls |
| 49 | +d2 |
| 50 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# rmdir d2 |
| 51 | +rmdir: failed to remove ‘d2’: Directory not empty |
| 52 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# rmdir -p d2 |
| 53 | +rmdir: failed to remove ‘d2’: Directory not empty |
| 54 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# rmdir -p d2/d3/d4/ |
| 55 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# ls |
| 56 | +``` |
| 57 | + |
| 58 | +## <span id="2">2.文件与目录管理(ls, cp, rm, mv, dirname, basename)</span> |
| 59 | +**包括查看属性,复制、删除文件,移动文件或目录。** |
| 60 | +### ls:查看 |
| 61 | +```python |
| 62 | +-a : 查看全部文件,包括隐藏文件 |
| 63 | +-h : 将文件大小以易读的方式显示出来 |
| 64 | +-l : 显示文件的属性与权限等数据 |
| 65 | +``` |
| 66 | + |
| 67 | +### cp:复制文件或目录 |
| 68 | + |
| 69 | +```python |
| 70 | +# 复制文件 |
| 71 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# cp ~/test.py test |
| 72 | +cp: overwrite ‘test/test.py’? |
| 73 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# ls |
| 74 | + |
| 75 | +# 复制整个目录到另一个目录 |
| 76 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# cp -r ~/py_test/ test |
| 77 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# ls test/ |
| 78 | +py_test test.py |
| 79 | + |
| 80 | +# 复制目录下所有文件到另一个目录下 |
| 81 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# cp -r ~/py_test/* test |
| 82 | +cp: overwrite ‘test/test.py’? y |
| 83 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# ls test/ |
| 84 | +log nohup.out test.py |
| 85 | +``` |
| 86 | + |
| 87 | +### rm: 移除文件或目录 |
| 88 | +```python |
| 89 | +-f:force,强制删除 |
| 90 | +-i:删除之前会询问 |
| 91 | +-r:递归删除 |
| 92 | +``` |
| 93 | + |
| 94 | +### mv:移动文件或目录 |
| 95 | +```python |
| 96 | +# 重命名 |
| 97 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# ll |
| 98 | +total 20 |
| 99 | +-rw------- 1 root root 12980 Feb 12 18:20 nohup.out |
| 100 | +-rw-r--r-- 1 root root 1984 Feb 12 18:20 test.py |
| 101 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# mv test.py test.py.bak |
| 102 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# ll |
| 103 | +total 20 |
| 104 | +-rw------- 1 root root 12980 Feb 12 18:20 nohup.out |
| 105 | +-rw-r--r-- 1 root root 1984 Feb 12 18:20 test.py.bak |
| 106 | + |
| 107 | +# 移动文件 |
| 108 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# mv ~/test.py ~/test |
| 109 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# ll |
| 110 | +total 76 |
| 111 | +-rw------- 1 root root 12980 Feb 12 18:20 nohup.out |
| 112 | +-rw-r--r-- 1 root root 55288 Jan 6 11:55 test.py |
| 113 | +-rw-r--r-- 1 root root 1984 Feb 12 18:20 test.py.bak |
| 114 | +``` |
| 115 | +### 获取路径的文件名称和目录名 |
| 116 | +```python |
| 117 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# dirname ~/test/nohup.out |
| 118 | +/root/test |
| 119 | +[root@iZ8vb6ughzbdqkfd58dowoZ test]# basename ~/test/nohup.out |
| 120 | +nohup.out |
| 121 | +``` |
| 122 | + |
| 123 | +## <span id="3">3.查看文件内容(cat, less, more, head, tail)</span> |
| 124 | +* cat: 从第一行开始显示文件内容,文件行数比较少时适用,-n参数显示行号。 |
| 125 | +* more: 一页一页显示文件内容。 |
| 126 | +* less: 和more类似,less可以使用方向键上下移动,加载速度比more快。 |
| 127 | +* head:只看头几行,head -n 20 filename,只看前几行。 |
| 128 | +* tail: 只看后几行,tail -f filename持续输出。 |
| 129 | + |
| 130 | +### more的指令 |
| 131 | +* Enter: 下翻一行 |
| 132 | +* 空格键:下翻一页 |
| 133 | +* b: 向上翻页 |
| 134 | +* q: 退出 |
| 135 | + |
| 136 | +### less的指令 |
| 137 | +* Enter: 下翻一行 |
| 138 | +* 空格键:下翻一页 |
| 139 | +* b: 向上翻页 |
| 140 | +* q: 退出 |
| 141 | +* /字符串:向下查找字符串 |
| 142 | +* n: 重复前一个查找的字符串 |
| 143 | +* N: 反向查找 |
| 144 | + |
| 145 | +### 文件的时间 |
| 146 | +* modification time (mtime):文件内容数据变化时,会更新这个时间,ll显示出来的就是这个时间。 |
| 147 | +* status time (ctime):文件的权限与属性发生变化时会更新。 |
| 148 | +* access time (atime):文件内容被取用时更新,如cat读取文件内容。 |
| 149 | + |
| 150 | +### 查看文件类型 |
| 151 | +```python |
| 152 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# file test.py |
| 153 | +test.py: Python script, UTF-8 Unicode text executable |
| 154 | +``` |
| 155 | + |
| 156 | +## <span id="4">4.指令与文件的查找(which, locate, find)</span> |
| 157 | +### which 寻找可执行文件 |
| 158 | +```python |
| 159 | +# -a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称 |
| 160 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# which python |
| 161 | +/usr/bin/python |
| 162 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# which -a python |
| 163 | +/usr/bin/python |
| 164 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# which -a ls |
| 165 | +alias ls='ls --color=auto' |
| 166 | + /usr/bin/ls |
| 167 | +``` |
| 168 | +### whereis(从一些特定的目录中查找文件文件名) |
| 169 | +whereis主要是针对 /bin /sbin 下面的可执行文件,以及 /usr/share/man 下面的 man page 文 |
| 170 | +件,跟几个比较特定的目录来查找文件。 |
| 171 | +* whereis -l: 查看whereis查找的是哪些目录 |
| 172 | + |
| 173 | +### locate(利用数据库来查找) |
| 174 | +locate 寻找的数据是由“已创建的数据库 /var/lib/mlocate/” 里面的数据所 |
| 175 | +搜寻到的,所以不用直接在去硬盘当中存取数据. |
| 176 | + |
| 177 | +数据库不是实时更新的,如果需要手动更新,可以用updatedb指令。 |
| 178 | + |
| 179 | +```python |
| 180 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# locate regular_express.txt |
| 181 | +/root/regular_express.txt |
| 182 | +``` |
| 183 | + |
| 184 | +### find(通过硬盘查找,速度较慢) |
| 185 | +```python |
| 186 | +[root@iZ8vb6ughzbdqkfd58dowoZ ~]# find /root -name rootfile.txt |
| 187 | +/root/rootfile.txt |
| 188 | +``` |
0 commit comments