0. 几个入门指令
① whoami ——查看当前账号是谁
② who ——当前有哪些人登录
③ pwd ——查看当前所处的工作目录
④ ls/ls -l ——查看当前目录下的文件信息
(空目录,所以不显示)
⑤ clear ——清屏
1. ls 入门指令
语法: ls [选项][目录或文件];
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
① ls ——查看当前目录有哪些文件
(空目录,所以无文件)
② ls -l ——以列表形式查看当前目录有哪些文件
(空目录,所以无文件)
③ ls -a ——显示当前目录的隐藏文件
在Linux中,隐藏文件通常以 . 开头,隐藏文件默认不显示。
-a中的a有all的意思,ls -a意即显示当前目录下的所有文件,包括隐藏文件。
④ ls -la ——以列表形式显示当前目录的隐藏文件
此外,① ls -la /② ls -al /③ ls -l -a /④ ls -a -l 这几个指令的功能一模一样
关于ls指令,其实最常用的指令为 ll (等价于ls -l)和 ll -a (等价于ls -la)。
2. pwd 命令
语法:pwd;
功能:显示用户当前所在的目录。
pwd为print working directory的缩写,意即打印当前工作目录。
Linux系统的pwd命令显示的结果就相当于windows系统的文件目录:
3. cd 命令
语法:cd 目录名;
功能:改变工作目录,将当前工作目录改变到指定的目录下。
在ls指令里,我们看到了 . 和 .. 这两个隐藏文件,那么这两个文件有什么含义呢?
其实在每个目录下都存在这两个文件, . 表示当前文件, .. 表示返回上级目录。
① cd . ——进入当前目录
② cd .. ——返回上级目录
其实,Linux下的 cd .. 命令就相当于windows系统下的:
此外,还应该了解的是:windows系统下的目录分隔符为反斜杠: \ :
而Linux下的目录分隔符为斜杠: / :
可我们一直 cd .. 得到的结果为一个单独的 / :
这个 / 也是目录,叫做根目录,根目录的 . 和 .. 都指向自己。
穿插一个知识:Linux下的目录其实是以 / 目录为根节点的多叉树 ,为验证其多叉树结构我们使用:
tree . 当前目录以树状结构显示
(需在root账号下以yum install -y tree命令安装)
③ cd 目录名 ——绝对路径
我们从 / 目录开始,定位一个叶子节点的方式,形成的路径称为绝对路径;
示例:
④ cd .. 目录名——相对路径
相对于自身当前所处的目录为参考点,定位到一个文件的路径称为相对路径;
示例:
⑤ cd - ——跳转回最近一次访问的目录
(与Windows下的Alt+Tab键有异曲同工之妙)
⑥ cd ~ ——进入用户家目录
默认登录的时候,默认所处的路径,就是当前登录用户的家目录;
比如我是root用户,root的家目录就是/root。
4. touch指令
语法:touch [选项]... 文件...;
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
补充指令:
stat 文件名 ——查看文件更详细的属性信息:
对于此命令得到的ACM时间的含义为:
Access Time简称atime,表示文件最后一次被访问的时间(对文件读取、执行、查看都会更新此时间);
Modify Time简称mtime,表示文件内容最后一次被修改的时间(对文件内容进行增、删、改都会更新此时间);
Change Time简称ctime,表示文件属性最后一次被修改的时间(文件属性包括所有者、权限等信息,此时间注意与mtime区分)。
5. mkdir指令
语法:mkdir [选项] dirname...;
功能:在当前目录下创建一个名为 “dirname”的目录。
① mkdir dir1 ——创建目录
② mkdir -p dira/dirb/dirc/dirc ——加-p递归建立多个目录
注意touch指令与mkdir指令的区别:
在Windows下前者相当于新建一个文件,后者相当于新建一个文件夹:
6.rmdir指令与rm 指令
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除目录。
① rmdir 目录名 ——删除空目录
rmdir只能删除空目录,不能删除文件,rm命令可以同时删除文件或目录,所以用rm命令比rmdir更多。
② rm -r 目录名 ——递归删除不为空的目录(需要用户确认y/n)
③ rm -rf 目录名 ——强制删除目录(不需要用户确认)
④ rm 文件名 ——删除文件 (询问)
⑤ rm -f 文件名 ——删除文件(不需要询问)
关于rm命令总结一下:
rm后不带r删除的是文件,带r删除的是目录;(文件/目录—>r)
rm后不带f表示询问删除,带f表示强制删除。(询问/不询问—>f)
⑥ rm -i 文件名 ——删除前逐一询问确认
⑦ rm -rf * ——删除指定路径下的所有文件(*通配符,意思是指定路径下的所有文件)
(注意此命令不会删除该目录下的隐藏文件,如若删除,命令为:rm -r 隐藏的文件名)
7. man 指令
Linux有很多参数,我们不能完全记住,那么Linux总有一个“男人”在等着我们问他问题。
语法: man [选项] 命令(不带选项默认从第1章开始找,逐级往下找,直到找到为止)
man 手册分为9章:
1. 可执行程序或 shell 命令;
2 .系统调用(内核提供的函数);
3 .库调用(程序库中的函数);
4 .特殊文件(通常位于 /dev 目录中);
5 .文件格式和约定(例如 /etc/passwd);
6 .游戏;
7 .杂项(包括宏包和约定),例如 man(7)、groff(7);
8 .系统管理命令(通常仅限于 root 用户);
9 .内核例程(非标准)。
比如我们不知道ls指令的用法:
8. cp 指令
学习cp指令之前先了解一下Linux下的记事本功能:
(需要先用yum install -y nano指令安装)
nano file.txt ——在当前目录下写入记事本
语法:cp [选项] 源文件或目录 目标文件或目录;
功能: 复制文件或目录;
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息 (在下面④中会有体现)。
① cp 文件名 .. ——将当前目录下的文件拷贝到上级目录
② cp 文件名 新文件名 ——将当前目录下的文件拷贝到当前目录(同级目录不能有同名文件,故改名)
③ cp -rf 目录名 新目录 ——将目录拷贝到新目录
④ cp -rf /root/dir1/* test ——将目标目录的所有文件拷贝到当前目录
(同cd命令时说的 . 和 .. 一样,隐藏文件不会被复制)
9.mv 指令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。(即:cp是复制,mv是剪切)
语法: mv [选项] 源文件或目录 目标文件或目录;
功能: 1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的 目录中;
2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它 将所给的源文件或目录重命名为给定的目标文件名;
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至 目标目录中。
① mv /root/dir/test dir1 ——剪切目录
② mv /root/dir1 dir2 ——重命名
③ mv /root/dir2/test/file.txt1 /root/dir2/test/d1/file.txt ——剪切文件并重命名
10. cat 指令
语法:cat [选项][文件];
功能: 查看目标文件的内容。
① cat 文件名 ——显示文件内容
在cp指令里,我们用nano写入了一段代码,现在我想查看一个写入的内容:
了解了nano命令可以向文件里写入内容,再来了解一下echo:默认向显示器打印
① echo 字符串 ——显示字符串内容
那么这时"hello linux"并没有存进文件,怎么像nano那样存进文件呢?
② echo 字符串 > 文件名 ——创建新文件并将字符串写入(如果直接echo > 文件名/> 文件名就相当于touch了一个新文件)
> 介绍:输出重定向,echo 本来默认向显示器打印的,现在加上>就改变了打印方向,变成了向文件内部写入,这个过程就叫做输出重定向。
>输出重定向,每次都会清空原始文件,然后再写入;所以>一来可以新建空文件二来可以清空目标文件。
>每次写入时都要清空原文件然后再写入,那么我需要往文件里增加新数据,不要清空,这时该怎么办呢?
③ echo 字符串 >> 文件名 ——向目标文件新增数据
>> 介绍:追加重定向,在原始内容的基础上新增内容。
继续cat命令:
② cat -n 文件名 ——输出的所有行编号
③ cat -s 文件名 ——不输出多行空行
④ cat -b 文件名 ——对非空行输出行编号
⑤ tac 文件名 ——逆向显示文件内容
11.more/less指令
如果我要查看一个大文件,比如一个一万行的文件,用cat命令就不太方便,如图:
此时用more+文件名就可以输出为静态,我们每按一下回车就会显示一行:
① more 文件名 ——按需显示
more命令只能按回车键才能看下一行,其他键都不能使用,more命令只能下翻不能上翻,所以相比于more命令,用的最多的是less命令:
② less 文件名 ——按需显示
也可以输入: /要查找的数据 ——自动跳转到要搜索的所在行
12. head/tail指令
① head -x 文件名 ——显示文件的前x行
② tail -x 文件名 ——显示文件的后x行
③ head -x 文件名| tail -y ——查看文件从第x行开始的y行
(此命令中的 | 是命令行管道)
13. 时间相关的指令
date 指定格式显示时间: date +%Y:%m:%d;
时间->时间戳:date +%s;
时间戳->时间:date -d@1508749502
14.cal指令
Windows下有日历功能:
那么Linux有没有日历呢?答案当然是有的:
常用选项:
-3 显示系统前一个月,当前月,下一个月的月历;
-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数);
-y 显示当前年份的日历。
15. find指令
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
举例:-name 按照文件名查找文件。
16. which/where指令
① which 指令 —— 搜索某个指令存在哪个目录下。
② whereis name ——搜索包括安装包、指令、文档等的存放路径
17. grep指令
语法: grep [选项] 搜寻字符串文件;
功能: 在文件中搜索字符串,将找到的行打印出来;
常用选项:
-i :忽略大小写的不同,所以大小写视为相同;
-n :顺便输出行号;
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行。
18. zip/unzip指令
语法: zip 压缩文件.zip 目录或文件;
功能: 将目录或文件压缩成zip格式。
将test2目录压缩:zip test2.zip test2/*;
(需要用yum install -y zip指令安装)
解压到tmp目录:unzip test2.zip -d /tmp。
(需要用yum install -y unzip指令安装)
19. uname指令
语法:uname [选项] ;
功能: uname用来获取电脑和操作系统的相关信息;
说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
uname -a或–all ——详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称