Linux别名管理、日期和时钟设置和简单命令 | 学习笔记

简介: 快速学习Linux别名管理、日期和时钟设置和简单命令

开发者学堂课程【Linux企业运维实战 - 入门及常用命令Linux别名管理、日期和时钟设置和简单命令】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/550/detail/7598


Linux别名管理、日期和时钟设置和简单命令


内容介绍

一、 别名管理

二、 日期和时钟设置

三、简单命令


一、别名管理

对于外部命令来讲,可以用 which 命令来查看外部命令的路径。还有一个和它相似的一个命令叫 Where is。

Where is 显而易见是问东西在哪儿,它显示的是外部命令的路径,包括对后续还有一些相关的文档的路径,它显示的就更全了。他不仅显示出外部命令的路径,还能显示出她的一些文档,也就是MAN文档帮助。

在 which 命令查看有些操作的时候,可能会有 alias 的提示,代表着别名,适用于对一些比较长的命令,写一个比较短的一个别称,以后运行起来就可以用短的名称来代表这个长命令。例如以后经常要配置网络的一些相关内容,经常要进入到目录里,去改一些关于网络的一些相关设置,这个操作是比较长的。

如果经常要执行这条命令,把他定成别名是比较方便的。别名命令和内部命令以及外部命令最好不要冲突,冲突了就一定会自己选一个。所以自己定一个别名叫CDnet,把它用引号引起来,就被定义成别名了。

现在来查看它是否生效。就可以用执行,执行的时候效果是一样的,所以这样用起来比较方便的,但系统中确实有好多命令就是用别名方式来实现的。

例如LS,ls实际上就是一个别名的ls,如果机器连不上去就是地址变了或者地址不存在了。将网络服务重新启动地址就重新出现了。有地址之后重新执行,有地址连不上去就可以 pick 一下。

系统中本身已经定义好一些别名了,可以用命令alias查看所有别名列表,其中也包括自己定义的列表,但是同样道理,别名定义如果退出再登录进来,要想把东西存得住,就需要写文件。但是写什么文件不能随便写,要写到规定的配置文件中,像别名一般是定义在 .bashrc 文件里。

在每个用户的系统中都有一个这样的文件,点打头的文件有个特性,就是敲R是看不见的。他表示隐藏文件,要看隐藏文件,必须要加上一个-a属性,才能看到点打头的文件。通过 nano 把C文件打开,可以注意到的是上面已经有一些别名命令了。用双引号,单引号都可以。

做完以后,虽然文件改了,但没有生效。学校的方法很简单,就是通过退出再重新登录。也可以用.或者 source 这两个命令后面跟上刚才改的个文件都可以让他生效,.和 source 相当于去读取刚才写的文件。

读取的内容放到内存里面,放到内存里面自然就生效了,点本身是内部命令,:也能是内部命令。现在输入who有可能是一个内部命令也是个外部命令,甚至还有是个别名。

如果一个命令,它既是内部命令,又是外部命令还是别名,优先级是别名命令高,自然也就不用跟外部命令比了,因为内部命令,比外部命令优先级高。如果把一个本身是内部命令的命令,定义成别名也可以,当然,这个时候就会有冲突,有冲突的时候就是别名优先级更高。但是在以后工作中尽量减少冲突。

echo 是一个内部命令,它的作用就是显示字符串或是对命令的内容进行打印的,例如输入Hello,他就把重新显示一遍。Echo 本身是一个内部命令。

如果想把内部命令的 Echo 给他禁用了,可以通过如下命令禁用:

-n unable

但此时显示是无效的应用,因为把它定义成别名了。删了以后,再执行,echo 在内部命令中被禁用。

Help在 echo 前面会有一个*号,禁用之后还可以使用,因为他还有一个外部命令。

内部命令和Shell相关,不同的Shell内置的内部命令是不一样的,echo 在被始终是内部命令,换一个在办事中,是内部命令,换一个bash就可能不一样了,也就可能不存在这个命令了,这就是保证内部命令能够使用的手段。为了避免运行 echo 报错,所以外部命令也准备了。

这样的话内部命令一旦不存在,就可以使用外部命令来进行执行了,当然优先用内部令命。这是现在运行命令的几种方法,建议把一些常见的别名可以定义起来,像cdnet 就可以把它定成别名,或者是其他经常用到的工具,也可以定义成别名。别名是放在文件里边,但是文件是放在 root 账号里的,文件只是针对 root 有效,此时,定义的命令对普通帐号是没有用的。

也可以更改之后,让他对于所有帐号都有效,也就是通过更改文件的方式来使用户账号也起作用,一般不建议去更改这种文件,这种文件是全局性的文件影响太大。

LS命运有一个奇特之处,LS命令别名叫lS,原来的命令,也叫lS。

当执行LS的时候,由于优先级问题,他优先使用别名。现在想用内部命令的ls,不想使用别名的ls,现在用的是别名的lS,别名lS加了颜色,因为有个Color auto这样的选项导致的。原始命令是不带颜色的,当然要想加颜色,就加上Color。

如果要想用原始命令输入路径即可,这是一种方法,但是这种方法只适合于外部命令。如果内部命令根本没有路径了,可以通过

‘ls’

或者

/ls

使用原始内部命令或者执行一个command命令。

unalias还有一个选项叫-a选项,选项表示的是取消所有别名。在别名很多的情况下如果想全都取消了,不用一个一个取消,也可以用-A把它全取消。

退出之后,重新进入,刚才的别名又出现了。其中 which 命令,在显示一个命令的时候,如果是别名,他会显出别名。如果不想显示别名,就想显示它的路径信息位置,有一个选项叫 skip alias,加入这个选项之后就不显示别名信息了,光显示它的外部命令的路径了。

这些方法在特定的场景下都要用到。例如,将来希望把LS程序所在的文件的文件拷贝到某个目录下,如果想要复制到date目录下,第一步是先看看LS程序在哪里,但是默认位置认为他是别名。这时候就可以光显出它的文件路径来,然后利用路径就可以找到文件所在的位置进行复制。因为不关心别名只关心路径,所以这个选项有意义。

以上就是命令的一些用法。平时在 Linux 里,不论是外部命令内部命令还是别名,他们输入的时候,在它的格式比较全的情况下,它会包括以下3部分内容。

第一部分就是命令本身,当然命令有是内部命令、别名或者是外部命令。

后面跟选项,在这中间有空格隔开的,然后再跟参数。选项是一个命令里面,它带有的一些功能的表示。选项,它有多种类型的选项,其中有短格式的选项,还有长格式的选项,短格式的选项就是-再加一个字母。

enable-n,就是短格式的选项。长格式的选项--加上一个单词。用长格式、短格式看个人喜好。除了选项,后面往往要处理一些对应的资源,例如要去处理文件,或者处理用户或者组,或者某种类型的资源,这时候要加参数。命令选项参数三个内容一体,选项可以跟好几个, 两个选项可以把它合二为一。

有时可以跟L ,L就是详细显示出列表,包括文件大小和时间都显示出来。在输入选项时有的选项有前有后,有的选项无所谓,需要看情况。

可以把多个短格式的选项给他合成一个,但是不可以把一个长格式和一个短格式连在一块写。当一个命令的执行过程中,想把它停下来,可以按ctrl加C,可以把它终止掉。有的情况下,ctrl加D也可以取消该命令。

但此时不能通过ctrl加d来取消命令需要根据命令的情况而定。ctrl+ C是比较强硬的命令,可能会丢失数据。如果不敲任何命令的情况,在当前终端里敲ctrl D就相当于注销,相当于执行了一个 exist,或者是 log out 注销退出。可以把多个短的命令合成一行写,中间用;隔开即可。

例如想执行LS,在想执行Hostname比较短的命令,想在执行ID命令,可以把它放在一行里写,括号隔开就可以。也可以把一条命令分成多行写,这样回车一次即可,比较长的命令执行时中间需要加一个斜线,这种方法适用于命令较长的情况下。

分成多横斜,只加一个/的话就会有问题,相当于写在一块了。所以加斜线时需要注意补上空格。这是命令的基本语法。当然有些情况下不加选项,也不加参数,直接一条单条命令,这是比较全的写法。


二、日期和时钟设置

之前已经提出过时间的问题,在 Linux 中,它的时钟有两个地方会记录下来一个是系统时钟,是Linux内核来决定的。还有一个时间和操作没关系,它是记录在一个硬件的主板里的。在电脑里面,即使电脑不开,不启动 Windows,开机的时候是有时间的,也就是主板的时间,这两个时间有是不一致的,用 date 命令看到的是当前的系统时间,就是软件时间。

要看主板的硬件时间,就用另外一个命令叫 Clock。目前这两个时间是差不多的。但是可以让他故意的两个时间不一样。date 命令不仅可以显示时间,它也可以把系统的时间更改。方法如下

在命令中跟上选项,时间格式可以按照一定的时间格式来,就是月、日、小时、分、年加秒。更改之后在使用Clock看时间发现他们两个是不一样的,硬件时间和的软件时间就不一样了。但是硬件时间现在是准确的,系统时间软件时间是错误的。

现在想让的系统时间和硬件时间同步,有一个方法就是 Clock,有一个选项就是-S。-S是以硬件时间为准,当然可以选长格式:

--hctosys

但是如果想让硬件时间和软件时间同步,用如下命令即可:Clock-W

输入以上命令之后, 和date命令显示的时间就同步了。

当然,这两个时间都是错的,现在想还原到正确的时间可以使用命令:NTPdate 172.20.0.1

然后使用

clock- W

让系统时间覆盖的硬件时间。data命令功能很强,在后面加%S就换了一种显示方式。也可以用如下命令:

date-d@1509536033

以上命令就是把秒转换成当前的时间,把秒的显示格式转换成当前的系统时间格式,两者之间可以做转换。

7月1日是诞生日,所以许多时间都让7月1日作为默认时间。

还存在一个时区问题,在安装系统的时候设的时区是北京的东8区,执行如下命令etc/localtime文件里面定义的就是时区,但这个文件记录的不是文本文件的时区。

在CentOS 7上面有一个查看所有时区命令,这个命令叫Time,然后再加上list之后可以列出所有的时区。英国时间和北京时间相差八个小时,如果时区在安装系统时候忘了设。可以用如下命令来更改时间:

set timzone

设置了一个和北京时间相差两小时的时间之后,再把它还原,使用以上命令时,需要注意大小写敏感。在CentOS 6没有这个命令,以上命令是在其中才拥有的命令。

在CentOS 6上,开时区有一个这样的命令

tzselect

首先是选亚洲5,亚洲5输入进来以后,有香港。输入9,就有北京时间和新疆时间。之后系统提示是否要用上面的信息来设置。可以设置Yes来更改时区,用这种方法设置时区较为简单,只需要挑选时间即可。

实际上时区它对应的真正的文件在如下目录:

/usr/share/zoneinfo/Asia

设置时区就相当于把文件只是到需要的时区上。这实际上用的是后面讲的软链接或者硬链接技术实现,属性是完全一样的,这是时区的问题,当然安装系统设置好了也就不用调了。

对于日历的问题。日历显示当前月的日历,它也可以显示某一年的日历。可以查看过去某一年某一月的日历。1752年较为奇特,由于历史原因年历有误差,所以往后调了几天调整误差。

重启可以通过如下命令:

Reboot

这个命令它有两个选项,可以来用跟-F,-P。实际上Reboot的命令也可以关机,就是加-P。还有一个命令是比较专业的关机命令:

shutdown

这个命令它不仅可以关机,也可以重启,还可以取消关机。

Windows也有 shutdown 命令,例如现在从网上下载一个大文件,很久才能下完。

一般就是一个 shutdown 命令,两个小时之后自动关机,它可以指定时间。默认情况下,如果不写,它相当于加一,就是加一分钟,一分钟之后自动关机。shutdown加一个时间,如果加上now,就是现在就关机。例如加5分钟,此时提示将在5分钟之后自动关机。

如果想中断就可以通过ctrl加C来把它中断。在别的终端上,也能看到刚才关机的提示。作为root管理员来讲,如果只剩5分钟工作无法完成,可以通过别的终端取消关机。

可以通过如下命令:

shutdown canceled

在不同的终端上可以一个终端是关机,另外一个终端取消。关机的时候还可以加消息,就是提醒现在要关机了,请把手头上的工作保存一下。 一般做维护工作都要加消息,通过如下命令:

shutdown -r +5””系统将关机”

但是因为当时装的是英文的字体,界面选择语言也都是英文的,所以它现在英文默认,中文是不支持的。之所以写出CRT支持,是因为在写出CRP里的设置实现的。

在系统本身里面它默认是不支持中文的,但要设置的话,就需要把字体支持设一下。需要设置中文的格式。有一个和语言相关的就叫 lang,默认是英语,可以把它改成中文。有一个文件里面记录的是如下的内容

cat/etc/sysconfig/i18nn

其中English就是英语。可以把它改成zhCN就是中文了。 一旦支持中文,会发现好多提示都是中文的,提示信息就变成中文的了。注销以后 Root 登录一下,查看lang ,用刚才的方法查看之后发现已经修改完毕。

wall 命令是专门发通知的,只要登录在这台电脑的人都能收到消息。虽然说把语言设成中文了,但是还没有全是中文包,需要安装中文字体才可以,如果没有中文包就显示不了。

这是设置语言,当然一般来讲不建议设成中文。设置中文有可能会乱码,所以一般来讲是不设的,所以还需要把语言更改为英文,把个语言地方改了后有些提示都变成中文,然后现在又把它再改回成英文,生效还需要通过 souse 。

 

三、简单命令

如果现在在学习过程中发现一个问题,希望别人帮助来解决的问题,在 Windows里面,例如有人机器说出问题了,有个软件不会用,他希望帮助他,打电话说不清楚,看不见它的屏幕。

一般来讲,在Windows可以用QQ的远程协助连到他的桌面上,协助他做一些事。在linux中,实际上VC就可以做到这一点,VC就可以实现。

VC不仅是Windows上支持, Linux也支持,但是他的工具只能支持图形界面,如果是字符界面就不行了,现在想在字符界面下实现这种远程的协助。

方法如下:

例如现在有这样的问题出现了。现在有一个服务器在机房,是一个 Linux 系统。一个 windows 或者 mac 远程连接到对方的电脑上,远程的通过CT连接到对方的命令上去做配置,这时候看到电脑上的屏幕信息是 Linux 这个界面。现在希望有一个人帮助自己,他也可以坐在自己的电脑上,也可以通过CRT,通过同样的账号连接到机上。

这时候他的屏幕上也出现了 Linux 的界面,但是此时看不到对方的操作。如果希望能看到对方的操作,甚至干预他的操作,这时候可以用 Spring 来解决的问题。spring 这个软件需要安装一下,下载方法如下:

先找光盘,因为软件都在光盘里。 SR0代表光盘的设备名,所有安装光盘的所有文件数据都在目录下,所以直接进到目录就可以了。可以敲tab,进来以后敲LS就是光盘里的内容,其中要安装的软件在 Package 文件夹里,进到 Package 后会列出一大堆的红色的信息,要装软件就叫Spring,后面跟版本号,直接用命令安装就行了。敲 screen 后面不用敲了,敲tab键就行了。当然也可以用另外一种方法,不进入到目录里,直接 Run,把完整路径输入上。这样的话就不用非得进入到目录里了。

前提是 root 帐号登录,登录是和图形界面有关的,现在图形界面就是以root的身份登录的,是哪一个帐号登录的就挂载到哪一个帐号下。

6.9是字符界面,要看一下它的运行模式是3模式的,光盘已经挂载了,是因为曾经进入到图形过,他现在还挂着, CentOS 6和CentOS 7的光盘挂载默认路径是不一样的,需要根据它挂载路径来进行操作,所以在6上要安装的话,用命令CentOS 6.9 Final 跟上版本路径就能完成。


image.png

现在两个终端分成两个窗口,左边窗口相当于在屏幕上画的图,现在有2个人分别命名为A和B,B认为是帮助的人。首先前提都要连接到同一台电脑上,而且是同一个用户。

确保这一点,然后装完以后想让右边人看到左边人的操作过程,并且能够干预他的操作。通过命令

screen -s help

开一个会话,右边只需要加入会话就可以,一旦加入会话以后,两边的界面就同步了。在左边操作右边就会有变化。此时就可以帮助别人做事。

帮助完毕,之后退出,就意味着两边都退出了。如果只想让一个人退出, 可以通过 Ctrl加A松手在加D,帮助的人就从绘画中剥离出来了。

实际上还可以再开更多的窗口,让3个人或者更多的人共享同一个会话,也就是三个人看一样的界面。退出来以后,不想参与到对话里,就可以把窗口彻底关闭。这时候自己还在 screen 会话里,还没有退出来,也可以临时的去退出会话,也可以按ctrl加A+D退出来。

退出来以后,screen 现在还保留着,只不过在已经没有人在里边了。如果想再回到刚才的会话,可以在键盘中输入R就重新回到了刚才的会话,也可以看到刚才的界面。

Scream还有一个突出的好处在于如果用户去ping一台机器时,通过如下命令:

ping172.20.0.1

这个命令默认是死循环,什么时候按Ctrl+C,它才会停下来,否则就一直进行。在网卡中右键单击断网以后就停止了,或者可以直接使用

disconnect

使用之后,页面就停止了。停止以后再返回到ping命令时,发现ping命令已经停止了。

 所以在之后的工作中可能在备份的时候突然断网了,在网络恢复之后这个工作是停止的。

解决方法就是通过 screen 开一个会话,也就是说在进行比较长的操作之前先开一个 screen,在去执行需要执行的长时间操作,假如中途发生突发情况工作也不会停止,可以将其恢复,不依赖网络状态,可以,避免网络断开而终止命令。

需要注意的是,做这个实验时需要3台机器,其中一台是Linux,其他2台可以是Windows,开2个终端就可以了,连接的时候必须是同一个用户,不能一个是root用户一个是普通用户,三台机器共享的是同一个人的界面。

echo 命令默认的功能就是把字符串显示出来,在命令之后跟上什么字符串就会把什么字符串显示出来。

但是可以利用这个命令进行一些扩展功能,实现扩展功能需要在后面加上-e选项,-e是启用它的一些特定功能。Echo本身是回写的意思,也就是把后面跟的一些字符串重新显示一遍。

默认的情况下,Echo 的功能比较简单,就是显示一个字符串,将来可以用Echo来显示一些提示信息。

echo 本身是回写的功能。在提示时也可以加入一些扩展功能,比如说在提示时换行,在默认情况下已经换行了,但是可以人为地加一个换行,已经默认换行了。如果在后面加上一个N,它不能识别是换行,需要加上一个-e。

也可以让他不换行,就加入一个\c,\c的意思就是压缩换行,但是需要配合上-e才可以使用;也可以支持T,T表示的是tab键;也可以加上V,V表示垂直tab键;还可以加上A让它发出声音,当然可以加很多个,这个命令支持很多种这样的用法。可以利用它在将来工作中提醒某些事已经完成。还可以加入B表示退格键,R表示回车,即光标移至行首但不换行。

需要注意的是N和R是不同的。在Windows中N和R是相同的概念,但是实际上N和R是两个不同的操作。在操作中,把光标移到最前面去了,所以A就看不见了,除非后面跟上一些东西,跟上东西之后把光标移到前面就显示出来了。还可以输入8进制的ASCII码, 16进制的ASCII码。

ASCII码在计算机中非常重要的编码,最早的计算机只识别0101,但是在磁盘或文件中写东西都是写字符,保存到磁盘中时必然会转化成0101来保存,此时就出现一个问题如果要保存字符A时,那么它必然要对应一个值,如果是B字符,也需要对应一个值,这种对应关系就有1个完整的表叫ASCII。

A字母在这里保存成97,这是10进制的,如果要保存成2进制也要转化为97的2进制。Cat f1,并输入ABC后,会显示出ABC来,但是此时是因为系统自动通过ASCII表把它转化了,在磁盘中保存时实际上是按照0101来保存的,可以通过命令hex DUMP-C F1来查看此处是保存成了16进制,进制转化时可以通过BC计算器来计算,会自动转化成10进制。

反过来转换也可以通过Obase=16,再输入97,就把它转化成了16进制的数字;也可以转化成2进制,也就是命令Obase=2,是可以相互转换的。

61相当于A字母,62相当于B字母,63相当于C字母,此处的0a中的a是16进制数,相当于10进制的10,所以在保存时是以2进制保存的。

在执行 Echo 命令时,也可以写他的ASCII对应的8进制或者16进制 。

97的8进制是141,利用Echo把它打印出来,echo -e“\0141”,输出之后就是A了。

X后表示后面是十六进制,还可以加上颜色,使它以特定的颜色进行显示,之后在工作时可以加一些显著的颜色做提醒。

登录系统时希望有一些提醒,有一个文件可以实现这样的功能就是MOTD,这个文件默认是空的但是可以往里面写东西,写进去之后退出再进入就会有对应的提示。

不论是 root 用户还是普通用户登录都会有这种提示。

相关文章
|
4天前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
3天前
|
Linux Python Perl
Linux命令删除文件里的字符串
Linux命令删除文件里的字符串
14 7
|
4天前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
5天前
|
Linux Perl
Linux之sed命令
Linux之sed命令
|
5天前
|
Linux
深入理解Linux中的cp命令:文件与目录的复制利器
深入理解Linux中的cp命令:文件与目录的复制利器
|
6天前
|
Linux Docker 容器
9. 同步执行Linux多条命令
9. 同步执行Linux多条命令
|
6天前
|
Linux Shell
10-10|linux命令查询 关键字在文本中出现的行数
10-10|linux命令查询 关键字在文本中出现的行数
|
6天前
|
Ubuntu Linux Shell
10-21|在linux我如果修改了时间,什么命令可以恢复正确啊
10-21|在linux我如果修改了时间,什么命令可以恢复正确啊
|
6天前
|
Linux Shell
10-8|linux date设置时间
10-8|linux date设置时间
|
6天前
|
Linux Perl
6-20|linux sed命令
6-20|linux sed命令
下一篇
无影云桌面