文章目录
1、echo命令
- 直接带字符串:显示内容到屏幕 (双引号可以省略)
- 带选项 -n: 回显指定字符串后不换行
- 带选项 -e: 输出转义字符
- 显示命令执行结果:在命令前后使用反引号
✦ 常用转义字符:
\b 删除前一个字符(但前提是"\b"后面存在字符),若连续使用多个\b,则删除多个字符;
\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n;
\f 换行但光标仍旧停留在原来的位置; \v 与\f相同;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\\ 插入\本身;
示例:
[flora@localhost ~]$ echo "hello"
hello
[flora@localhost ~]$ echo -n "hello,world"
hello,world[flora@localhost ~]$ echo -e 'hello,Linux.\n\n'
hello,Linux.
[flora@localhost ~]$ echo `date`
2020年 03月 04日 星期三 21:16:13 EST
ps:详细用法举例可以参考文章 http://www.zsythink.net/archives/96
2、重定向
执行一个shell命令行时通常会自动打开三个标准文件:
- 标准输入文件(stdin)代码为 0 ,使用 < 或 << ;0代表:/dev/stdin
- 标准输出文件(stdout)代码为 1 ,使用 > 或 >> ;1代表:/dev/stdout
- 标准错误输出文件(stderr)代码为 2 ,使用 2> 或 2>> ; 2代表:/dev/stderr
进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
(1)输入重定向
输入重定向主要用于改变一个命令的输入源,指输入可以不来自标准输入(键盘),而来自一个指定的文件。
- 一般的命令格式为“命令<文件名”
- 例如 cat<file :将文件file的内容作为输入让cat命令执行。
Ⅰ. 结合tr命令使用重定向
- tr命令:往往用于从标准输入中替换特定字符,并将结果写到标准输出。
- 格式:tr [准备要替换的字符] [要替换成的字符]
eg:
Ⅱ.结合sort命令
- sort命令用于对文本文件内容按照规定字段进行排序
- 格式: sort -k [关键字字段序号] [要排序的文本文件]
eg:
(2)输出重定向
输出重定向指将命令的执行结果输出到指定的文件,不是直接显示在屏幕上
注意:输出重定向 > 会覆盖文件内容,如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾。
※ 此外,还可以使用command1 < infile > outfile 命令,执行command1,从文件infile读取内容,然后将输出写入到outfile中
(3) /dev/null 文件
如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:
== $ command > /dev/null ==
因为/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
eg:root权限下通过重定向清空日志文件:
cat /dev/null>/var/log/dmesg
3、管道符 “|”
管道可以把一系列命令连接起来,前一个命令的结果作为后一个命令的输入。
1.cut
- 功能:将同一行的数据(以指定字符)进行分解。(一般用于分析日志文件)
- 语法:cut –d “分割字符” [-cf] fields
- 参数说明:
-d:自定义分隔符,默认是空格符
-c:后面接的是第几个字符
-f:与-d一起使用,指定显示哪个区域
-b :以字节为单位进行分割
举例:将PATH变量取出,要找到第三个路径
2.wc
- 功能:显示文件的大小,可以显示行数、单词数和字符数
- 语法:wc [-lwm]
- 参数说明:
-l:显示多少行
-w:显示多少字(英文单词)
-m:多少字符
举例:/etc/host.config里有多少相关字、行、字符数
综合例子:
-
Q:解析命令cat /etc/passwd | grep /bin/bash | wc –l
A:利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有 “/bin/bash”的所有行;第二个管道将grep的输入送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用 bash。 -
统计当前用户家目录下所有目录文件的数目
4、cal 显示日历信息
使用cal命令可以显示计算机系统的日历
cal的命令格式如下:cal [[[日]月]年]
示例:
- 显示本月的日历:[user@localhost ~]$ cal
- 显示2020年的日历:[user@localhost ~]$ cal 2020
- 显示2020年3月份的日历:[user@localhost ~]$ cal 3 2020
5、date 显示和设置系统日期和时间
使用date命令可以显示和设置计算机系统的日期和时间。只有超级用户有权限使用date命令设置日期和时间,普通用户只能使用date命令显示日期和时间。
- 显示当前计算机系统的日期和时间:[user@localhost ~]$ date
- 按照指定的格式显示计算机系统的日期和时间。[user@localhost ~]$ date +%Y%m%d
//更多格式信息可以通过man date帮助来进行查询。
6.设置别名(alias)
(1)设置别名
- 命令格式:alias [别名]=[需要定义别名的命令]
- 例:以长格式的形式查看当前目录下的所有文件,包括隐藏文件,可以设置别名alias ll=‘ls –al’。
- 注意:等号两端不能空格,字符串需要加引号。
(2)查看别名: alias
(3)取消别名: unalias 命令
(4)设置别名永久生效:如果想让别名在每次登录时都有效,需将alias命令写到初始化脚本文件(.bashrc)中。
举例:
Q:设置别名rm=’rm –i’,使用rm删除命令删除时每次都有提示确认信息,并让别名设置永久生效。
A:[user@localhost ~]$ vim .bashrc
在脚本文件.bashrc中增加别名rm=’rm -i’,保存退出.bashrc脚本文件。
7、磁盘挂载使用u盘
① mount命令查看挂载Linux系统外的文件(如下图截取的是查询结果的最后为u盘挂载的地方(/run/media/flora/CentOS-8-1-1911-x86_64-dvd/)
②cd u盘真正挂载的地方而不是单纯的/div设备文件下
8、ifconfig、uname——系统状态检测命令
(1)ifconfig
用于获取网卡配置与网络状态等信息
- 格式为 ifconfig [网络设备] [参数]
- 查看本机当前的网卡配置与网络状态等信息:[flora@localhost ~]$ ifconfig
(2)uname
用于查看系统内核版本等信息
[flora@localhost ~]$ uname -a
Linux localhost.localdomain 4.18.0-147.el8.x86_64 #1 SMP Wed Dec 4 21:51:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux