[toc]
1.3.1了解Shell
- Linux常用命令的运行环境就是Shell,它是一种命令解析器,在用户和操作系统之间提供了一个交互接口。
- 用户在命令行输入命令,然后Shell对该命令进行解析并将它作为指令代码发送给操作系统。
- Linux操作系统中有许多可选的Shell,每种Shell提供不同的特性和功能,大多数Shell有自己的脚本语言。一般Linux默认Shell是Bash。
1.3.2进入Shell命令行界面
- Shell是终端下的用户操作界面。Linux终端也称为虚拟控制台。
- 显示器和键盘合称为终端,它们可以对系统进行控制,所以又称为控制台,一台计算机的输入输出设备就是一个物理控制台。
-
登录的用户民@登录的计算机名:~$,例如:
littlesec@xiaobiaozadeMacBook-Pro:~$
;$是普通用户的提示符,#是超级用户的提示符。
1.3.3文件操作命令
1.3.3.1 文件显示命令:ls [选项] [文件目录列表]
- 选项:
-
-a
列出目录下的所有文件,包括以“.”开头的隐含文件。 -
-l
列出文件的详细信息。 -
-m
横向输出文件名,并以“,”作为分隔符号。 -
-r
对目录反向排序。 -
-s
在每个文件名后输出该文件的大小(文件夹为0),单位为Byte。 -
-t
以修改时间由近到远排序。 -
-u
以文件上次被访问的时间排序。
-
- 文件类型:
-
-
常规文件 -
d
目录,即文件夹 -
m
共享存储器
-
- 例子:
- d表示文件,-表示文件夹
- 后面表示权限,共3个字符串,依次为文件所有者、组中其他人、系统中其他人的权限。
- 字符串内r表示读,w表示写,x表示执行,-表示无该权限。
1.3.3.2 查找文件:find [目录列表] [匹配标准]
1.3.3.3 显示文本文件内容:cat [选项] 文件列表
- 选项:
-
-n
在文件的每行前面显示行号。 -
-u
输出不经过缓冲区。
-
- 例子:
1.3.3.4 查找文件内容:grep [选项] [查找模式] [文件名1, 文件名2, ...]
- 选项:
-
-E
每个模式作为一个扩展的正则表达式对待 -
-F
每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式(默认) -
-b
在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量。 -
-c
只显示匹配行的数量。 -
-i
比较时不区分大小写。 -
-n
在输出前加上匹配串所在的行号(首行行号为1) -
-v
只显示不包含匹配串的行 -
-x
只显示整行严格匹配的行
-
- 例子:
1.3.3.5 排序命令:sort [选项] 文件
- sort命令的功能是对文件中的各行进行排序。可以被认为是一个强大的数据管理工具,用来管理内容类似的数据库记录的文件。
- sort命令逐行对文件中的内容进行排序,按照字符顺序排序,和英文字典同理。
- 选项:
-
-m
若给定文件已排序,合并文件;没排好序则原封不动输出。 -
-c
检查给定文件是否已经排好序,若没排好则打印一个错误信息并以状态值1退出。 -
-u
对排序后认为的相同的行只留其中一行。 -
-d
按字典顺序排序,比较时仅字母、数字、空格和制表符有意义(默认) -
-f
将大小写字母同等对待。 -
-I
忽略非打印字符。 -
-M
作为月份比较:JAN < FEB < ... < DEC -
-r
逆序输出结果。 -
-b
在每行中寻找排序关键字是忽略前导的空白(空格和制表符)
-
- 例子:
1.3.3.6 比较文件内容的命令
-
comm [-123] file1 file2
- 比较的是已有序的两个文件。
- 读取两个文件后生成三列输出:仅在file1中出现的行、仅在file2中出现的行、在两个文件中都存在的行。
- 选项的123是抑制相应的列输出,例如:
-
comm -12
只显示在两个文件中都存在的行; -
comm -23
只显示在第一个文件中出现而未在第二个文件中出现的行; -
comm -123
什么也不显示。
-
diff [选项] file1 file2
- 不要求文件内容有序。
- 若比较的是个目录,则比较该目录中的同名文件。
1.3.3.7 文件复制命令: cp [选项] 源 目标
- 可用于复制文件和目录(文件夹)。
- 选项:
-
-a
该选项通常在复制目录时使用。它保留链接、文件属性,并递归复制目录。 -
-d
复制时保留链接。 -
-f
删除已经存在的目标文件(覆盖)和不提示。 -
-i
与f选项相反,在覆盖目标文件之前会提示要求用户确认。属于交互式复制。 -
-p
除了复制文件内容外,把修改时间和访问权限也复制到新文件中。 -
-l
不作复制,只是链接文件。
-
- 例子:
1.3.3.8 移动文件:mv [选项] 源 目标
- 选项:
-
-b
当遇到要覆盖其他文件或目录时,自动备份,备份文件名为原文件名加上-S参数指定的字符串,若未设置则加上“~”。 -
-i
交互模式,同cp -
-f
用户对目标文件没有写权限时,mv会给出提示。本选项会使mv命令执行移动而不给出提示。 -
-u
当要覆盖的文件或目录比源文件要新,则不覆盖目标文件。 -
-S<字符串>
指定备份文件名后要加上的字符串。
-
1.3.3.9 文件内容统计命令:wc [选项] 文件列表
- 选项:
-
-c
统计字节数 -
-l
统计行数(有回车换行符号才算一行) -
-w
统计字数(字是以空格字符区分开的最大字符串)
-
- 例子:
1.3.4目录及其操作命令
1.3.4.1 树形目录
- Linux系统以文件目录的方式来组织和管理系统中的所有文件。所谓文件目录就是将所有文件的说明信息采用树形结构组织起来,即常说的目录。
- 整个文件系统有一个“根”(
/
)和很多“杈”(directory),二者在Linux中被称为“目录”或“文件夹”。
1.3.4.2 工作目录、用户主目录与路径
- 逻辑上来说,用户登录到Linux后每时每刻都“处在”某个目录之中,此目录被称为工作目录或当前目录(Working Directory)。
- 工作目录用“
.
”表示,其父目录用“..
”表示。 - 路径是指从树形目录中的某个目录层次到某个文件的一条道路。路径的主要构成是目录名称,中间用“
/
”分开。 - 路径分为相对路径和绝对路径。绝对路径从根开始,相对路径从工作目录开始。
1.3.4.3 Linux系统主要目录说明
-
/bin
:该目录存放Linux的常用命令。 -
/boot
:在这个目录下存放的是系统启动时要用到的程序。 -
/dev
:该目录包含了Linux系统中使用的的所有外部设备,它实际上是访问这些外部设备的端口,可以访问这些外部设备与访问一个文件或一个目录没什么差别。 -
/etc
:这个目录是Linux中最重要的目录之一。存放了系统管理时要用到的各种配置文件和子目录。例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。 -
/sbin
:存放系统管理员的系统管理程序,是超级权限用户root的可执行命令存放地,普通用户无权限执行该目录下的命令。凡是目录sbin
中包含的都是root权限才能执行的命令。 -
/home
:存放用户的主目录。如建立一个用户名为littlesec的用户,则该目录下就有对应的/home/littlesec
路径。 -
/lib
:lib是库(library)英文缩写。这个目录是用来存放系统动态链接共享库的。几乎所有应用程序都会用到这个目录下的共享库。 -
/lost+found
:该目录下在大多数情况都是空的。但当突然停电或者非正常关机后,在重启时有的文件就会找不到该存的地方,对于这些文件则存放在这个目录下。 -
/media
:即插即用型存储设备的挂载点自动在这个目录下创建。 -
/proc
:操作系统运行时,进程信息以及内核信息(如CPU、硬盘分区、内存信息等)存放在这里。可以在这个目录下获取系统信息,这些信息是在内存中由系统自己产生的。 -
/tmp
:临时文件目录,有时用户运行程序的时候,会产生临时的文件,tmp目录存放这些文件。 -
/usr
:是系统存放程序的目录,比如命令、帮助文件等,这是Linux系统中占用硬盘空间最大的目录。这个目录下有很多的文件和目录。当安装有一个Linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc
目录中。/usr
目录下包括涉及字体目录/usr/share/fonts
,帮助目录/usr/share/man
或/usr/share/doc
,普通用户可执行文件目录/usr/bin
或/usr/local/bin
等;程序头文件存放在目录/usr/include
。 -
/var
:该目录经常变动,其下有/var/log
,这是用来存放系统日志的目录。/var/lib
用来存放一些库文件,比如MySQL的库文件。
1.3.4.4 目录操作命令
- 创建目录
mkdir [选项] 目录
-
-m
在建立目录时按照模式指定设置目录权限。该目录权限分为:目录所有者的权限、组中其他人对目录的权限和系统中其他人对目录的权限。这个三个权限分别用三个数字之和表示:对目录的读权限是4、写权限是2、执行权限是1。例如700表示目录所有者有三个权限,其他人均无任何权限。 -
-p
可以是一个路径名称。若路径中的某些目录尚不存在,加上此选项后系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
-
- 删除目录
rmdir [选项] 目录列表
- 一般来说要删除的目录必须为空目录,如果所给目录不空,系统会报告错误。
-
-p
在删除目录表指定的目录后,若父目录为空,则rmdir也删除父目录。状态信息显示什么被删除什么没被删除。
- 显示当前目录
pwd
- 改变当前工作目录
cd [directory]
- 链接文件的命令
ln [选项] 源文件或目录 [链接名]
- 改变文件或目录权限
chmod [who] [+|-|=] [mode] 文件名
- 操作对象who选项说明:
-
u
表示“用户(usser)”,即文件或目录的所有者 -
g
表示“同组(group)用户”,即与文件属主有相同组ID的所有用户 -
o
表示“其他(other)用户” -
a
表示“所有(所有)用户”,系统默认值
-
- 操作符号说明:
-
+
添加权限 -
-
取消权限 -
=
赋予给定权限并取消其他权限
-
- mode选项说明:
-
r
可读 -
w
可写 -
x
可执行 -
u
与文件属主拥有一样的权限 -
g
与文件属主同组用户拥有一样的权限 -
o
与其他用户拥有一样的权限
-
- 例子:
chmod g+r, o+r example
,使同组和其他用户对文件example有读权限。 - 数字设定法:
chmod [mod] 文件名
:- 权限用八进制数字模式表示。
- 0表示没有权限,1表示可执行,2表示可写权限,4表示可读权限(实际即使3个二进制位从高位到低位分别是wrx的有效位)。
- 因此相加即看对应位是否有效,如5用二进制表示为101,所以表示权限w+x。
- 操作对象的顺序为(u)(g)(o),即所有者、同组用户、其他用户
- 例子:
chmod 756 text.txt
,执行后用ls -l text.txt
查看权限为:-rwxr-xrw-
(111'101'110)。 - 例子:
chmod ug+w, o-x text
属主和同组用户加写权限,其他用户删除执行权限。
- 操作对象who选项说明:
- 改变文件或目录的属主和属组
chown [选项] 用户或组 文件
1.3.5文件压缩命令
压缩文件的好处:1.减少存储空间。2.减少通过网络传输文件时的传输时间。
1.3.5.1 文件压缩gzip [选项] 压缩(解压缩)的文件名
- 选项:
-
-c
将输出写到标准输出上,并保留源文件。 -
-d
将压缩文件解压。 -
-l
对每个压缩文件显示下列字段:压缩文件大小、未压缩文件大小、压缩比、未压缩文件名字。 -
-r
递归式地查找指定目录并压缩其中的所有文件或者是解压缩。 -
-t
测试、检查压缩文件是否完整。 -
-v
对每一个压缩和解压的文件,显示文件名和压缩比 -
-num
用指定数字调整压缩速度。-1
或--fast
表示最快压缩方法(最低压缩比)。-9
或--best
表示最慢压缩方法(最高压缩比)。系统默认值为6.1.3.5.2 文件打包(多用于备份)
tar [主选项+辅选项] 文件或目录
-
1.3.6联机帮助命令
1.3.6.1 显示帮助手册man [选项] 命令名称
- 选项:
-
-a
显示所有的手册页,而不是只显示第一个。 -
-f
只显示出命令的功能而不显示其中详细的说明文件。 -
-w
不显示手册页,只显示将被格式化和显示文件所在位置。
-
1.3.6.2 查看命令帮助命令名称 -help
或info 命令名称
1.3.6.3 查看文件在文件系统中的位置whereis [选项] 命令名
(和man -w 命令名
类似)
1.3.7用户操作命令
1.3.7.1 切换用户命令su [选项] user
1.3.7.2 以系统管理员的身份执行命令sudo [选项] 命令
1.3.8关机和重启计算机命令
1.3.8.1 shutdown命令shutdown [选项] [时间] [警告信息]
- shutdown命令可以安全地关闭和重启Linux系统,它在关机前给系统上所有登录用户提示一条警告信息。该命令只能超级用户使用
- 选项:
-
-k
不是真正关机,而只是发出警告信息给所有用户。 -
-r
关机后立即重启。 -
-h
关机后不重启。 -
-c
取消一个已经运行的shutdown
-
- 时间:
- 可以是一个精确时间,格式为
hh:mm
-
也可以是从现在开始的一个时间段,格式为
+minutes
1.3.8.2 最简单的关机命令
halt [选项]
- 可以是一个精确时间,格式为
-
实际上是调用
shutdown -h
命令。1.3.8.3 重启命令
reboot [选项]