Linux是真正的多用户、多任务操作系统,它继承了UNIX系统的主要特征,具有强大的信息处理功能,特别在Internet和Intranet的应用中占有明显优势。
与UNIX操作系统相同,Linux系统提供了很多的命令,用户在操作符之后输入命令,由shell予以解释执行,这是Linux系统与用户的交互界面。在Linux环境下,利用命令可以有效地完成大量的工作,如文件操作、目录操作、进程管理、文件权限设定等。
Linux系统提供的命令需要在shell环境下运行,为此要从图形界面进入shell界面(即命令行界面),可以利用终端程序进入传统的命令行操作界面,要退出终端程序,可以执行exit命令,也可按快捷键Ctrl+D
命令格式
bash命令的一般格式是:
命令名 [选项] [参数1] [参数2]
例如:
cp -i file1.c myfile.c
该命令是将源文件file1.c复制到目标文件下myfile.c中,并且在覆盖后者之前先给出提示
注:
- 命令名是小写英文字母,并且往往表示相应功能的英文单词或单词的缩写。例如,date表示日期,who表示谁在系统中,cp是copy的缩写,表示复制文件,等等...
- 一般格式中,方括号括起来的部分是可选的,即不是必须的
- 如果一个命令过长,一行放不下,要在第一行行尾输入""字符,并按Enter键,这时shell会返回一个大于号(>)作为提示符,表示该命令行尚未结束,允许继续输入有关信息.
例如:
$ echo The old has past away and the new is \ <Enter>
$ >a fresh awaiting your creative touch.<Enter>
The old has past away and the new is a fresh awaiting your creative touch.
应注意,在命令与选项和参数之间要用空格或制表符隔开,连续的空格会被shell解释为单个空格.
输入命令:
在shell提示符("$")之后,可以输入相应的命令和参数,最后必须按Enter键予以确认,shell会读取该命令予以执行,命令完成后,屏幕将再次显示提示符。
简单命令:
- who命令
将列出所有政治使用系统的用户、所用终端名和注册到系统的时间,而who am i命令将列出使用该命令的当前用户的相关信息。 - echo命令
将命令行中的参数显示到标准输出(即屏幕上) - date命令
在屏幕上显示或设置系统的日期和时间.如果没有选项和参数,将之间显示系统的当前日期和时间,如:
$ date
2019年 05 月 23 日 星期四 20:12:51 CST - cal命令
显示公元1-9999年中的日历,如果不加任何参数,则显示当前月份的日历,如果在后面只有一个参数,则该参数被解释为年份而不是月份,如
$ cal 10(将列出公元10年的日历)
有两个参数时,第一个参数为月份,第二个参数为年份,两个参数之间要有空格:
$ cal 05 2019 (列出2019年05月份的日历)
另外,月份可以使用英文缩写形式,例如:cal Oct 2019
- clear命令
清除屏幕上的信息,清屏后,提示符移到屏幕的左上角
文件操作命令:
- cat命令
连接文件并打印到标准输出设备上,但经常用来显示文件的内容,格式如下:
cat [选项] 文件
该命令有两个功能,一是显示文件的内容,二是连接两个或多个文件,如cat f1 f2 > f3
把文件f1和f2的内容合并起来,然后通过输出重定向符">"的作用,将它们放入文件f3中
常用选项
-b 对非空输出行号
-n 输出所有行号
-s 将多个相邻的空行合并成一个空行
注意: 当文件较大时,文本内容往往在屏幕上一闪而过,内容就会看不清楚,所以我们一般用More等命令分屏显示
要想控制滚屏,可以按Ctrl+S键停止滚屏,按Ctrl+Q恢复滚屏 - more命令
分页显示文本内容,满屏时会在屏幕下方显示已显示的文件百分比:--More-- (xx%)
用以下按键可作出回答:
- space键,显示下一页
- B键 上一页
- Enter键 只显示文本的下一行内容
- Q键 退出more命令
常用选项
-num 一次显示多少行内容
-d 在屏幕下方显示友好的提示信息
-c 清屏
-s 把连续的多个空行显示为一个空白行显示
例如: - 显示文件mfile内容,在显示前先清屏,并在屏幕下方显示完整的百分比
more -dc mfile
- 显示文件mfile的内容 每10行显示一次,显示之前清屏
more -c -10 mfile
- less命令
与More一样,也是用来分屏显示文件内容,但差别是less命令可向前向后都能浏览,而More只能向前浏览
PageUp往上翻页,PageDown往下翻页,Q键退出
常用选项
常用命令参数
-i 忽略搜索时的大小写
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-s 显示连续空行为一行 - head命令
显示指定文件的开头若干行,默认head命令打印其相应文件的开头10行
常用选项
-n 显示指定文件前面n行
-c 显示每个文件前面n字节
-v 始终显示给定文件的标题
-q 不显示给定文件的标题 - tail命令
显示指定文件的末尾若干行,默认tail命令打印其相应文件的末尾10行
常用选项
-n 显示指定文件后面n行
-c 显示每个文件后面n字节
-v 始终显示给定文件的标题
-q 不显示给定文件的标题
-f 当文件增长时输出附件的数据
如果是在自己或行数的前面有"+"号,则是从文件开头的第n行开始显示
如$ tail +20 mfile
(显示文件mfile的内容,从第20行开始显示到文件末尾) - touch命令
修改制定文件的时间标签或创建一个空文件
常用选项
-a 仅改变制定文件的存取时间
-c 不创建任何文件
-m 仅仅改变制定文件的修改时间
-t STAMP 使用STAMP指定的时间标签
匹配、排序及显示指定内容的命令:
- grep命令
在文本中查找指定模式的词或短语,并在标准输出设备上显示包括给定字符串模式的所有行
该命令组包含三个命令: grep,egrep,fgrep
grep命令一次只能搜索一个指定的模式 ;
egrep命令相当于grep -E,可以使用扩展的字符串模式进行搜索
fgrep命令相当于grep -F 是快速搜索命令,它检索固定字符串,但不识别正则表达式
一般格式:
grep [选项] 查找模式 [文件名1,文件名2,......]
grep [选项] [-e 查找模式|-f 文件] [文件名1,文件名2,......]
常用选项
-E 可以使用扩展的字符串模式进行搜索
-F 将查找模式解释成单纯的字符串
-b 在输出的每一行前面显示包含匹配字符串的行在文件中的位置,用字节偏移量表示
-c 只显示文件中包含匹配字符串的行的总数
-i 匹配比较时不区分字母的大小写
-R 以递归方式查询目录下的所有子目录中的文件
-n 在输出包含匹配模式的行之前,加上该行的行号
-v 只显示不包含匹配字符串的文本行
-x 只显示整个行都严格匹配的行
例:
- 在密码文件/etc/password中查找包含mengqc的所有行:
$ grep -F mengqc /etc/password
- 在mengqc目录和子目录下的所有文件中查找字符串print出现的次数:
$ grep -r 'print' mengqc
- sort命令
对文本文件的各行进行排序,是逐行对指定文件中的所有行进行排序,并将结果显示在标准输出上
格式
sort [选项] 文件列表
常用选项
-m 对已经排好序的文件统一进行排序,但不排序
-c 检查给定的文件是否已排序好,若没有,则显示出错消息,不排序
-u 与-c一起使用,严格按顺序检查,否则对排序后的重复行只输出第一行
-d 按字典顺序排序
-f 忽略大小写
-r 逆序排序,默认是升序 - uniq命令
从排好序的文件中去除重复行
重复、删除及移动文件的命令: - cp命令
将源文件或目录复制到目标文件或目录中
格式
cp [选项] 源文件或目录 目标文件或目录
常用选项
-a 通常复制目录时使用,递归将源文件或目录复制到目标文件或目录,并且保留文件链接和属性不变
-d 复制时保留文件链接
-f 如果现存的目标文件不能打开,则删除再试一次
-p 除复制源文件的内容外,还将其修改时间和存取权限也复制到新文件中
-R,-r 递归复制目录,即将其子文件或目录都一起复制到目标位置中 - rm命令
删除文件和目录,默认情况下不删除目录
常用选项
-f 忽略不存在的文件,并且不给出提示信息
-r 递归的删除指定目录及其下属的各级子目录和相应的文件
-i 交互式删除 - mv命令
对文件或目录重命名,或者将文件从从一个目录移到另一个目录
格式
mv [选项] 源文件或目录 目标文件或目录
文件内容统计命令:
- WC命令
统计指定文件的字节数、字数、行数,并将统计结果显示出来.
格式
wc [选项] [文件]...
常用选项
-c 统计字节数
-l 统计行数
-w 统计字数
举例
$ wc -lcw ex1 ex2
(统计文件ex1和ex2的字节数、字数和行数)
目录及其操作命令:
当注册进入系统时,主目录就是用户当前工作目录.主目录往往/home
- pwd命令
在屏幕上显示当前工作目录的绝对路径名 - mkdir命令 (创建目录)
格式
mkdir [选项] dirname(目录)
常用选项
-m 将新建目录的存取权限设置为MODE,存取权限用给定的八进制数字表示
-p 可一次建立多个目录,如新建目录所指定的路径中有些父目录不存在,可自动创建
举例
在目录/home/mengqc下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问:
3. rmdir删除目录
**常用选项**
-p 递归删除目录,当子目录删除后其父目录为空时也一同删除,如果有非空则留下来