Linux基础之常用命令
1.shell命令格式
linux命令的一般格式为:命令名 [选项] [参数1] [参数2].......
使用命令时需要注意7点:
① 命令名必须是小写英文字母,而且往往是表示相应功能的英文单词单词或英文缩写。如,date表示日期,who表示谁在系统中,cp是copy的缩写,表示复制文件,等等。
② 一般格式中,方括号中括起来的部分是可选的,即该项对命令行来讲不是必须的,可有可无,依具体情况而定。
③ 选项是对命令的特别定义,以“-”开始,多个选项可用“-”连接起来,如ls -l -a与ls -la相同。
④ 参数提供命令运行的信息或者命令执行过程中所使用的文件名。通常,参数是一些文件名,告诉命令从哪里可以得到输入,把输出送到什么地方。
⑤ 如果命令行没有提供参数,命令将从标准输入文件(键盘)上接受数据,输出结果显示在标准输出文件(显示器)上,而错误信息则显示在标准错误输出文件上。可用重定向功能对这些文件进行重定向。
⑥ 命令在正常执行后返回一个0值,表示执行成功;如果执行过程中出错,没有完成全部工作,返回一个非0值(在shell中可用变量$?查看)。
⑦ 联机帮助对每个命令的准确语法都做了说明。
2 输入命令
① 在shell提示符之后,可输入相应的命令和参数,最后必须enter确认。shell会读取并执行。完成后,屏幕再次显示提示符。
② shell可鉴别输入命令的大小写。
③ 如果系统找不到相关命令,会显示反馈信息“command not found”。
④ 如果一个命令太长,可在第一行行尾输入“\”字符,并按enter键。这时shell会返回一个大于号(>)作为提示符,表示该行尚未结束。
[root@BI ~]# echo The old has past away and the new is \
> a fresh awaiting your creative touch.
The old has past away and the new is a fresh awaiting your creative touch.
3 简单命令
① who命令
who命令将列出所有正在使用系统的用户、所用终端和注册到系统的时间。而who am i命令列出使用该命令的当前用户的相关信息。
② echo命令
echo用于把命令行中的参数显示到标准输出上。
如果参数用引号括起来,那么参数按原样输出;如果不用引号括起来,则字符串中各个单词作为字符串输出,各单词以一个空格隔开。
打印变量输出,要在前面加$,例如配好了java环境变量:echo $JAVA_HOME,会显示出配置信息。
③ date命令
date用于在屏幕上显示或设置系统的日期和时间。如果没有选项和参数,将直接显示系统的当前时间和日期。
参数 作用
%t 跳格[TAB键]
%H 小时(00-23)
%I 小时(01-12)
%M 分钟(00-59)
%S 秒(00-60)
%X 相当于%H:%M:%S
%Z 显示时区
%p 显示本地AM或PM
%A 星期几
%a 星期几
%B 完整月份(January-December)
%b 缩写月份(Jun-Dec)
%d 日(01-31)
%j 一年中的第几天(001-366)
%m 月份(01-12)
%Y 完整的年份
输出昨天:
date -d yesterday
date -d last-day
date -d last-days
date -d "last day"
date -d "last days"
date -d "-1 day"
date -d "-1 days"
date -d "1 day ago"
date -d "1 days ago"
输出明天:
date -d tomorrow
date -d next-day
date -d next-days
date -d "next day"
date -d "next days"
date -d "+1 day"
date -d "+1 days"
date -d "1 day"
date -d "1 days"
date -d "-1 day ago"
date -d "-1 days ago"
输出昨天或者明天是周几:
date -d yesterday +%A
date -d tomorrow +%A
Date -d “2 days ago” +%A
指定几号:
date +%Y%m01
设置系统时间:
date -s "20190923 10:45:55"
④ cal命令
cal命令用来显示1-9999年任意一年或一个月的日历。
当cal后面接一个参数时,表示当前的年份。
当cal后面接两个参数时,第一个参数表示月份,第二个表示年份。
⑤ clear命令
clear命令用来清除屏幕上的信息。清屏后,提示符移到屏幕的左上角。且以前的命令并没有被删除,可以拖动滚动条查看。
⑥ passwd命令
用来修改当前用户的密码。出于安全考虑,输入的所有口令都不在屏幕上显示。
4 文件操作命令
文件操作大约有查看文件内容、复制文件、删除文件、移动文件、比较文件、查找文件等。
4.1文件显示命令
①cat命令
主要用来读取较短的文件内容或者连接文件并打印到标准的输出设备上。
(1)一般格式:cat [选项] 文件
(2)说明:该命令有两个功能,一是显示文件的内容,依次读取由参数指明的文件,并把内容输出到标准输出上;二是连接两个或者多个文件,如cat f1 f2>f3,它指把f1和f2的内容合并起来,然后通过输出重定向符“>”的作用,将它们放入文件f3中。
(3)常用选项
-b:从1开始对所有非空输出行编号
-n:从1开始对所有输出行编号
-s:将多个相邻的空行合并成一个空行
--help:打印该命令用法,并退出,其返回码表示成功。
(4)注意
当文件较大的时候,文本在屏幕上一闪而过,用户往往看不清内容,因此,一般用more等命令分屏显示。为了控制滚屏,可以按CTRL+S,停止滚屏;按CTRL+Q恢复;CTRL+C终止命令执行,返回shell提示符状态。
②more命令
(1)more命令显示文件内容,每次显示一屏。会有提示消息提示该文件的百分比。
space:显示文本的下一屏内容
enter:只显示文本的下一行内容
/:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
H:显示帮助屏
B:显示上一屏内容
Q:退出
(2)常用选项
-num:指定一个整数,表示一屏显示多少行
-c或-p:不滚屏,在显示下一屏之前先清屏
-s:将文件连续的空白行压缩成一个空白行显示
+num:从num行开始
(3)例子:
显示文件mifile的内容,在显示之前先清屏,并在屏幕下方显示完整的百分比
$more -dc mifile
显示文件mifile的内容,每10行显示一次,在显示之前先清屏
$more -c -10 mifile
③less命令
与more一样,less命令也用来分屏显示文件的内容。但差别是:less命令允许用户向前或向后浏览文件,而more只能向前。
④head命令
head命令在屏幕上显示指定文件的开头若干行。
(1)一般格式:head [选项] file
(2)选项
-n:显示指定文件的前n行
-q:不显示给定文件的标题
-v:始终显示给定文件的标题
⑤tail命令
tail命令用于在屏幕上显示指定文件的末尾若干行。
选项与head命令选项类似。
⑥touch命令
touch命令可以用来修改指定文件的时间或标签或者创建一个空文件。
(1)一般格式:touch [选项] 文件名...
(2)说明:touch命令会修改指定文件的时间标签,即把已存在文件的时间标签更新为系统当前的时间,文件的内容不会改变;如果不存在该文件,则建立一个空的新文件。
(3)注意:设定文件时间戳的格式为 touch -t 201909290926.00 文件名
-t:表示使用指定的时间标签
201909290926.00:分别表示年份,月份,日期,小时,分钟,秒。
4.2 匹配、排序及显示指定内容的命令
①grep命令
(1)该命令在文本文件中查找指定模式的词或短语并在标准输出设备上显示包括给定字符串模式的所有行。
该命令包含三个命令:grep、egrep和fgrep命令。grep命令一次只能搜索一个指定的模式;egrep命令等同于grep-E,可以使用扩展的字符串模式进行搜索;fgrep命令等同于grep-F,是快速搜索命令,它检索固定字符串,不识别正则表达式。
(2)格式:grep [选项] 查找模式 [文件名1,文件名2,...]
(3)注意事项:
Ⅰ在命令名之后先输入搜索的模式,然后搜文件。
Ⅱ文件名列表中可使用通配符,如*。
Ⅲ要查找目录的子目录中的文件,应使用-r选项。
Ⅳ如果在搜索模式的字符串中包含空格,应用单引号把模式字符串括起来。
Ⅴ利用选项-f可以大批的在文件中搜索字符串。
②sort命令
(1)sort命令对文本文件的各行进行排序。sort将文件的每一行作为一个单位相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出排列。
(2)格式:sort [选项] 文件列表
(3)常用选项
sort -u:去除重复行
sort -r:降序排列
sort -o:将排序输出放到该文件名所指定的文件file中
例子:sort -r seq.txt -o seq1.txt;表示将seq.txt文件进行降序排列并把它放到seq1.txt文件中。
sort -n:经常出现2>10的情况,原因是数字按照字符来排序了,所以选择-n选项来告诉sort要以数值来排序。
sort的-t选项和-k选项:
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?
幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符之后,就可以用-k来指定列数了。
[rocrocket@rocrocket programming]$ sort -n -k 2 -t : facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
我们使用冒号作为间隔符,并针对第二列来进行数值升序排序,结果很令人满意。
③uniq命令
该命令从排好序的文件中去除重复行。
(1)一般格式:uniq [选项] [输入文件[输出文件]]
(2)说明:uniq命令读取输入文件,并比较相邻的行,去除重复行,并将加工后的结果写到输出文件上。输入文件和输出文件必须不同。如果输入文件用“-”表示,则从标准输入上读取。
(3)选项
-c:显示输出时,在每行的行首加上该行在文件中出现的次数。
-d:只显示重复行
-f,--skip-fields=N:忽略比较前N个字段
-s,--skip-fchars=N:忽略比较前N个字符
-u,只显示文件中不重复的行。
4.3 比较文件内容的命令
①comm命令
用来对两个已排序文件进行逐行比较。
(1)一般格式:comm [-123] file1 file2
说明:comm命令对两个已排序好的文件进行比较。其中file1和file2是已经排好序的文件。comm从两个文件中读取正文行,进行比较,最后生成三列输出:仅在file1中出现的行,仅在file2中出现的行,在两个文件中都出现的行。
选项1,2,3分别表示不显示comm输出中的第一列、第二列和第三列。
②diff命令
用来比较两个文本文件,并找出他们的不同。它比comm命令完成更复杂的检查,并且不要求两个文件预先排好序。
(1)一般格式
diff [选项] 文件1 文件2
(2)说明
该命令逐行比较对象文件,列出不同,并且告诉用户为了使两个文件一致,需要修改它们的那些行。如果两个文件完全一样,该命令不显示任何输出。
(3)选项
-b:忽略空格造成的差别
-c:输出格式是带上下文的三行格式
-i:忽略大小写
-r:当文件1和文件2是目录时,递归比较找到的各子目录。
浙公网安备 33010602011771号