Linux简介
严格的来讲,Linux 不算是一个操作系统,只是一个 Linux 系统中的内核,即计算机软件与硬件通讯之间的平台;Linux的全称是GNU/Linux,这才算是一个真正意义上的Linux系统。GNU是Richard Stallman组织的一个项目,世界各地的程序员可以变形GNU程序,同时遵循GPL协议,允许任何人任意改动。但是,修改后的程序必须遵循GPL协议。
Linux 是一个多用户多任务的操作系统,也是一款自由软件,完全兼容POSIX标准,拥有良好的用户界面,支持多种处理器架构,移植方便。
为程序分配系统资源,处理计算机内部细节的软件叫做操作系统或者内核。如果你希望详细了解操作系统的概念,请查看操作系统教程。
用户通过Shell与Linux内核交互。Shell是一个命令行解释工具(是一个软件),它将用户输入的命令转换为内核能够理解的语言(命令)。
Linux下,很多工作都是通过命令完成的,学好Linux,首先要掌握常用命令。
命令行使用技巧
1.系统的登录
- 根用户
又称为超级用户,用户账号为root,在系统中拥有最高权限,主要负责系统的管理工作。
- 普通用户:由根用户创建,命名时不能以数字和下划线作为第一个字符。普通用户是系统的使用者,只在自己的目录下工作,没有系统管理权限。
2.Linux的shell
Shell是系统的用户界面,提供用户与内核进行交互操作的一种接口。
Shell是命令解释器
Shell是编程语言
3.如何在shell中执行命令
命令一定要在提示符之后输入
命令的输入方式:
命令 参数 目标
目标和参数不是必须加
参数是目标功能的指定
4.命令行提示符
• [kiosk@foundation0 Desktop]$
• kiosk 运行 bash 的用户
• foundation0 bash 所在主机短名称
• @ 信息分隔符
• Desktop 当前默认操作目录
• $ 用户身份提示符 # 表示超级用户
5.命令测试
date 命令
cal命令
在屏幕上输出日历信息
格式: cal [month] [year]
ls类似于DOS下的dir命令。对于每个目录,该命令将列出其中的所以子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其他信息。输出条目按字母顺序排序。未给出目录名或文件名时,默认情况下就显示当前目录的信息。该命令的语法如下:
passwd命令–更改用户的密码
help选项
help选项放在命令之后,用来显示命令的信息。
uname命令
uname命令显示正在使用的Linux系统信息
r:显示操作系统的内核发行号(Release Number)
n:显示网络上本机的节点名(Node Name)
v:显示操作系统的内核版本号(Version Number)
echo命令
用于回显输入内容
格式: echo strings
clear命令
clear命令清除shell窗口中的内容
格式: clear
口令维护命令
passwd 用户账户名 (设置用户口令)
passwd –l 用户账户名 (锁定用户账户)
passwd –u 用户账户名 (解锁用户账户)
passwd –d 用户账户名 (删除账户口令)
gpasswd –a 用户账户名 组账户名 (将指定用户添加到指定组)
gpasswd –d 用户账户名 组账户名 (将用户从指定组中删除)
gpasswd –A 用户账户名 组账户名 (将用户指定为组的管理员)
TAB 键
• 在 linux 中对系统进行操作主要是以明令为主
• 在输入明令时明令或者文件命名称比较长时会给我们的明令录入带来麻烦
• TAB 键可以补齐存在的明令以及文件名称
• 一些明令的参数也可以用 TAB 键来补齐
• 当按一次 TAB 键补齐不了要录入的内容时
- 内容不唯一 2. 内容不存在
SHELL 中的历史调用
• history 显示历史 • 上下键 逐条翻找历史 • ! 数字 调用此编号历史 • ! 字母 调用最近以此字母开头的历史 • ctrl+r+ 关键字 调用最近一条含有此关键字历史 • history -c 清空当前 shell 中的历史
6.文件和目录的基本概念
目录是Linux文件系统中的一种特殊文件,文件系统利用目录完成按名存取及对文件信息的共享和保护
1)工作目录与用户主目录
(1)工作目录
工作目录是用户在登录到Linux系统后所处于的目录,也称为当前目录。
(2)用户主目录
是系统管理员增加用户时创建的(以后也可以改变),每个用户都有自己的主目录。普通用户的主目录在/home下,root用户作为系统管理员,因为身份特殊所以有自己的主目录,在/root下。
用户刚登录到系统中时,其工作目录便是该用户主目录,通常与用户的登录名相同。如用户的登录名为user,其主目录通常为/home/user。
(1)路径定义
路径是指从树型目录中的某个目录层次到某个文件的一条道路。
(2)路径的构成要素
路径是由目录或目录和文件名构成的,中间用“/”分开。
路径分为绝对路径和相对路径两类:
绝对路径
Linux系统中,绝对路径是从“/”(根目录)开始的,也称为完全路径,如/home/user01、/usr/bin。
相对路径
Linux系统中,相对路径是从用户工作目录或用户主目录开始的路径,如./test、…/user1、~/test。其中“.”表示用户工作目录,“…” 表示工作目录的上级目录,“~”表示用户主目录。
1.显示文件命令
1)cat命令
格式:cat [选项] …[文件]…
说明:把多个文件连接后输出到标准输出(屏幕)或加“> 文件名”输出到另一个文件中。
常用选项:
-b或–number-noblank:从1开始对所有非空输出行进行编号。
-n或–number:从1开始对所有输出行编号。
-s或–squeeze-blank:将连续两行以上的空白行合并成一行空白行。
2)more命令
格式:more [选项] [文件…]
说明:该命令显示文本文件的内容,一次显示一屏,满屏后停下来,可按如下键继续。
(1)Space键 :默认显示文本的下一屏内容。
(2)Enter键:默认显示文本的下一行内容。
(3)d键或CTRL+D:向下显示文本半屏,默认为11行。
(4)b键或CTRL+B:默认显示文本的上一屏内容。
(5)q or Q or INTERRUPT键:退出more命令。
常用选项:
-num:指定一个整数,表示一屏显示多少行。
-d:在每屏底部显示提示信息,包括当前显示的百分比,按键提示等。
-c或 –p:不滚屏,在显示下一屏之前先清屏。
+num:从行号num开始显示。
+/pattern:定义一字符串,在文件中查找该字符串,从该字符串后开始显示。
3) less命令
格式:less [选项] [文件]…
说明:与more命令相似,分屏显示文件的内容。less命令允许用户向前(PageUp)或向后(PageDown)浏览文件。在less命令提示符下按q键退出。
常用选项:
-i或–ignore-case:搜索时忽略大小写,除非搜索串中包含大写字母。
-I或–IGNORE-CASE:搜索时忽略大小写。
-m或–long-prompt:显示读取文件的百分比。
-M或–LONG-PROMPT:显法读取文件的百分比、行号及总行数。
-N 或–LINE-NUMBERS:在每行前输出行号。
-p pattern或–pattern=pattern:定义一字符串,在文件中查找该字符串,从该字符串后开始显示。
4)head命令
格式:head [选项] …[文件]…
说明:head 命令用于查看一个文本文件的开头部分,行数由参数值决定,默认值是10。
常用选项:
-c或–bytes=num:显示文件前面num个字节。
-n或–lines=num:显示文件前面num行,不指定此参数显示前10行。
5)tail命令
格式:tail [选项] … [文件] …
说明:tail命令用于查看一文本文件的末尾若干行,行数由参数值决定,默认值是10。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。
常用选项:
-c或–bytes=num:显示文件最后面num个字节。
-n或–lines=num:显示文件最后面的num行,不指定此参数显示10行。
2.搜索、排序及去掉重复内容命令
1)grep命令
格式:grep [选项] 查找模式 [文件…]
说明:grep家族包括grep、egrep和fgrep。egrep是grep的扩展,可使用扩展的字符串模式进行搜索,fgrep就是fixed grep或fast grep,把所有字母看作单词,不识别正则表达式。如果没有指定文件名,grep命令会搜索标准输入。
常用选项:
-b或–byte-offset:在显示符合匹配字符串行前,标识该行第一个字符的位编号。
-c或–count:计算符合匹配字符串的行数。
-E:将查找模式解释成扩展的正则表达式,相当于egrep。
-F:将查找模式解释成单纯的字符串,相当于fgrep。
-i或–ignore-case:忽略字符大小写。
-n 或–line-number:在显示包含匹配字符串的行之前,标示出该行的行号。
-v:反转查找,显示不包含匹配字符串的文本行。
-V:显示版本信息。
-x 或–line-regexp:只显示全行都严格匹配的行。
2)sort命令
格式:sort [选项] …[文件] …
说明:sort命令对指定文件中所有的行排序,将结果显示在标准输出上。如不指定输入文件或使用“- ”,表示排序内容来自标准输入。
缺省情况下以行为关键字按ASCII字符顺序进行排序。
常用选项:
-m或–merge:若给定文件已排好序,合并文件。
-c或–check:检查给定文件是否排序,未排序打印出错信息,以状态值1退出。
-u或–unique:对排序后相同的行只留其中一行。
-o 文件名:将排序输出写到输出文件中而不是标准输出。
改变缺省排序规则的选项主要有:
- d或–dictionary-order:按字典顺序排序。
- f或–ignore-case:忽略字母大小写。
- r或–reverse:按逆序输出排序结果,默认排序输出时按升序的。
+posl - pos2:指定一个或几个字段作为排序关键字,字段位置从posl开始,到pos2为止(包括posl,不包括pos2)。如不指定pos2,则关键字为从posl到行尾。字段和字符的位置从0开始。
3)uniq命令
格式:uniq [选项]… [输入文件 [输出文件]]
说明:检查及删除文本文件中重复出现的行。
常用选项: - c 或–count:显示输出中,在每行行首加上本行在文件中出现的次数。
- d 或–repeated:只显示文件中的各重复行。
- u 或—unique:只显示文件中不重复的各行 。
3.比较文件内容的命令
1)comm命令
格式:comm [选项]… 文件1 文件2
说明:comm命令对两个已经排好序的文件进行比较,comm从文件1和文件2中读取正文行进行比较,生成三行输出:在两个文件中都出现的行,仅在文件1中出现的行,仅在文件2中出现的行。
常用选项:
-123:选项1,2和3分别表示不显示comm输出中的第一列、第二列和第三列。
2)diff命令
格式:diff [选项] … 文件列表
说明:diff命令比较文本文件,并找出它们的不同。。
常用选项:
-b或–ignore-space-change:忽略空格造成的不同。
-B或–ignore-blank-lines:忽略空行造成的不同。
-i 或–ignore-case:忽略大小写的不同。
-r 或–recursive:当比较的文件都是目录时,递归比较子目录中的文件。
4.复制、删除和移动文件的命令
1)cp命令
格式:cp [选项] 源文件或目录 目标文件或目录
说明:cp命令完成文件的复制。
如果源是普通文件,该命令把源文件复制成指定的目标文件或复制到指定的目标目录中。
如果源是目录,目标是一已存在的目录,该命令把源目录下的所有文件和子目录都复制到目标目录中;
如果源是目录,目标不是一已存在的目录,命令出现错误信息。
常用选项:
-a 或–archive:等同于 –dpR。
-d:复制符号链接时,把目标文件或目录也建立为符号链接,并指向与源文件或目录链接的原始文件或目录。
-f 或–force:强行复制文件或目录
-i或–interactive:覆盖目标文件前需要确认。
-n或–no-clobber:不覆盖已存在的目标文件。
-p:复制源文件或目录内容的同时也复制文件属性
-R,-r 或–recursive:递归复制目录,将源目录下所有文件及子目录都复制到目标位置。
2)rm 命令
格式:rm [选项] …文件或目录…
说明:rm命令可以删除文件或目录,删除目录必须要加“-r”选项。
常用选项:
-f或–force:强制删除文件或目录。
-i 或–interactive:删除文件或目录前提示要用户确认。
-r,-R, 或–recursive:递归删除指定目录及其下属各级子目录和相应的文件。
3)mv命令
格式:mv [选项] 源文件或目录 目标文件或目录
说明:mv命令可移动文件或目录;更改文件或目录的名称。
常用选项:
-i或–interactive:覆盖文件前需要确认。
-f 或–force:若目标文件或目录已存在,直接覆盖。
-n或–no-clobber:不覆盖已存在的文件。
-u 或–update:移动或更改文件名时,若目标文件已存在,且文件日期比源文件新,则不覆盖目标文件。
5.文件内容统计命令
格式:wc [选项] …[文件]…
说明:wc命令统计给定文件中的字节数、字数、行数。
常用选项:
-c或–bytes:统计字节数。
-m或–chars:统计字符数。
-l或–lines:统计行数。
-w或–words:统计字数。
6.查找文件和目录命令
格式:find [路径名…] [表达式]
说明:find命令用于查找符合条件的文件和目录。路径名是用空格隔开的要搜索文件的目录名清单,表达式包含要寻找的文件的匹配规范或说明。表达式是从左向右求值的,只要表达式中的测试结果为真,进行下一个测试。
7.文件的压缩和备份
1)bzip2命令
格式:bzip2 [选项] [要压缩的文件]
说明:.bz2文件的压缩程序,并删除原始的文件。
常用选项:
-c 或–stdout:将压缩或解压缩的结果送到标准输出。
-d或–decompress:执行解压缩。
-f 或–force:压缩或解压缩时,若输出文件与现有文件同名,覆盖现有文件。
-k 或–keep:bzip2 在压缩或解压缩后,保留原始文件。
2)gzip命令
格式:gzip [选项] [文件 …]
说明:gzip压缩会产生".gz"的压缩文件,并删除原始文件。
常用选项:
-c或–stdout或–to-stdout:压缩后文件输出到标准输出设备,不改变原始文件。
-d 或–decompress 或–uncompress:解开压缩文件。
-f或–force:强行压缩文件。
-n 或–no-name:压缩文件时,不保存原来的文件名称及时间戳记。
-N 或–name:压缩文件时,保存原来的文件名称及时间戳记。
-r 或–recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
3)tar(tape archive)命令
格式:tar [选项…] [文件或目录]…
说明:tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
常用选项:
-A 或–catenate:新增tar文件到已存在的备份文件。
-c或–create:建立新的备份文件。
-f<备份文件>或–file=<备份文件>:指定备份文件。
-t或–list:列出备份文件的内容。
-v或–verbose:显示指令执行过程。
-x 或–extract 或–get:从备份文件中还原文件。
–delete:从备份文件中删除指定的文件。
7.目录操作命令
1.切换工作目录和显示目录内容的命令
1)cd命令
格式:cd [目的目录]
说明:切换目录至目的目录,前提是用户必须拥有进入目的目录的权限。 其中目的目录可为绝对路径或相对路径,若目录名称省略,则切换至使用者的主目录。
2)pwd命令
格式:pwd
说明:pwd命令不带任何选项或参数,Linux系统用 pwd 命令来查看“当前工作目录”的完整路径。
3)ls命令
格式:ls [选项]… [文件或目录]…
说明:ls命令可列出目录的内容,包括文件和子目录的名称。
常用选项:
-a或–all:列出目录下的所有文件和目录,包括以 “.” 开头的隐含文件。
-A或–almost-all:列出除“.”(当前目录)及”…”(当前目录的上级目录)外的任何文件和目录。
-b或–escape:把文件名中不可输出的字符用反斜杠加字符编号的形式列出。
-c:输出文件的ctime(文件最后更改的时间),并根据ctime 排序。
-C:分成多列显示文件和目录。
-F或–classify:加上文件类型的指示符号,其中“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示管道文件;“=”表示套接字。
-d或 --directory:将目录像文件一样显示,而不是显示其下的文件。
-l:列出文件详细信息,输出信息分成7个字段列表
第1字段:文件类型及访问权限字段。
文件属性字段总共有10个字母组成,第一个字母表示文件类型,具体如下。
- 表示该文件是一个普通文件。
d 表示该文件是一个目录。
c 表示该文件是字符设备文件。
b 表示该文件是块设备文件。
p 表示该文件是管道文件。
l 表示该文件是符号链接文件。
s 表示该文件是套接字。
第2字段:文件链接数字段。
表示文件硬链接数或目录子目录数。
第3字段:文件属主字段。
表示文件的所有者。
第4字段:文件所属用户组字段。
表示该文件所属的用户组。
第5字段:文件大小字段。
表示该文件的大小,以字节为单位。
第6字段:最后修改时间字段。
表示该文件最后修改时间。
第7字段:文件名字段。
表示该文件的文件名,如果是符号链接,“->” 箭头符号后面跟一个它指向的文件。
2.创建和删除目录命令
1)mkdir命令
格式:mkdir [选项] … 目录名…
说明:该命令创建由目录名命名的目录,同时设置该目录的权限。要求创建目录的用户在当前目录中具有写权限,并且目录名不能是当前目录中已有的目录或文件名称。
常用选项:
-m或–mode=MODE:对新建目录设置存取权限。
-p 或–parents:若所建目录的上层目录不存在,会一并建立。
2)rmdir命令
格式:rmdir [选项]… 目录名…
说明:该命令从一个目录中删除一个或多个目录。删除目录时,必须对该目录的父目录具有写权限,目录被删除前应该是空目录。
常用选项:
-p或–parents:删除指定目录后,若该目录的上层目录已变成空目录,则其一并删除。
通配符
- 匹配0-任意字符
? 匹配任意单个字符
~ 匹配当前用户家目录
~ user 匹配到user的家目录
~ + 当前目录
~ - 当前目录之前所在的
[abc] 有a或b或c
[!abc] 除了有a或b或c
[^abc] 除了有a或b或c
[[:alpha:]] 单个字母
[[:lower:]] 单个小写字母
[[:upper:]] 单个大写字母
[[:alnum:]] 单个字母或数字
[[:punct:]] 单个符号,不包含数字,字母以及空格
[[:digit:]] 数字
[[:space:]] 单个空格