目录
一 命令行和命令
命令行:就是我们打开linux操作系统看到的界面,即Linux终端,可以提供字符化的操作页面供命令执行
命令:Linux的操作指令。是系统内置的程序,可以用字符化的形式去使用
这就是一个命令行
Linux的命令通用格式
command [- options] [parameter]
命令本体,即命令本身
可选选项,控制命令的行为细节
可选参数,控制命令的指向目标
ls是命令,-l为选项,text.txt 为指向的目标
二 Linux基本指令
2.1 ls 指令
语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
注意这里的列出是平铺列出
除了命令本身它还有可选的选项
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。
2.2 pwd和cd指令
pwd:
语法: pwd
功能:显示用户当前所在的目录
cd:
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
pwd后面不能接选项,但是cd可以接选项
对于pwd来说,显示我们当前所在的目录,可能你会疑惑为什么显示的是 home/你的用户名
其实你创建用户的时候,它默认给你分好了你工作目录,这个目录是用你的用户名命名的,所以后面是你的用户名
同时你这个目录是在home这个目录之下的,所以才是这个格式,也是因为这样,每次进入的时候pwd都是这个目录
这其实和windows是一样的,windows也有一个用户的文件夹,里面就有你的用户名称(windows也可以创建多个用户)
对于cd来说,它的选项有很多
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录
绝对路径:从根目录出发,找到你所需的文件
相对路径:从当前路径出发找到你所需文件
2.3 touch和mkdir指令
语法:touch [选项]... 文件...
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
-a 或--time=atime或--time=access或--time=use只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
注意:这里的创建文件普通用户必须在home目录下创建,不能在根目录下创建,这个涉及到权限问题,普通用户无法越权
mkdir:
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
如果我们需要一次创建多个文件就可以用-p选项,如果是创建一个直接用就行
二者区别就是一个是创建文件一个是创建目录
2.4 man指令
man指令:
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是
man 语法: man [选项] 命令
常用选项
-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按
下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
解释一下,面手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文
件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
如果想退出直接按q就可以退出了
2.5 cp指令
07.cp指令:
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
2.6 head和tail指令
head指令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法: head [参数]... [文件]...
功能:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:
-n<行数> 显示的行数
tail指令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
-f 循环读取
-n<行数>显示行数
这里的-f选项可以理解为当我们使用两个相同的用户的时候,我们可以用另外一个用户进行文档的输入,在另外一个用户上可以看到最新的内容
2.7 find指令
find指令:
Linux下find命令在目录结构中搜索文件,并执行指定的操作。
Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
语法: find pathname -options
功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
常用选项:
-name 按照文件名查找文件。
注意这里的name并不是直接写,而是在后面加,同时我们也可以这样去寻找
除了 *test ,还有 test* 还有 *test*
他们分别表示以test结尾,以test开头,和包含test的文件
2.8 grep指令
语法: grep [选项] 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
这里其实起到了一个过滤功能,也就是找到所需要的字符串所在的行,然后把这一整行打印出来
同时一般搭配管道使用 这里的管道就是 | 这个符号
可以看到grep的格式形式,是先输入要找的字符串再输入所在文件,如果这里搭配管道使用就是
这里的 “Linux”后面没有跟文件了,就是这个管道的原因(如果不加管道这样写是不行的,不信可以试试)
其实这里的管道符的作用是将左边的结果作为右边的输入,因为如果我们不填后面的文件,那么这个位置会设置为内容的输入端口
这里的cat 就是打印文件内容
三 总结
以上就是常用的基本指令了,其中每个指令有每个指令的细节,除了少数几个简单的,这里需要去理解记忆,其实还有很多,但是那些并不常用,需要的时候用man查找用法就行了