所有的指令不要强制记忆,选项要多多查一下,多多练习使用即可。
Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲, Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。
linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目(c/c++/php/python/java/go)都会部署到Linux/unix系统上。
目前市面上常见的操作系统有Linux、Windows、iOS、Android等。
linux在服务器领域的应用是最强的。因为linux免费、稳定、高效等特点在这里得到了很好的体现,尤其在一些高端领域(C++/Java等)尤为广泛。
同时在嵌入式领域、个人桌面领域、大数据/云计算也有广泛的应用。
Linux安装:Linux可以采用虚拟机或云服务器的方式来运行,并用Xshell远程登录。网上教程很多,在此省略。
不同于Windows,linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”
,然后在此目录下再创建其他的目录。这些目录的名字是不可以更改的。
目录结构和命令行对Linux的学习非常重要,因为在实际生产中是没有图形化界面的,只有一个控制台窗口,如果对目录结构不熟悉很容易蒙圈。
Linux下一切皆是文件,对于硬件,Linux也会映射成文件来进行管理。
是binary的缩写,这个目录下存放着Linux下最经常使用的命令。
s就是super user的意思,这个目录下存放的是权限比较高的指令,也就是系统管理员(root)使用的指令。
该目录为系统管理员,也称作超级权限者(root)的用户主目录。
系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
所有的系统管理所需要的配置文件和子目录,安装的所有程序的配置文件默认放在这个目录下面。
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
用来存放一些临时文件。
类似于windows的设备管理器,把所有的硬件用文件的形式存储
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别I后,linux会把识别的设备挂载到这个目录下.
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
这是给主机额外安装软件所存放的目录。可以将安装文件放在这个目录中,便于程序的管理。默认为空。
这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序。
这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。
在Linux下目录用分割符/
分隔开来,就像Windows下用\
将文件夹分割开来。
同时,Linux下也存在绝对路径和相对路径,任何一个目录都有从根目录开始的唯一的绝对路径,而相对路径是有多个的。
空文件也是占用磁盘空间的,文件由文件内容和文件属性(文件大小,文件名称等)组成,对于一个空文件,文件属性是存在的,所以这个空文件也会占用磁盘空间。
所以,即使一个文件的大小为0,它也是要占磁盘空间的。
ls的作用是显示当前目录的文件和子目录。
语法: ls 选项 目录或文件
功能: 对于目录,该命令列出该目录下的所有子目录与文件;对于文件,该命令列出文件名以及其他信息。
常用选项:
每个目录下默认存在两个隐含文件 . 和 . . ( . 代表当前目录 . . 代表上级目录)。
语法: pwd
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
目录名可以按照绝对路径或者相对路径来写,例如:
cd .. : 返回上一级目录
/home/hjl/9.24_test : 绝对路径
cd ../9.25_test/ : 相对路径
cd ~:进入用户家目录(主工作目录)
cd -:返回最近访问目录
普通用户的家目录(主工作目录)默认为 /home/xxx,root用户的家目录(主工作目录)默认为 /root。
该命令只能用来创建普通的文本文件,其中文件的后缀与文件的属性无关,但为了符合人的习惯还是应该加上文件后缀,比如.c .txt
等。
语法: touch 选项 文件
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
其中stat命令可以显示文件或文件系统的详细信息。
Access:表示最后一次访问(仅仅是访问,没有改动)文件的时间
modify:表示最后一次修改文件的时间
change:表示最后一次对文件属性改变的时间,包括权限,大小,属性等等。
该命令可以用来创建目录
语法: mkdir 选项 dirname
功能: 在当前目录下创建一个名为“dirname”的目录。
常用选项:
rmdir是一个与mkdir相对应的指令,mkdir是建立目录,而rmdir是删除目录。这个命令只能删除空目录。
语法: rmdir 选项 dirname
功能: 删除空目录。
常用选项:
rm可以删除所有目录和文件。对于目录一般加上-r才能删除。
语法: rm 选项 dirname
功能: 删除文件或目录。
常用选项:
rm -rf /则是从根目录下不询问式递归删除所有文件和目录,这是一条删库跑路的指令,一定要慎用。
man命令可以在man手册中查看具体的命令用法。
语法: man 选项 指令
功能: 查看指令的使用规则等。
常用选项:
man手册是英文的,还有中文的手册cman,man和cman都需要自己安装。
手册分为8章:
cp指令可以将文件或目录拷贝到另一个地方。
语法: cp 选项 源文件或目录 目标文件或目录
功能: 复制文件或目录。
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-r或-R递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-p 在复制的时候文件的默认属性不变,包括最后修改时间、所属组等。
当拷贝的文件为多个或者全部时,可以用到通配符进行拷贝。
通配符是一种特殊语句,主要有星号 (*)和问号 (?),用来模糊搜索文件。 当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。
mv类似于剪切功能,讲一个文件或目录移动到另一个目录中。
语法: mv 选项 源文件或目录 目标文件或目录
功能:
(1)当第二个参数是不存在的名称时,mv指令完成文件重命名或目录重命名。
(2)当第二个参数是已存在目录名称时,mv指令将文件移动置该目录中。
这个指令可以将字符串显示到显示器或者重定向输入到文件中。
语法: echo 字符或字符串
另外,在后面加上 >(格式化追加)文件名
或者 >>(在文件末尾追加) 文件名
可以将字符或字符串写入文件中:
cat命令可以将文件的内容显示到显示器中。
语法: cat 选项 文件
功能: 查看目标文件的内容。
常用选项:
tac与cat相反,tac可以方向查看文件的内容。
语法: cat 文件
功能: 反向查看目标文件的内容。
注意: cat指令会将目标文件内容全部打印到屏幕上。若是目标文件内容过多,则会导致刷屏(直到将文件内容全部打印到屏幕上)。因此cat和tac指令一般仅适用于查看内容较少的文件。
cat适合查看内容较少的文件,而more适合查看内容较多的文件,因为它不会一下子全部显示出来,而是可以进行翻页。
语法: more 文件
功能: 查看目标文件的内容。
常用选项:
more指令只能通过按回车键进行下翻操作,无法进行上翻操作,并且more指令在查看之前会先加载整个文件。
相比于more,less指令可以同时支持上翻和下翻操作。
语法: less 选项 文件
功能: 既有查看目标文件的内容的功能,又有搜索功能。
less指令可以通过按上下键进行上翻和下翻操作,并且less指令在查看之前不会加载整个文件。
常用选项:
-N:在每一行前面都显示行号
-m:显示读取文件的百分比
-M:显示读取文件的百分比、当前页面的行号和总行数
翻页和查找操作:
从头开始查看指定行数的文本。
语法: head 选项 文件
功能: 用于显示文件的开头至标准输出中,默认head指令打印其相应文件的开头10行。
选项:
从尾开始查看指定行数的文本。
语法: tail 选项 文件
功能: 用于显示文件的末尾至标准输出中,默认tail指令打印其相应文件的末尾10行。
选项:
|
叫做管道,作用是将前面head -5010 file.txt
的输出写到管道中,再将管道中的数据拿出来执行tail -10
,这样就可以输出前5010行的后10行了。
date 指定格式显示时间: date +%Y:%m:%d
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
2.在设定时间方面
3.时间戳
cal指令可以用于显示公历(阳历)日历。
语法: cal 选项 月份 年份
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1~9999),如有两个参数,则表示月份和年份。
常用选项:
语法: find 路径 选项 …
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘->效率比较低)。
路径不写默认为当前路径
常用选项:
查找某一条命令所在的路径。
语法: which 指令
功能: 用于查找某一指令的程序文件所在路径。
命令实际上也是一个可执行程序,它所在的目录可以不用让执行这些命令时加路径,直接使用命令即可。
其中,alias的作用是起别名,ls是ls --color=auto
的别名
因此如果把我们自己写的可执行程序放到这个目录下,也可以使用名字直接执行:
grep是文本行过滤工具,它在过滤时以行为基本单位。将符合条件的行显示出来。
语法: grep 选项 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来。
常用选项:
zip指令用于打包压缩目录或文件。
语法: zip 选项 压缩文件 .zip 待打包目录或文件
功能: 将目录或文件打包压缩成zip格式。
常用选项:
打包压缩目录的时候要加通配符/*
,要不然并不会打包压缩目录下的文件,只是打包压缩目录。
语法: unzip 压缩文件.zip 选项 目录
功能: 将压缩文件解压到指定目录当中。
tar指令也可以用来打包压缩和解压文件,并且还可以实现不解开压缩包,直接查看里面内容的操作,以及只打包不压缩等操作。
语法: tar 选项 压缩文件 …
功能: 打包/解包,不解开压缩包,直接查看里面内容。
常用选项:
bc相当于Linux下的计算器
语法: bc进入计算器 输入表达式 按回车进行计算 Ctrl+C退出计算
功能: 进行运算。
语法: uname 选项
功能: 用于获取电脑和操作系统的相关信息。可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:
语法: file
功能: 查看文件的更多属性信息。
语法:clear
功能:清空屏幕。
关机语法: shutdown 选项
重启语法:reboot 选项
常见选项:
Linux内核(kernel)有两种理解:
我们很难直接使用内核,因为学习成本太大,所以在内核外嵌套了一个“外壳程序”,帮助我们和内核进行交互,同时也可以保护内核。
Linux使用shell命令行界面,而在Windows下则使用图形化界面,这两者都是内核外的“外壳程序”,相当于用户和操作系统之间的媒介。
从技术角度, Shell的最简单定义:命令行解释器(command Interpreter)主要包含:将使用者的命令翻译给内核(kernel)处理。同时,将核心的处理结果翻译给使用者。
对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
简单来讲,shell相当于内核的一层“外壳程序”,主要的功能是对我们的指令进行解析,解析指令完成后发给Linux内核。内核运行出结果后通过shell输出给用户。如果我们输入的命令是错误的或者不存在的,那么就不会将解析指令发给Linux内核。
所以,shell相当于用户和操作系统之间的媒介,用来和用户交互,提升用户的操作体验。同时用来保护操作系统。
另外, Shell只是所有外壳程序的统称,在centos 7当中的外壳程序名叫bash。bash相当于Shell的子集。