文章目录
1. 文件及目录管理
1.1 创建和删除
- 创建文件夹
$mkdir folder
- 删除文件夹
$rm -rf folder
选项
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理, 删除目录时有效;
–preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
- 移动
mv [OPTION]... SOURCE... DIRECTORY
$mv 待移文件/文件夹 目的位置(只能是文件夹)
- 复制
与 mv 一样
1.2 目录切换
- 目录切换
$cd
- 切换到上一级目录
$cd ..
- 切换到上两级目录
$cd ../..
- 切换到上一级工作目录
$cd -
这个可以自己实验一下
- 显示当前路径
$pwd
1.3 列出目录项
- 显示当前目录下的文件
$ls
- 按时间顺序排列
$ls -l 或 $ls -lrt
- 给文件编号
$ls | cat -n
- 查看隐藏文件
$ls -a
1.4 查找目录及文件
- 查找文件或文件夹(目录)
$find -name "008-*"
- 显示查找的文件的类型
$find -name "008-*" | xargs file
- 递归当前目录及子目录删除所有.o文件
$find -name "*.o" -exec rm {} \;
- locate
$locate 008-基础命令
注意:
1. locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
2. locate 的速度比 find 快,它并不是真的查找,而是查数据库,
3. 一般文件数据库在 /var/lib/slocate/slocate.db 中,
4. 所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,
5. 也可以手工升级数据库 ,命令为:sudo updatedb
6. 默认情况下 updatedb 每天执行一次。
1.5 查看文件内容
- cat
$cat file1.txt
cat 后面跟要查看的文件,文件内容全部输出到屏幕
- more
$more file1.txt
more 是我们最常用的工具之一:
1. 最常用的就是显示输出的内容。
2. 然后根据窗口的大小进行分页显示。
3. 然后还能提示文件的百分比。
- less
简介
less 工具
1. 也是对文件或其它输出进行分页显示的工具。
2. 应该说是Linux正统查看文件内容的工具,功能极其强大。
选项
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
关于less动作
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
- 只看前10行
$head -10 file1.txt
- 看倒数第5行
$tail -5 file1.txt
- 查看两个文件间的差别
$diff file1.txt file2.txt
1.6 文件与目录权限修改
- 权限名
1. r 读取权限
2. w 写权限
3. x 执行权限
- 权限值
1. r 4
2. w 2
3. x 1
- 修改文件权限:由可读可写变为只可读
$chmod 444 file1.txt
- 再来个例子
通常我们以 Vim 编辑 Shell 文件批处理文件后,文件权限通常是 rw-rw-r--(644)。
那么,如果要将该文件变成可执行文件,并且不让其他人修改此文件。
则只需将此文件的权限该为 rwxr-xr-x(755)即可。
1.6.1 另一种权限修改方法
字母法:chmod u/g/o/s +/-/= r/w/x
- u/g/o/a
u/g/o/a | 含义 |
---|---|
u | user 表示该文件的所有者 |
g | group 表示与该文件的所有者属于同一组( group )者,即用户组 |
o | other 表示其他以外的人 |
a | all 表示这三者皆是 |
- +/-/=
+/-/= | 含义 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设定权限 |
- r/w/x
r/w/x | 含义 |
---|---|
r | read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。 |
w | write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。 |
x | excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。 |
- 例子
1.7 给文件增加别名
- 临时设置,重启失效
$alias show="ls -l"
- 永久设置(非全局配置别名)
$alias show='ls -l'
export GOPATH=/root/show
1.8 管道和重定向
1.8.1 管道
- 管道符
符号为:|
- 作用
command1 | command2
作用:
| 用于将 command1 的输出重定向作为 command2 的输入
特点:
1. command1 的输出会被实时重定向到 command2 的输入,中间数据传输不会用到任何中间文件或缓冲区。
2. Linux 系统实际上会同时运行 command1 和 command2,并在内部将它们连接起来。而不是表面看起来先运行 command1 然后在运行 command2。
1.8.2 重定向
1.8.2.1 输出重定向
- " > 重定向"
command > outputfile
作用:
"> 重定向符"用于把 command 命令的"输出结果"重定向输入("覆盖")到指定的 outputfile 文件中。
特点:
1. 如果 outputfile 不存在,则自动创建。
2. 如果 outputfile 文件有内容,则全部覆盖。
- " >> 重定向"
command >> outputfile
作用:
">> 重定向符"用于把 command 命令的"输出结果"重定向"追加"到指定的 outputfile 文件中。
特点:
1. 如果 outputfile 不存在,则自动创建。
2. 如果 outputfile 文件有内容,则继续追加到文件末尾。
1.8.2.2 输入重定向
- " < 重定向"
command < inputfile
作用:
< 重定向符用于将文件中的内容重定向输入给 command 处理。
- " << 重定向"
命令 << 分界符
作用:
1. << 重定向符也被称为内联输入重定向符。
2. 表示从键盘中读入,直到遇到分界符才停止(读入的数据不包括分界符)。
3. 这里的分界符其实就是自定义的字符串。
4. 只要不输入分界符(一般用marker),就可以一直输入数据。
5. 输入内容不会储存到文件里。
2. Bash快捷输入或删除
- 什么是Bash
1. Bash,Unix shell的一种
2. 能运行于大多数类Unix系统的操作系统之上
3. 包括Linux与Mac OS X v10.4都将它作为默认shell
4. Bash是一个命令处理器,通常运行于文本窗口中
5. Bash还能从文件中读取命令,这样的文件称为脚本
- 快捷键
键 | 作用 |
---|---|
Ctl-u | 删除光标到行首的所有字符,在某些设置下,删除全行 |
Ctl-w | 删除当前光标到前边的最近一个空格之间的字符 |
Ctl-h | backspace,删除光标前边的字符 |
Ctl-r | 匹配最相近的一个文件,然后输出 |