2-4 Linux基本命令

这个世界上任何值得做的事情都不会很简单

目录

  1. 日期时间相关命令 date、clock
  2. 开关机相关命令 shutdown halt poweroff init reboot
  3. 简单命令 文本编辑工具:nano、vim ; Screen; echo

1. 日期时间相关命令

1.1 Linux 的两种时间
系统时钟:有Linux内核通过CPU的工作频率进行的;
硬件时钟:主板记录时间;

1.2 时间相关命令:
1.2.1 date命令
date显示当前系统时间
使用方法:(显示时间与修改时间)

date [OPTION]... [+FORMAT]          #显示时间;
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]          #修改时间;

1.第一种用法是一种显示时间方法:
[dell@Centos7 ~]$ date
Thu 20 Jun 16:19:49 CST 2019
[dell@Centos7 ~]$ date +%Y%m%d
20190620
[dell@Centos7 ~]$ date +"%F %T"
2019-06-20 16:20:39

FORMAT的多种格式,可以通过man date来查看具体格式, 下面列出常用的:

  • %F :年月日全格式,例如2016-06-21
  • %T :时间全格式,例如13:14:42
  • %Y:年
  • %m:月
  • %d:日
  • %H:小时
  • %M 分
  • -%S 秒
  • %s:从1970年1月1日00:00:00开始的秒数

第二种用法是——更改时间的
更改的时间格式为: MMDDhhmm[[CC]YY][.ss]

  • MM:month
  • DD:day
    hh:hour
    mm:minute
    CC:centery
    YY:year
    ss:second

看可选项我们能明白,必须写月日小时分钟,可以只写年的两位,不写世纪,也可以年和世界都不写(就是不更改年),秒可写可不写。
例如设置到2012年12月21日 11:11:11

[root@centos7 ~]# date 122111112012.11
Fri Dec 21 11:11:11 CST 2012

修改当前系统具体日期也使用date -s命令,顺序为小时、分钟、秒:
[root@landian ~]# date -s 16:47:00
Thu Mar 23 16:47:00 CST 2017
把时区、日期和具体时间修改之后要保存到BIOS中避免重启系统时间又恢复了:
[root@landian ~]# hwclock -w
1.2 clock硬件时钟(clock==hwclock)

clock=hwclock,是一样的命令。
主要用到两个:

-s --hctosys:硬件时钟(hardware clock)to 系统时钟(system time),把系统时间调成和硬件时钟一样。
-w, --systohc:系统时钟(system time) to 硬件时钟(hardware clock),把硬件时钟调成和系统时钟一样。

1.3 ntpdate(同步系统时间)
ntpdate IP:如htpdate 172.17.0.1
tips:前提是IP所在的那台机器启用了NTP服务,NTP服务后面我们会学,这里先了解下。
1.4 更改时区——tzselect

CentOS 6和7都支持的命令:tzselect,是一个交互式的命令。
修改服务器时区的话在终端中执行tzselect即可开始选择时区,依次是大洲—国家—地区:

[root@landian ~]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
 5) Asia  ==>大洲列表
 9) China  ==>国家列表
#? 9  ==>选择国家序列号
Please select one of the following time zone regions.
1) Beijing Time  ==>时间列表
2) Xinjiang Time
#? 1  ==>选择时间序列号
The following information has been given:
 China
 Beijing TimeIs 
 the above information OK?
1) Yes 
2) No
#? 1  ==>确认修改

复制相应的时区文件替换掉系统时区文件:
[root@landian ~]# cp /usr/share/zoneinfo/Asia/Beijing /etc/localtime
cp: overwrite `/etc/localtime'? yes ==>输入yes回车确认

2. 开关机相关命令

首先声明一点:
1. 生产环境中服务器十年不关机、重启都是很正常的;
2. 对服务器,谨慎操作重启

关机命令有:shutdown、halt、poweroff、init;
重启命令有:reboot

2.1 关机命令:

1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启

2.2 重启命令:

1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

2.3 关机命令之间的区别和各自用法

2.3.1 shutdown—— 安全的关机命令
shutdown 参数说明:

[-t] 在改变到其它runlevel之前,告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机,只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-n] 不用init而是自己来关机。不鼓励使用这个选项,而且该选项所产生的后果往往不总是你所预期得到的。
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。
[-f] 在重启计算器〔reboot〕时忽略fsck。
[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。

linux系统中只有拥有root权限才可以使用这个命令

想要用这个命令吗?先去获得root权限吧。shutdown执行关机,是送信号给init,要求它改变运行级别,以此来关机。关机或重启实际上是运行级别的调整,所以我们也可以用init直接调整运行级别来进行关机或重启。使用这个命令时,机器立即关机或重启。它也需要root权限。

那么为什么说shutdown命令是安全地将系统关机呢?

实际中有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失使系统处于不稳定的状态。甚至在有的系统中会损坏硬件设备。而在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结,即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的,还有可能是重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。

shutdown执行它的工作是送信号〔signal〕给init程序,要求它改变 runlevel。runlevel 0 被用来停机〔halt〕,runlevel 6 是用来重新激活〔reboot〕系统,而 runlevel 1则是被用来让系统进入管理工作可以进行的状态,这是预设的。假定没有-h也没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作?你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。

2.3.2 halt 最简单的关机命令
用halt命令来关机时,实际调用的是shutdown -h。halt 执行时将杀死应用进程,执行sync系统调用文件系统写操作完成后就会停止内核。

halt 参数说明:

[-n] 防止sync系统调用,它用在用fsck修补根分区之后,以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
[-w] 并不是真正的重启或关机,只是写wtmp〔/var/log/wtmp〕纪录。
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
[-f] 没有调用shutdown而强制关机或重启。
[-i] 关机〔或重启〕前关掉所有的网络接口。
[-p] 该选项为缺省选项。就是关机时调用poweroff。

2.3.3 poweroff 常用的关机命令
对于poweroff,网上说它是halt命令的链接,基本用法和 halt 差不多,这里就不多说了。

2.3.4 init
init是所有进程的祖先,他是Linux系统操作中不可缺少的程序之一。它的进程号始终为1,所以发送TERM信号给init会终止所有的用户进程,守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机,init 1为重启。

2.3.5 reboot 重启命令
reboot的工作过程差不多跟halt一样。不过它是引发主机重启,而halt是关机。它的参数与halt相差不多。

3. 简单命令

3.1 用户登录信息查看命令

whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: 系统当前所有的登录会话及所做的操作

3.2 文本编辑

nano 直接进行编辑;Ctrl+O 保存;
vim
gredit

1.vim
Vim是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,他的作用是建立、编辑、显示文本文件。Vim没有菜单,只有命令。

vim末行模式下,可以输入 :x 就可以保存退出。

Vim的三种工作模式:命令模式、插入模式、编辑模式
vi 【文件名】–>进入命令模式,输入i a o进入插入模式

命令模式:输入wq退出;输入i a o进入插入模式;输入: 进入编辑模式
插入模式:ESC退到命令模式
编辑模式:命令以回车结束运行

插入命令:

image

定位命令:

image

删除命令:

image

复制和剪切命令:

image

替换和取消命令:

image

搜索和搜索替换命令:

image

保存和退出命令:

image

Vim使用技巧:
导入命令执行结果:r !命令
定义快捷键:map 快捷键 触发命令
例:map ^P I#
:map ^B 0x
注:其种Ctrl+v,Ctrl+p产生^P效果,也可以是Ctrl+v+p

3.3 不间断会话窗口——Screen
Screen 语法

screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称> 将指定的screen作业离线。
-h <行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。

常用例子
screen -S yourname # 新建一个叫yourname的session
screen -ls #列出当前所有的session
screen -r yourname #回到yourname这个session
screen -d yourname #远程detach某个session
screen -d -r yourname #结束当前session并回到yourname这个session
screen -wipe #清理已经Dead的会话

3.3 echo——shell 内建方法
echo [选项] [输出内容]
echo 命令非常简单,命令的输出内容如果没有特殊含义,则原内容输出到屏幕;如果输出内容有特殊含义,则输出打印其含义。

1.命令行拓展、被括起来的集合

  • {} #多项式展开;
[dell@Centos7 ~]$ echo "This system's name is $(hostname)"
This system's name is Centos7.sunyi.com
[dell@Centos7 ~]$ echo "i am `whoami`"
i am dell
  • 反引号=命令替换;
ll@Centos7 ~]$ echo file{1,3,5}
file1 file3 file5

命令替换:$()/``

2. echo输出彩色文字

[root@zcwyou ~]# echo -e "\e[1;31mThis is red text\e[0m"
\e[1;31m 将颜色设置为红色 \e[0m 将颜色重新置回
颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

3. 使用echo设置输出的背景色

[root@zcwyou ~]# echo -e "\e[1;42mGreed Background\e[0m"
颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47

4. 使用echo输出闪动的文字

[root@zcwyou ~]# echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"
红色数字处还有其他数字参数:0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐