2-4 Linux基本命令

作者: BeautifulSoulpy | 来源:发表于2019-06-20 16:49 被阅读162次
    这个世界上任何值得做的事情都不会很简单

    目录

    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 消隐

    相关文章

      网友评论

        本文标题:2-4 Linux基本命令

        本文链接:https://www.haomeiwen.com/subject/ctjjqctx.html