目录
指令0:pwd
指令1:ls
指令2 :cd
指令3:touch
指令4:mkdir
指令5:rmdir指令 和 rm 指令
指令6:man
指令7:cp(拷贝)
指令8:mv(剪切/移动 、重命名)
指令9:cat 和 tac
指令10:more 和 less
指令11:head 和 tail
指令12:date (与时间相关的)
指令13:cal
指令14:find -name
指令15:which 和 whereis
指令16:alias
指令17:grep
指令18:sort 和 uniq
指令19:zip 和 unzip
指令20:tar
指令21:bc
指令22:uname
Linux常用热键:
PS:下面所有操作均在Xshell7上进行。
显示当前用户所处的路径。
1、 ls :显示当前路径下的文件或者目录名称
2、ls -l (或写成 ll) 显示当前路径下的文件或者目录的更详细的属性信息
3、ls -a:显示目录下所有文件(包括隐藏文件 . xxx)。 Linux下 .XXX 为隐藏文件,ls默认不显示隐藏文件。
4、ls -al:显示目录下所有文件并展示,Linux下可以将命令组合使用。
5、ls -d :不进入目录,而是显示目录本身 ,ls -dl 也就是加上显示详细信息。
6、ls -Rl:在显示目录里面的文件的同时,在下面显示目录里面包含的其他目录里的文件。
ls 下还有很多操作,如上表里的 ls -t , ls -s 等等,在这里只是挑几个常用的介绍一下。
Linux系统和我们常用的Windows系统一样,操作系统文件的目录结构是一颗多叉树。
1、cd:进入路径。这里的路径有相对路径和绝对路径之分。
绝对路径:就是固定存在的,不论用户当前是处于哪一条路径上,都可以通过绝对路径前往要去的路径底下。
相对路径:相对于当前用户所处的位置,在当前的基础上前往目的路径。
相对路径一般日常操作中使用较多,因为比较方便,绝对路径每次都需要完整的打出整条路径。
绝对路径一般是用在比较正规官方的场合,比如作为一个配置文件的一个配置,保证绝对不会出错,在任意位置都能使用。
2、cd .. :回退到上级目录。 . 是当前目录, .. 是上级目录。
cd .. 退到根目录就无法再退了。
3、cd ~ :进入家目录(家目录:特定用户登录时,默认所处的路径),root用户下为 /root ,普通用户则是 自己所在的家目录 /home/xx
4、cd - :在两个热点路径之间来回切换。比如上一个所在路径为a路径,现在去到了b路径,cd -可以重新回到a路径,可以来回反复横跳。
touch是Linux下创建普通文件的最常用的一种方式,它不能创建目录。
mkdir 是创建空目录,要想创建一串路径,要用mkdir -p a/b/c/d
1、rmdir :删除空目录(使用场景不多,更多的还是rm)
2、rmdir -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
1、rm : 默认删除普通文件。
2、rm -r:递归删除,删除的是目录(文件目录是多叉树结构)
3、rm -f:默认删除的时候系统会询问是否删除, -f 不进行询问,直接删除
注意千万不要误删了根目录 / ,会造成很严重的问题!
4、rm -i : 为了防止误删,-i 系统会询问用户,是否删除文件。
man是Linux下的一个手册,可以查看 "命令、系统调用以及C语言库"。
以上3个对应编号1,2,3.
就可以查看ls命令相关内容,左上角LS(1)就代表编号1,“命令”
'q' 键可以退出。
上面学了man手册,可以来查一下cp的用法。
cp可以用来拷贝普通文件和目录。
如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存 在的目录,则会出现错误信息。
cp src dest :cp指令后跟复制源文件,最后的则是拷贝目的地。
注意:cp是拷贝,不是剪切,不会影响原文件,是把原文件的内容拷贝覆盖到目的地文件。
因为会覆盖,所以要小心拷贝。
cp -r , cp -f , cp -i 这些命令选项都和之前讲的 rm指令里面一样。
cp只能复制普通文件,不能复制目录, -r 可以递归复制目录。
如果复制的目的地目录下有和被拷贝文件重名的文件,可以 cp -i 询问是否有重名,若有,编译器会显示出来。
上面讲了cp是拷贝不是剪切,这里mv可以说是剪切,或者说是移动。
mv可以移动文件和目录。PS:不是所有文件都可以mv 、cp的,比如挪到根目录底下,这些操作是受权限约束的。
重命名:必须在有文件名的 前提下操作:
cat 和 tac都是用来查看文件内容的。区别是cat是正序查看,tac是反过来的。
举个例子:现在我写一个简单的脚本,自动生成10000行 "hello world" 内容
cnt=0; while [ $cnt -le 10000 ]; do echo "hello world [$cnt]"; let cnt++; done
这样就自动生成了10000行,并且是直接刷到底部的。
我们将其放到一个test.txt文件里面:
然后用nano工具打开,nano是一个文本工具。
这样同样可以查看文件内容并且进行修改。
回到cat,上面说cat查看内容是看到文件底部的。
既然如此,那cat就不适合用来查看大文本(大型工程代码、日志),只适合用来查看小文本和代码片段。
如果想查看大文本,就需要用到下面讲的more 和 less。
1、more和cat都是查看文本,区别在于more是从头开始显示,满一页就不再往下显示了,用键盘" 回车" 可以往下翻。
2、more -n 和 cat -n 都可以显示行号。
3、more -999:可以将999行上面一段文本显示出来。
more 在文本中还可以查找相应内容所在位置并显示。
我先将test.txt中一行改成xxxx:
用more打开文本,输入/xxxx:
回车,就会自动匹配找到第一次出现的xxxx:
less相较于more更加灵活,more不能向前翻,但是less可以,因此通常用less查看文本。
head 、tail 顾名思义,一个是查看头部10行文本,tail是查看尾部10行文本。
加上对应数字则查看对应行数:
现在我们可以拿到文本的前10行和后10行了,那怎样拿到文件的中间10行呢?
1、可以先创建一个新文件,用head 取出前5010行,重定项 > 到新文件中,再用tail -10就可以得到中间10行的内容了,这样做需要创建新文件不太合适。
2、管道。head -5010 test.txt | tail -10 管道实际上可以将多条命令组合到一起实现。一边是入口,一边是出口。
head -5010向显示器上打印,tail -10默认从文件中读取数据。
想格式化地显示时间,可以用到date命令:
这里的 Y: 年 ; m:月; d:日; H:小时;M:分钟;S:秒
并且年、小时、分钟、秒要大写,月、日小写。
除了%以外,其余符号可改变,以此改变日期显示形式。
如果直接date,显示的是格林尼治时间:
date +%s,显示的是时间戳(格林尼治从1970.1.1午夜0:00开始累积的秒数):
date -d@1508749502 (时间戳秒数):将时间戳秒数转化成我们认识的时间:
cal就是显示日历(公历)
find命令是非常重要的一条命令,它有很多应用,完全可以写一篇万字长文了。
为什么它如此重要,因为find命令去系统里帮你找东西,是全盘仔细地搜索,甚至没有加载到内存的在磁盘中的文件都能帮你找出来,当然需要花上一定的时间,成本比较高,效率比较低,但是查出来的东西都比较真实。
我们今天只说一下find里面的一个选项 -name。find -name是以文件名搜索文件。
还有很多查找指令,我们下面说一下。
which查找的是命令,也就是找一个命令所在的路径。
whereis查找范围要比which大一些,比find小,所以which < whereis 它会去指定目录底下查找,一般是根目录或公共路径。 也就是说它在特定的路径下,查找指定的文件名对应的指令或文件。 alias:对指令重命名。 grep是文本内容的行过滤工具。 默认会匹配文本中的关键字,匹配上的进行行显示。 在以之前写的10000行脚本文本为例,如果想匹配文本里有999的行显示出来: 1、grep默认区分大小写,-i 则忽略大小写。 2、-v 是反向选择,不匹配的显示出来。 3、统计行数,要统计匹配的内容有多少行,可以 sort是对文本排序,uniq是去重(相邻两行重复的保留一行)。 在Windows下我们经常会压缩文件,格式有zip、tgz等等,同样在Linux下也一样存在。 不同的格式处理方式也不同,今天先来看zip和tgz。 zip是压缩命令,命令方式: zip 压缩包(名字自定义) 要打包压缩的目录 基本操作如上,但我们发现一个问题,进入压缩包,里面是空的。 这是因为zip默认对一个目录打包压缩的时候,只会对目录文件打包压缩。也就是说它只打包了个外壳,里面的文件都没有打包。 所以要用到 zip -r ,递归式打包压缩。 打包压缩完后,需要解压得到压缩包里的东西,unzip 压缩包: 这样会默认解压到当前目录里,如果需要解压到指定目录下,可以用 unzip -d 指定目录 tar 也是打包压缩文件的,形式与zip类似: tar -czf 压缩包 指定目录 解压则是: 将czf 换成 xzf即可。 再说几个常用的选项: 1、-t :查看 tarfile 里面的文件但不解压。 2、-v :压缩的过程中显示文件。 3、-C : 解压到指定目录。(与zip不同) 相当于Linux下的计算器,可以进行一些简单的运算。 bc计算器支持命令行,可以和管道结合使用: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。 -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称 指令16:alias
指令17:grep
指令18:sort 和 uniq
指令19:zip 和 unzip
指令20:tar
指令21:bc
指令22:uname
指令23:内核信息
Linux常用热键: