文件和目录命令
从P19开始的笔记
目标
- 查看目录内容
- ls
- 切换目录
- cd
- 创建和删除操作
- touch
- mkdir
- rm
- 拷贝和移动文件
- cp
- mv
- 查看文件内容
- cat
- more
- grep
- 其他
- echo
- 重定向>和>>
- 管道 |
1.1 终端使用技巧
1>.自动补全
在敲出 文件/目录/命令的前几个字母之后,按下tab键
1>>.如果输入的没有歧义,系统会自动补全
2>>.如果还存在其他 文件/目录/命令,再按一下tab 键,系统会提示可能存在的命令。
2>.曾经使用过的命令
1>>.按上下箭头,可以选择之前使用过的命令。
2>>.如果退出选择,不想执行当前选中的命令,可以按ctrl+c
1.2 linux下文件和目录的特点
1>.Linux文件或者目录名称最长可以有256个字符
2>.以.开头的文件为隐藏文件,需要用-a参数才能显示
1.3 ls 常用选项
- -a 显示指定目录下所有子目录与文件,包括隐藏文件
- -l 以列表方式显示文件的详细信息
- -h 配合-l以人性化的方式显示文件大小
ls -l -h 同 ls -lh 效果是一样的。
ls -l -h -a 同 ls -lha 效果是一样的。
1.4 ls 通配符的使用
(P23)
匹配可以是1,2,3,4,5任意开头的,23 结尾的.txt文件。
ls [1-3]23.txt
匹配从1-3范围内的任意一个字符。
02.切换目录
2.1 cd
- cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,是最常用的命令之一。
注意:Linux所有的目录和文件名都是大小写敏感的
2.2相对路径和绝对路径
- 相对路径 在输入路径时,最前面不是/或者~,表示相对当前目录所在的目录位置。
- 绝对路径 在输入路径时,最前面是/或者~,表示从根目录/家目录开始的具体目录位置。
03.创建和删除操作
3.1 touch
- 创建文件或修改文件时间
- 如果文件不存在,可以创建一个空白文件
- 如果文件已经存在,可以修改文件的末次修改时间
3.2 mkdir
- 创建一个新目录
-p 可以递归创建目录
注意:新建目录的名称不能与当前目录中已有的目录或文件同名。
mkdir -p a/b/c/d 连续创建多个文件。a文件夹下,创建b文件夹;b文件夹下,创建c文件夹;c文件夹下创建d文件夹。
3.3 rm
- 删除文件或目录
注意:使用rm命令要小心,因为文件删除后不能恢复
-f 强制删除,忽略不存在的文件,无需提示
-r 递归删除目录下的内容,删除文件夹时必须用此参数
rm -r * 删除所有的文件
rm *1.txt 删除所有以1结尾的.txt文件。
切记,千万不能在根目录下,执行 rm -rf * 命令,
执行命令时,一定要再自己的家目录下执行(采用cd命令,快速切换到自己的家命令)
04.拷贝和移动文件
4.1 tree
tree 命令可以以树状图列出文件目录结构
-d 只显示目录
在ubuntu系统中默认是没有tree这个命令的,需要安装,用下面的命令就可以安装tree这个命令工具sudo apt-get install tree。
就可以了。
4.2 cp
cp 命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令
-i 覆盖文件前提示
-r 若给出的源文件是目录文件,则cp
将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
2018年11月27日15:37:52
因为搜狗输入法一直未安装成功,自己也未曾接着学习,记录笔记,认真反思,再来静静学习。
复制 用户家目录下Documents下的readme.txt文件到 桌面。(文件名不发生变化)
~/Desktop$
方法一: cp ~/Documents/readme.txt ./readme.txt
方法二: cp ~/Documents/readme.txt .
担心两个文件覆盖,cp -i ~/Documents/readme.txt .
复制一个目录
cp -r a test 就是将桌面下的a文件夹下的内容复制到test文件夹下。
https://www.bilibili.com/video/av14184325/?p=34
4.3 mv
mv命令可以用来移动文件或目录,也可以给文件或目录重命名
mv 源文件 目标文件
~/Desktop$ mv test ~/Documents/ 表示:将桌面下的test文件夹移动到 家目录下的Documents目录下。
把 桌面中 a文件下b文件夹下c文件夹下的123.txt移动到 当前桌面下。
并使用tree命令查看桌面目录结构。
将桌面下的readme.txt 文件重命名为 demo.txt (老师这里说:需要保证路径一致。)
当桌面上如果原本存在readme.txt 和demo.txt 两个文件夹,并且两个文件内容不相同时,可能导致 将readme.txt 的内容覆盖demo.txt,然后readme.txt 文件删除。
由此可以看出,这个操作并不安全。
05.查看文件内容
5.3 grep
Linux 系统中 grep命令是一种强大的文本搜索工具。
grep 允许对文本文件进行模式查找(即正则表达式)。
-n 显示匹配行及行号。
-v 显示不包含匹配文本的所有行(相当于求反)
-i 忽略大小写
常用的两种模式查找:
^a 行首,搜寻以a开头的行
ke$ 行尾, 搜寻以ke结束的行。
检索不包含 某一项的行号 grep -vn **(检索目标内容)**.txt(检索目标文件)
如果要检索 多个字符如:中间包含空格的 hello python。
就需要采用“”将检索内容括起来,进行检索。
检索不区分大小写 hello python 所在的行号。
06其他
6.1 echo 文字内容
echo 重复的意思。 echo 会在终端中显示参数指定的文字,通常和重定向联合使用。
6.2 重定向>和>>
Linux 允许将命令执行结果 重定向到一个文件
将本应显示在终端上的内容 输出/追加 到指定文件中
其中:
> 表示输出,会覆盖文件原有的内容
>> 表示追加,会将内容追加到已有文件的末尾
echo Hello Python > a 表示将 Hello Python 文本内容,写入到a文件里面去。
cat a //命令是打印显示a文件内容
ls -lh //就是打印当前文件目录及文件大小
ls -lh > a //将打印当前文件目录及文件大小内容 写入到a文件中。
echo Hello Python >> a //在文件a末尾追加Hello Python
ls >> a //将当前目录文件列表追加到a文件
tree >> a //将当前目录下的文件树追加到a文件里
touch命令 只能创建文件 touch b //只能创建b文件
echo 命令 echo Hello > b //可在创建文件的同时向文件夹中追加内容。
6.3 管道 | shift+\
- Linux 允许将一根命令的输出 可以通过管道 做为另一个命令的输入
- 类似显示生活中的管子,管子的一头塞东西进去,另一头取出来,这里| 的左右分为两端,左端塞东西(写),右端取东西(读)。
常用的管道命令有:
more: 分屏显示内容
grep: 在命令执行结果的基础上查询指定的文本。
---end 2018年12月1日15:16:37