一、创建文件
1、
touch somefile.1 ##创建一个新的空文件,大小为0(但是未见后缀跟文件的类型无关,尽管是avi格式,也可以放文本)
另一种方式:利用“>”重定向的功能,将一条指令的输出结果写入到一个文件内,会覆盖源文件内容,如果指定的文件不存在,则会创建出来
例如:echo "I love you !" > 1.txt ## 将I love you ! 重定向到1.txt文件内
那么特殊情况:ll > 2.txt ##这样会把ll这个命令的输出内容放到2.txt内
追加:echo "you love me" >> 1.txt ##在内容的原有基础之上追加这些文本
二、vi文本编辑器
(相当于window的文本编辑器,notepad++)
vi 1.txt ##修改1.txt(如果1.txt不存在的话,则会先创建一个空的1.txt进行编辑)
- 首先会进入“一般模式”,此模式只接受各种命令快捷键,不能编辑文件内容
- 首先按“i”键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容(这里按i键,可以在光标定位的位置输入,进行插入;按a,会在光标所在位置的后一个字符善后进行操作;按o,会在光标所在位置下面重新插入一个新的空白行,且光标在该行的第一个上)
- 编辑完成之后,按Esc退出编辑模式,回到一般模式
- 再按:进入的“底行命令模式”,输入wq命令,回车即可,这样是保存且退出;按w,就是保存;但是还是在一般模式下,还可以按i进行编辑
常用快捷键
(用在一般模式下)
a
|
在光标的最后一位插入
|
A
|
在该行的最后插入
|
I
|
在该行的最前面插入
|
gg
|
直接跳到文件的首行
|
G
|
直接跳到文件的末行
|
dd
|
删除一行
|
3dd
|
删除3行
|
YY
|
复制一行
|
3YY
|
复制3行
|
p
|
粘贴
|
u
|
undo回退
|
三、查找并替换
(在底行命令模式中输入)
1、显示行号
:set nu
2、不显示行号
:set nonu
3、查找关键字
:/you ##效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配的位置(按N定位到上一个)
4、替换操作
:s/sad/bbb ##将sad替换成bbb(这种情况只能替换光标所在那一行的第一个sad为bbb)
:%s/sad/bbb ##全局替换(实际操作是会替换每一行的最前面的那个sad)
四、拷贝、删除、移动
- cp somefile.1 /home/gzw ##复制一个文件到指定的目录下
- cp somefile.2 /home/gzw/somefile2.1 ##复制一个文件到gzw下,并且命名为somefile2.1
- rm /home/gzw/somefile.1 ##删除somfile.1(会提示确定删除,要输入y)
- fm -f/home/gzw/somefile.1
- mv /home/gzw/somefile.1 ../
五、查看文件内容
- cat somefile.1 ## 一次性将文件内容全部输出(输出在控制台)
- 分页查看命令:
- more somefile.1 ## 将somefile.1输出在控制台,但是可以翻页查看,下一页按空格键,上一页按b(代表back),退出按(q)
- less somefile.1 ## 将somefile.1输出在控制台,但是可以翻页查看,下一页按空格键,上一页按b(代表back),上翻一行(↑),下翻一行(↓),且可以搜索关键字(/搜索内容)
- 跳到文件末尾:G
- 跳到文件首行:gg
- 退出less:q
六、查看日志
- tail -10 install.log ##查看文件尾部的10行
- tail +10 install.log ##查看文件第10-->最后一行
- tail -f install.log ##实时看日志的输出,追踪日志文件的信息(f追踪的是文件的唯一标识,就算文件被改了名字,也可以被追踪并输出,也就是说,将install.log改为install2.log,用这么命令依旧可以追踪到内容ll -i可以看文件的唯一标识,在文件的最前面那串)
- tail -F install.log ##实时看日志的输出,追踪日志文件的信息(F追踪的是文件名,改了就追踪不了)
- head -10 install.log ##查看文件的头10行
七、打包压缩
1、gzip 压缩
gzip a.txt ##压缩后会变成a.txt.gz,体积会缩小
2、解压
gzip -d a.txt.gz ##解压a.txt.gz成为a.txt
3、打包:将制定文件或文件夹(一堆文件变一个文件)
tar -cvf bak.tar ./aaa ##将./aaa内的内容打包成一个名字叫bak.tar的文件
tar -cvf bak.tar 1.txt 2.txt aaa/ ##将aaa文件夹内的1.txt和2.txt打包成为bak.tar,打完后的bak.tar也在aaa内
(c是创建一个包,v是显示整个打包的进度,f是要创建的那个包的名称)
tar -xvf bak.tar ##将打好的包解压
x是抽取,v显示进度,f文件名
一般来讲,tar打包之后还不够,这只是说将其打包,并未压缩,用的多的是打包成一个压缩文件,可以在上一步的基础上再用 gzip bak.tar 变成bak.tar.gz文件,那么怎么一步完成呢???
tar -zcvf bak.tar.gz 1.txt 2.txt aaa/ ##将aaa文件夹下的1.txt和2.txt打包压缩成一个bak.tar.gz文件
tar -zxvf bak.tar,gz ##将bak.tar.gz解压并且不打包,也就会变成1.txt和2.txt
解压到指定文件夹下:
tar -zxvf bak.tar.gz -C /usr ##将bak.tar.gz解压到usr文件夹内
四、查找命令
一、常用查找命令的使用
1、查找可执行的命令所在路径:
which ls
2、查找可执行的命令和帮助的位置
whereis ls(where和is中间无空格)
3、从某个文件夹开始查找文件
find /-name "gzw*"(“/”是搜索的路径;-name是按照什么搜,可以按照 -user按 所属用户搜 -perm按权限搜;“gzw*”搜的内容,*为通配符,代表以gzw为开头的文件或者文件夹)
4、查找并删除
find / -name "gzw*" -ok rm {}\;
find / -name "gzw*" -exec rm {}\;
5、显示历史命令
history ##显示之前的所有命令
或者直接按↑键
二、grep命令(搜索文件的内容)
1、基本使用-查询包含gzw的行(不用打开文件)
grep gzw /etc/passwd ##在/etc/passwd内查找有gzw的行
gzw:x:500:500:gzw:/home/gzw:/bin/bash
x是密码的占位符,500为用户id,500所属的组的id,gzw是这个用户的全名,也就是描述名称,/home/gzw是用户gzw的家目录,/bin/bash表示gzw用户所用的shell是bashshell(id从500开始才是真的用户,root除外)
grep aaa ./*.txt ##在当前目录下,所有.txt结尾的文件内找包含aaa的行
2、cut截取以:分割保留第七段
grep gzw /etc/passwd | cut -d:-f7
3、查询不包含gzw的行
grep -v gzw /etc/passwd ##-v是反选
五、文件权限操作
1、Linux文件权限的描述格式解读
r:可读;w:可写;x:可执行
drwxr-xr-x可以用二进制表示为:111 101 101 ==> 755
d:标志节点类型(d:文件夹 -:文件 l:链接)
r:可读;w:可写;x:可执行
第一组:rwx ##表示这个文件的拥有者对它的权限:可读可写可执行
第二组:r-x ##表示这个文件的所属组用户对它的权限:可读不可写可执行
第三组:r-x ##表示这个文件的其他的用户对它的权限:可读不可写可执行
2、修改文件权限
- chmod 777 1.txt ##将1.txt变为rwxrwxrwx
- chmod +x 1.txt ##拥有者、所属用户、其他用户都加一个x权限
- chmod u+rx 1.txt ##拥有者加rx权限,其他的用户不变
- chmod g+rx 1.txt ##所属用户组加rx权限,其他的用户不变
- chmod o+rx 1.txt ##其他用户加rx权限,其他的用户不变
但是注意,改的只是这个文件/文件夹的权限,假设文件夹还有文件,沃特娘的想一次性全部给改了,咋个办???
chmod -R 777 aaa ##将aaa文件夹以及文件夹内的全部文件全部改成777