linux命令格式和常用命令

Linxu命令使用格式

~]#COMMAND OPTIONS ARGUMENTS

  • CMMMAND:发起一命令:请求内核将某个二进制程序运行为一个进程;

  • OPTIONS:指定命令的运行特性;

   短选项:-C, 例如-l, -d

     注意:有些命令的选项没有-;

     如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld

   长选项:--word, 例如--help, --human-readable

     注意:长选项不能合并;

  • ARGUMENTS:命令的作用对象;命令对什么生效;

   注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;

   例如:ls -ld /var /etc

linux常用命令

ifconfig

  ifconfig被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

语法

    ifconfig (参数)  

实例

  • ifconfig -a :显示所有网卡配置

    [root@localhost ~]# ifconfig -a
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.27  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::954a:d872:f506:678b  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:52:81:1a  txqueuelen 1000  (Ethernet)
            RX packets 4813  bytes 543783 (531.0 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 2712  bytes 589816 (575.9 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1  (Local Loopback)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
  • ifconfig -s 显示在要摘要信息

    [root@localhost ~]# ifconfig -s
    Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
    ens33     1500     4819      0      0 0          2715      0      0      0 BMRU
    lo       65536        0      0      0 0             0      0      0      0 LRU
    
  • ifconfig ens33 192.168.1.27 netmask 255.255.255.0 broadcast 192.168.1.255 设置网络参数

    [root@localhost ~]# ifconfig ens33 192.168.1.27 netmask 255.255.255.0 broadcast 192.168.1.255
    [root@localhost ~]# ifconfig
    ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.27  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::954a:d872:f506:678b  prefixlen 64  scopeid 0x20<link>
            ether 00:0c:29:52:81:1a  txqueuelen 1000  (Ethernet)
            RX packets 5442  bytes 614542 (600.1 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 3077  bytes 649542 (634.3 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1  (Local Loopback)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

echo

echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。

语法

    echo(选项)(参数)

选项

    -e:激活转义字符。

 使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

  • \a 发出警告声;
  • \b 删除前一个字符;
  • \c 最后不加上换行符号;
  • \f 换行但光标仍旧停留在原来的位置;
  • \n 换行且光标移至行首;
  • \r 光标移至行首,但不换行;
  • \t 插入tab;
  • \v 与\f相同;
  • \ 插入\字符;
  • \nnn 插入nnn(八进制)所代表的ASCII字符;

实例

  • echo “hello world” 显示普通字符串

    [root@localhost ~]# echo “hello world”
    “hello world”
    
  • echo -n “hello world” :-n 不换行

    [root@localhost ~]# echo -n “hello world”
    “hello world”[root@localhost ~]# 
    
  • echo -e "hello \nworld" : \n 换行

    [root@localhost ~]# echo  -e "hello \nworld"
    hello 
    world
    
  • echo -e "hello \tworld" :\t 水平制表符

    [root@localhost ~]# echo  -e "hello \tworld"
    hello   world
    
  • echo -e "hello \bworld" \b 退格

    [root@localhost ~]# echo  -e "hello \bworld"
    helloworld
    

tty

tty命令用于显示终端机连接标准输入设备的文件名称。

语法

    tty(选项)

选项

  • -s或--silent或--quiet 不显示任何信息,只回传状态代码。
  • --help 在线帮助。
  • --version 显示版本信息。

实例

  • 显示当前终端

    [root@localhost ~]# tty
    /dev/pts/2
    

startx

startx命令用来启动X Window,实际上启动X Window的程序为xinit。

语法

    startx(参数)

参数

  • 客户端及选项:X客户端及选项;
  • 服务器及选项:X服务器及选项。

实例

  • startx:启动图形界面

    startx
    
  • startx -w:强行启动图像界面

    startx -w
    

export

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量

语法

    export [-fnp][变量名称]=[变量设置值]

参数

  • -f  代表[变量名称]中为函数名称。
  • -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
  • -p  列出所有的shell赋予程序的环境变量。

实例

  • export -p :列出当前所有的环境变量

    [root@localhost ~]#  export -p
    declare -x HISTCONTROL="ignoredups"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="localhost.localdomain"
    declare -x LANG="en_US.UTF-8"
    declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
    declare -x LOGNAME="root"
    declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
    declare -x MAIL="/var/spool/mail/root"
    declare -x OLDPWD
    declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
    declare -x PWD="/root"
    declare -x SELINUX_LEVEL_REQUESTED=""
    declare -x SELINUX_ROLE_REQUESTED=""
    declare -x SELINUX_USE_CURRENT_RANGE=""
    declare -x SHELL="/bin/bash"
    declare -x SHLVL="1"
    declare -x SSH_CLIENT="192.168.1.48 51409 22"
    declare -x SSH_CONNECTION="192.168.1.48 51409 192.168.1.27 22"
    declare -x SSH_TTY="/dev/pts/2"
    declare -x TERM="vt100"
    declare -x USER="root"
    declare -x XDG_RUNTIME_DIR="/run/user/0"
    declare -x XDG_SESSION_ID="12"
    
  • export MYENV=18 :自定义变量

    [root@localhost ~]# export MYENV=18
    [root@localhost ~]# echo $MYENV
    18
    [root@localhost ~]# export -p
    declare -x HISTCONTROL="ignoredups"
    declare -x HISTSIZE="1000"
    declare -x HOME="/root"
    declare -x HOSTNAME="localhost.localdomain"
    declare -x LANG="en_US.UTF-8"
    declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
    declare -x LOGNAME="root"
    declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
    declare -x MAIL="/var/spool/mail/root"
    declare -x MYENV="18"
    declare -x OLDPWD
    declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
    declare -x PWD="/root"
    declare -x SELINUX_LEVEL_REQUESTED=""
    declare -x SELINUX_ROLE_REQUESTED=""
    declare -x SELINUX_USE_CURRENT_RANGE=""
    declare -x SHELL="/bin/bash"
    declare -x SHLVL="1"
    declare -x SSH_CLIENT="192.168.1.48 51409 22"
    declare -x SSH_CONNECTION="192.168.1.48 51409 192.168.1.27 22"
    declare -x SSH_TTY="/dev/pts/2"
    declare -x TERM="vt100"
    declare -x USER="root"
    declare -x XDG_RUNTIME_DIR="/run/user/0"
    declare -x XDG_SESSION_ID="12"
    

pwd

pwd命令用于显示工作目录。 执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。

语法

    pwd(选项)

参数

  • -L:--logical,显示当前的路径,有连接文件时,直接显示连接文件的路径,(不加参数时默认此方式)
  • -p:--physical,显示当前的路径,有连接文件时,不使用连接路径,直接显示连接文件所指向的文件

实例

    [root@localhost ~]# cd /etc/init.d
    [root@localhost init.d]# pwd
    /etc/init.d
    [root@localhost init.d]# pwd -P
    /etc/rc.d/init.d
    [root@localhost init.d]# pwd -L
    /etc/init.d
    [root@localhost init.d]# 

history

history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
系统默认保留1000条。

语法

    history(选项)(参数)

选项

  • -c:清空当前历史命令;
  • -a:将历史命令缓冲区中命令写入历史命令文件中;
  • -r:将历史命令文件中的命令读入当前历史命令缓冲区;
  • -w:将当前历史命令缓冲区命令写入历史命令文件中。

参数

n:打印最近的n条历史命令。

实例

  • 通过环境变量,定制history的功能

  HISTSIZE:shell进程可保留的命令历史的条数

    [root@localhost ~]# echo $HISTSIZE
    1000
    [root@localhost ~]# export HISTSIZE=2000
    [root@localhost ~]# echo $HISTSIZE
    2000

  HISTFILE :持久保存历史命令的文件:/root/.bash_history

    [root@localhost ~]# echo $HISTFILE
    /root/.bash_history
    [root@localhost ~]# head -10 /root/.bash_history
    ifconfig
    ping www.163.com
    ifconfig
    vi /etc/sysconfig/network-scripts/
    vi /etc/sysconfig/
    vi /etc/sysconfig/network-scripts/ifcfg-ens33 
    ifconfig
    ifup ens33·
    ifconfig
    ping www.163.com

  HISTFILESIZE:命令历史文件的大小

    [root@localhost ~]# echo $HISTFILESIZE
    1000

  环境变量HISTCONTROL:控制命令历史记录的方式
   ignoredups:忽略重复的命令;(默认)
   ignorespace:忽略以空白字符开头的命令;
   ignoreboth:以上两者同时生效;

    [root@localhost /]# echo $HISTCONTROL
    ignoredups
  • history [ n ] n为数字,列出最近的n条命令

    [root@localhost ~]# history 10
      620  echo $HISTFILE
      621  cat -n /root/.bash_history 
      622  cat -100 /root/.bash_history 
      623  cat 100 /root/.bash_history 
      624* cat -n  /root/.bash_history  
      625  echo $HISTFILE
      626  head -10 /root/.bash_history
      627  head -n 10 /root/.bash_history
      628  echo $HISTFILESIZE
      629  history 10
    
  • history - c 将目前shell中的所有history命令消除;

    [root@localhost ~]# history -c
    [root@localhost ~]# history 
        1  history 
    
  • history -d [n]:删除第n条历史记录

    [root@localhost ~]# history 
        1  history 
    [root@localhost ~]# history -d 1
    [root@localhost ~]# history 
        1  history -d 1
        2  history 
    
  • history -w : 把shell历史列表中的历史命令覆盖至历史文件中

    [root@localhost ~]# history -w
    [root@localhost ~]# cat -n /root/.bash_history 
         1  history -d 1
         2  history 
         3  cat -n /root/.bash_history 
         4  history -w
    
  • 调用命令历史列表中的命令

  !#:再一次执行历史列表中的第#条命令;

    [root@localhost ~]# history 
        1  history -d 1
        2  history 
        3  cat -n /root/.bash_history 
        4  history -w
        5  cat -n /root/.bash_history 
        6  history 
        7  history -w
        8  cat -n /root/.bash_history 
        9  history 
    [root@localhost ~]# !5
    cat -n /root/.bash_history 
         1  history -d 1
         2  history 
         3  cat -n /root/.bash_history 
         4  history -w
         5  cat -n /root/.bash_history 
         6  history 
         7  history -w

  !!:再一次执行上一条命令

    [root@localhost /]# ls
    bin   dev  home  inventory2.py  lib    media  opt   root  sbin  sys  usr
    boot  etc  host  inventory.py   lib64  mnt    proc  run   srv   tmp  var
    [root@localhost /]# !!
    ls
    bin   dev  home  inventory2.py  lib    media  opt   root  sbin  sys  usr
    boot  etc  host  inventory.py   lib64  mnt    proc  run   srv   tmp  var

  !STRING:再一次执行命令历史列表中最近一个以STRING开头的命令

    [root@localhost /]# history 
        1  history -d 1
        2  history 
        3  cat -n /root/.bash_history 
        4  history -w
        5  cat -n /root/.bash_history 
        6  history 
        7  history -w
        8  cat -n /root/.bash_history 
        9  history 
       10  cat -n /root/.bash_history 
       11  ls
       12  cd /
       13  ls
       14  history 
    [root@localhost /]# !l
    ls
    bin   dev  home  inventory2.py  lib    media  opt   root  sbin  sys  usr
    boot  etc  host  inventory.py   lib64  mnt    proc  run   srv   tmp  var

shutdown

shutdown命令用来系统关机命令。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。

语法

    shutdown(选项)(参数)

选项

  • -c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;
  • -f:重新启动时不进行磁盘检测(fsck);
  • -F:重新启动时进行磁盘检测(fsck);
  • -h:将系统关机,相当于--poweroff;
  • -k:只是送出信息给所有用户,但不会实际关机;
  • -n:不调用init程序进行关机,而由shutdown自己进行,强行关机;
  • -r:shutdown之后重新启动;
  • -t<秒数>:送出警告信息和删除信息之间要延迟多少秒

参数

  • [时间]:设置多久时间后执行shutdown指令;
  • [警告信息]:要传送给所有登入用户的信息。

实例

  • 指定现在立即关机

    shutdown -n now
    
  • 给所有登录用户发送信息

    shutdown -k now "this is a test wall message!"
    
  • 指定5分钟后关机,同时送出告警信息给登入用户

    shutdown +5 "system will shutdown after 5 minutes"
    

poweroff

poweroff命令用来关闭计算机操作系统并且切断系统电源。

语法

    poweroff(选项)

选项

  • -n:关闭操作系统时不执行sync操作;
  • -w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
  • -d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
  • -f:强制关闭操作系统;
  • -i:关闭操作系统之前关闭所有的网络接口;
  • -h:关闭操作系统之前将系统中所有的硬件设置为备用模式。

实例

如果确认系统中已经没有用户存在且所有数据都已保存,需要立即关闭系统,可以使用poweroff命令。

使用poweroff立即关闭系统:

    poweroff

reboot

reboot命令用来重新启动正在运行的Linux操作系统。

语法

    reboot(选项)

选项

  • -d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;
  • -f:强制重新开机,不调用shutdown指令的功能;
  • -i:在重开机之前,先关闭所有网络界面;
  • -n:重开机之前不检查是否有未结束的程序;
  • -w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

实例

重新开机

    reboot

hwclock

hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

语法

    hwclock(选项)

选项

  • --adjust:hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟;
  • --debug:显示hwclock执行时详细的信息;
  • --directisa:hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟;
  • --hctosys:将系统时钟调整为与目前的硬件时钟一致;
  • --set --date=<日期与时间>:设定硬件时钟;
  • --show:显示硬件时钟的时间与日期;
  • --systohc:将硬件时钟调整为与目前的系统时钟一致;
  • --test:仅测试程序,而不会实际更改硬件时钟;
  • --utc:若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作;
  • --version:显示版本信息。

实例

  • 查看当前的硬件日期和时间

    [root@localhost ~]# hwclock
    Mon 05 Mar 2018 09:37:37 AM CST  -0.397475 seconds
    
  • hwclock --hctosys //用硬件时钟同步系统时钟

    [root@localhost ~]# hwclock
    Mon 05 Mar 2018 01:29:20 PM CST  -0.444051 seconds
    [root@localhost ~]# date
    Sun Mar  5 12:12:24 CST 2017
    [root@localhost ~]# hwclock --hctosys
    [root@localhost ~]# date
    Mon Mar  5 13:29:36 CST 2018
    
  • hwclock --systohc //用系统时钟同步硬件时钟

    hwclock --systohc
    

date

date命令是显示或设置系统时间与日期。

很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

语法

    date(选项)(参数)

选项

  • -d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
  • -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
  • -u:显示GMT;
  • --help:在线帮助;
  • --version:显示版本信息。

参数

<+时间日期格式>:指定显示时使用的日期时间格式。

日期格式字符串列表

    %H 小时,24小时制(00~23)
    %I 小时,12小时制(01~12)
    %k 小时,24小时制(0~23)
    %l 小时,12小时制(1~12)
    %M 分钟(00~59)
    %p 显示出AM或PM
    %r 显示时间,12小时制(hh:mm:ss %p)
    %s 从1970年1月1日00:00:00到目前经历的秒数
    %S 显示秒(00~59)
    %T 显示时间,24小时制(hh:mm:ss)
    %X 显示时间的格式(%H:%M:%S)
    %Z 显示时区,日期域(CST)
    %a 星期的简称(Sun~Sat)
    %A 星期的全称(Sunday~Saturday)
    %h,%b 月的简称(Jan~Dec)
    %B 月的全称(January~December)
    %c 日期和时间(Tue Nov 20 14:12:58 2012)
    %d 一个月的第几天(01~31)
    %x,%D 日期(mm/dd/yy)
    %j 一年的第几天(001~366)
    %m 月份(01~12)
    %w 一个星期的第几天(0代表星期天)
    %W 一年的第几个星期(00~53,星期一为第一天)
    %y 年的最后两个数字(1999则是99)
    %Y 显示完整的年

实例

  • 不带参数输出

    [root@localhost ~]# date
    Mon Mar  5 09:44:58 CST 2018
    
  • 格式化输出

    [root@localhost ~]# date +"%y-%m-%d"
    18-03-05
    
  • 输出昨天日期

    [root@localhost ~]# date -d "1 day ago" +"%y-%m-%d"
    18-03-04
    
  • 普通格式转换

    [root@localhost ~]# date -d "2018-3-4" +"%Y-%m-%d %H:%M:%S"
    2018-03-04 00:00:00
    
  • apache格式转换:

    [root@localhost ~]# date -d "Mar 4, 2018 1:15:37 PM" +"%Y-%m-%d %H:%M:%S"
    2018-03-04 13:15:37
    
  • 格式转换后时间游走

    [root@localhost ~]# date -d "Mar 4, 2018 1:15:37 PM 3 year ago" +"%Y-%m-%d %H:%M:%S"
    2015-03-04 13:15:37
    
  • 传说中的 1234567890 秒

    [root@localhost ~]# date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%M:%S"
    2009-02-13 23:31:30
    
  • 加减操作

  date +%Y%m%d //显示前天年月日

    [root@localhost ~]# date +%Y%m%d 
    20180305

  date -d "+1 day" +%Y%m%d //显示前一天的日期

    [root@localhost ~]# date -d "+1 day" +%Y%m%d
    20180306

  date -d "-1 day" +%Y%m%d //显示后一天的日期

    [root@localhost ~]# date -d "-1 day" +%Y%m%d
    20180304

  date -d "-1 month" +%Y%m%d //显示上一月的日期

    [root@localhost ~]# date -d "-1 month" +%Y%m%d 
    20180205

  date -d "+1 month" +%Y%m%d //显示下一月的日期

    [root@localhost ~]# date -d "+1 month" +%Y%m%d 
    20180405

  date -d "-1 year" +%Y%m%d //显示前一年的日期

    [root@localhost ~]# date -d "-1 year" +%Y%m%d
    20170305

  date -d "+1 year" +%Y%m%d //显示下一年的日期

    [root@localhost ~]# date -d "+1 year" +%Y%m%d
    20190305
  • 设定时间

  date -s //设置当前时间,只有root权限才能设置,其他只能查看
  date -s 20120523 //设置成20120523,这样会把具体时间设置成空00:00:00
  date -s 01:01:01 //设置具体时间,不会对日期做更改
  date -s "01:01:01 2012-05-23" //这样可以设置全部时间
  date -s "01:01:01 20120523" //这样可以设置全部时间
  date -s "2012-05-23 01:01:01" //这样可以设置全部时间
  date -s "20120523 01:01:01" //这样可以设置全部时间

    [root@localhost ~]# date -s "2018-3-5 12:12:12"
    Mon Mar  5 12:12:12 CST 2018

猜你喜欢

转载自blog.csdn.net/eighteenxu/article/details/79684002