作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
经过上一章Linux日志的讲解,我们对Linux系统自带的日志服务已经有了一些了解。我们接下来将讲解一些进阶命令,主要从以下几个方面来讲解:一些系统操作,系统查看处理,Linux文本处理,逻辑判断,重定向,网络传输,服务启动,文件句柄等内容。通过这些操作,让你对Linux的操作更加得心应手,具体分成以下章节进行讲解:
Linux进阶命令-echo&date&alias(本章节)
Linux进阶命令-top
Linux进阶命令-ps&kill
Linux进阶命令-sort&wc
Linux进阶命令-sed&split
Linux进阶命令-awk&uniq
Linux进阶命令-逻辑或&逻辑与
Linux进阶命令-重定向
Linux进阶命令-scp&rsync
Linux进阶命令-rsync-daemoon
Linux进阶命令-nohup&screen
Linux进阶命令-lsof
Linux进阶命令-小结
echo
我们在前面讲Linux基础软件-软件安装的时候,在编译安装的时候使用echo $? 来判断上一个命令的执行结果,0是正常,其他则是不正常。其实任何命令只要执行成功,使用echo $?都应该返回0。还在讲Linux日常运维的环境变量的时候,通过echo $PATH来打印变量。
echo
是在Linux和Unix系统中常用的命令,主要用于在终端输出指定的文本或变量值。它也可以用来打印简单的文本消息或变量的值。
基本语法
echo [OPTION] [STRING]
-
OPTION
可选,用于控制输出格式或行为。 -
STRING
通常是要输出的文本或变量。
常用选项
-
-n
不会自动换行,输出后不添加换行符。 -
-e
识别转义字符,如\n
表示换行符。
示例
1.输出一条简单的消息:
echo "Hello, World!"
2.输出变量的值:
name="Alice"
echo "Hello, $name"
3.不换行输出:
echo -n "This is a "
echo "single line."
4.识别转义字符:
echo -e "First line\nSecond line"
5.输出特殊字符:
echo "The cost is \\$10" # 输出:The cost is \$10
应用场景
-
在脚本中用于输出调试信息或提示消息。
-
用于打印变量值,方便调试和查看内容。
-
结合重定向符号(
>
和>>
)将输出内容写入文件,后面将单独将重定向。
date
在Linux基础软件-ntp里面我们讲过在没有ntp或者chrony的时候可以通过date来设置时间。
date
命令在Linux和Unix系统中用于显示或设置系统的日期和时间。它可以输出当前的日期时间,或者根据指定的格式来格式化日期时间的输出。
基本用法
date [OPTION]... [+FORMAT]
-
OPTION
是可选的选项,用于控制输出格式或行为。 -
+FORMAT
是用于指定日期时间输出格式的字符串。
常用选项
-
-d, --date=STRING
:显示给定日期时间的格式。 -
-u, --utc, --universal
:显示UTC时间(协调世界时)。 -
-s, --set=STRING :设置时间或者日期。
-
+%FORMAT
:用指定格式输出日期时间。
格式化字符串
在 +FORMAT
中,可以使用以下特殊的格式化字符串来定义输出的日期时间格式:
-
%Y
:四位数的年份(如:2024)。 -
%m
:两位数的月份(01 到 12)。 -
%d
:两位数的日(01 到 31)。 -
%H
:24小时制的小时数(00 到 23)。 -
%M
:两位数的分钟数(00 到 59)。 -
%S
:秒数(00 到 60)。 -
%Z
:时区(例如:UTC、GMT、PST)。
示例
1.显示当前日期时间:
date
输出类似:Tue Aug 7 17:19:15 UTC 2024
2.以特定格式输出当前日期时间:
date +"%Y-%m-%d %H:%M:%S"
输出类似:2024-08-07 17:19:15
3.显示UTC时间:
date -u
4.设置时间:
#设置日期
date -s 2024-08-15
#设置时间
date -s 00:54:00
这个操作要特别注意,尤其是在生产环境。
应用场景
-
在脚本中记录日志,使用
date
命令添加时间戳。 -
用于文件名的时间戳,例如备份文件。
-
调试和分析日志文件时,确定特定事件发生的时间。
-
在需要精确计时和定期任务的自动化脚本中使用。
这里补充一个基础知识,在Linux服务器里面还有个时间Unix时间戳或POSIX时间。它表示的是自1970年1月1日00:00:00 UTC以来经过的秒数。Unix时间戳通常是一个整数值
#显示当前unix时间
date +%s
#将unix时间转换为人类可识别时间
date -d @1723655358
alias
在Linux基础命令(一),我们曾经说过有一个命令ll,实际上是ls -l。他们的实现方式实际就是alias。当然还有很多命令默认都是有alias的。
alias
命令用于在命令行中创建命令别名,允许用户为常用命令或命令序列定义简短的替代名称。这样做可以显著提高命令行操作的效率和便捷性。
基本语法
alias [name[=value] ...]
-
name
是要定义的别名,可以是任何不包含空格或特殊字符的字符串。 -
value
是要替代的命令或命令序列。如果没有提供value
,则显示当前的别名列表。
示例
1.定义简单的别名:
alias ll='ls -l'
这条命令将 ll
定义为 ls -l
的别名。以后在命令行中输入 ll
就会执行 ls -l
命令,显示详细的文件列表。
2.定义带参数的别名:
alias grep='grep --color=auto'
这样,使用 grep
命令时会自动启用彩色输出。
3.查看当前定义的所有别名:
alias
这条命令会列出当前所有已定义的别名及其对应的命令。
4.删除别名:
unalias ll
这会删除之前定义的 ll
别名,恢复原始的 ls -l
行为。
永久生效
在终端中定义的别名仅在当前会话中有效,关闭终端后会丢失。如果希望别名永久生效,可以将其添加到用户的 shell 配置文件中,比如:
-
对于
bash
shell,可以将别名定义添加到~/.bashrc
文件中。
然后使用 source ~/.bashrc
命令使其立即生效,或者重新启动终端。当然也可以根据我们前面Linux日常运维-环境变量(env)放置到合适的位置。
应用场景
-
简化命令行操作: 将常用的复杂命令或长命令序列定义为简单易记的别名,减少输入量。
-
增强命令功能: 向命令添加默认参数或选项,以便于特定需求的快速调用。
-
提高工作效率: 根据个人工作流程和使用习惯优化命令行环境,使得操作更高效。
总结
1.这小节讲了3个命令,其中echo 主要用途在shell里面就是通过$?确认上个命令执行结果和通过">",">>"写入到文件里面,还有就是shell脚本里面打印输出到控制台,方便我们查看脚本执行过程。
2.date主要用途在shell里面就是设置时间,在shell里面就是用于变量方便记录或者操作命令执行的时间。
3.在执行date -d 进行转换时间的时候要注意,不要用错成date -s了,这个是有亲身经历过生产故障。
3.alias主要通途就是让我们对某系常用命令进行改造,让我们操作更简单。
#通过kc xx就可以查询pod
alias "kc=kubectl get pod -A|grep"
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。