【N25第一周作業】Linux上命令的使用格式和基礎命令詳解

一、Linux上命令的使用格式

命令行提示符詳解:

用戶通過終端的命令行接口來控制操作系統,登陸后如下:

[root@localhost ~]#
  • root: 當前登錄的用戶

  • @:分隔符

  • localhost: 當前主機的主機名,非完整格式;此處的完整格式為:localhost.localdomain

[root@localhost ~]# hostname 
localhost.localdomain
  • ~:用戶當前所在的目錄(current directory),也稱為工作目錄(working directory),為相對路徑;

[root@localhost sysconfig]# pwd 
/etc/sysconfig
  • #:命令提示符;

    #:管理員賬號,為root; 擁有最高權限,能執行所有操作;
    $:普通用戶,非root用戶;不具有管理權限,不能執行系統管理類操作;

注意:建議使用非管理員賬號登錄;執行管理操作臨時切換至管理員,操作完成即退回;

命令行提示輸出格式在系統中由PS1參數控制,系統默認的設置在/etc/bashrc文件中配置,可以通過echo $PS1 來查看當前設置樣式:

[root@localhost ~]# echo $PS1              #PS1:用戶平時的提示符
[\u@\h \W]\$ 
[root@localhost sysconfig]# echo $PS2       #PS2:第一行沒輸完,等待第二行輸入的提示符
>

提示符的樣式也可以根據自己的喜好來配置,可以直接通過命令行賦值PS1='(\u@\H\d\t)$'來修改提示符,但是為臨時生效,退出重新登錄后恢復之前樣式

[root@localhost sysconfig]# PS1='(\u@\H \d\t)\$' 
(root@localhost.localdomain 六 12月 0309:19:13)#

要想永久生效,需要在全局shell配置文件/etc/bashrc或者當前shell配置文件~/.bashrc中設置,直接在配置文件中另起一行定義PS1即可

# /etc/bashrc 
PS1='(\u@\H \d\t)\$'

下面簡單說說環境下默認的特殊符號所代表的意義:

\d :代表日期,格式為weekday month date,例如:Mon Aug1  
\H:完整的主機名稱。例如:我的機器名稱為:fc4.linux,則這個名稱就是fc4.linux  
\h :僅取主機的第一個名字,如上例,則為fc4,.linux則被省略  
\t :顯示時間為24小時格式,如:HH:MM:SS  
\T :顯示時間為12小時格式  
\A :顯示時間為24小時格式:HH:MM  
\u :當前用戶的賬號名稱  
\v :BASH的版本信息  
\w :完整的工作目錄名稱。家目錄會以 ~代替  
\W :利用basename取得工作目錄名稱,所以只會列出最后一個目錄  
\# :下達的第幾個命令  
\$ :提示字符,如果是root時,提示符為:# ,普通用戶則為:$

我們還可以通過設置PS1變量使提示符成為彩色
在PS1中設置字符序列顏色的格式為:\[\e[F;Bm\]
其中''F''為字體顏色,編號30~37;''B''為背景色,編號40~47
可通過''\e[0m''關閉顏色輸出;特別的,當B為1時,將顯示加亮加粗的文字。

顏色表 
前景  背景  顏色 
30   40   黑色   
31   41   紅色   
32   42   綠色 
33   43   黃色 
34   44   藍色 
35   45   紫紅色 
36   46   青藍色 
37   47   白色 

代碼   意義 
0    OFF 
1    高亮顯示 
4    下劃線 
5    閃爍 
7    反白顯示 
8    不可見

[root@localhost ~]$PS1="\[\e[31m\][\u@\h \w]$\[\e[m\]"

注意:linux的bash對顏色的支持不是很好,使用會出現很多莫名其妙的BUG,建議不要使用

命令格式詳解:

命令的語法通用格式:# COMMAND [OPTIONS] [ARGUMENTS]
COMMAND:

發起一命令:請求內核將某個二進制程序運行為一個進程

 程序 –> 進程

 靜態 –> 動態(有生命周期)

命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件;

多數系統程序文件都存放在:/bin, /sbin, /usr/bin,/usr/sbin,/usr/local/bin, /usr/local/sbin

普通命令:/bin, /usr/bin, /usr/local/bin
管理命令:/sbin, /usr/sbin, /usr/local/sbin

共享庫:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

32bits的庫:/lib, /usr/lib, /usr/local/lib
64bits的庫:/lib64, /usr/lib64, /usr/local/lib64

注意:并非所有的命令都有一個在某目錄與之對應的可執行程序文件

命令必須遵循特定格式規范:exe, msi, ELF(Linux)

命令分為兩類:

由shell程序的自帶的命令:內置命令(builtin)
獨立的可執行程序文件,文件名即命令名:外部命令

shell程序是獨特的程序,負責解析用戶提供的命令
環境變量:
PATH:從哪些路徑中查找用戶鍵入的命令字符串所對應的命令文件
查找次序:自左而右

~]# echo $PATH  
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

查看命令類型:type COMMAND

OPTIONS:指定命令的運行特性

選項有兩種表現形式:

    短選項:-C, 例如-l, -d
      注意:有些命令的選項沒有-
    如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld
    長選項:--word, 例如--help, --human-readable    
      注意:長選項不能合并

注意:有些選項可以帶參數,此稱為選項參數

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

注意:不同的命令的參數,有些命令可同時帶多個參數,多個之間以空白字符分隔

[root@localhost ~]$ls -ld /var /etc  
drwxr-xr-x. 66 root root 4096 12月  3 09:27 /etc 
drwxr-xr-x. 19 root root 4096 11月 23 03:49 /var

二、基礎命令詳解

詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用

ifconfig:查看、配置、啟用、禁用網絡接口命令
注意: 命令執行立即生效,重啟失效,一般需要先配置好配置文件

ifconfig     #查看處于激活狀態的網絡接口 
ifconfig -a  #查看所有配置的網絡接口,不論其是否激活 
ifconfig eth0  #顯示eth0的網卡信息   
ifconfig eth0 down  #關閉eth0網卡 
ifconfig eth0 up    #開啟eth0網卡 
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE  #修改MAC地址   
ifconfig eth0 192.168.1.56 netmask 255.255.255.0  #給eth0網卡配置IP地址和子網掩碼   
ifconfig eth0 mtu 1500  #設置能通過的最大數據包大小,默認一般是1500,此值需要根據磁盤特性來設置,專業存儲可以設置為9000來提高性能
[root@localhost ~]$ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:BC:F4:74  
          inet addr:192.168.175.129  Bcast:192.168.175.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:febc:f474/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1800 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1227 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:177087 (172.9 KiB)  TX bytes:138651 (135.4 KiB)
          Interrupt:19 Base address:0x2000 

[root@localhost ~]$ifconfig eth1 192.168.175.200 netmask 255.255.255.0
[root@localhost ~]$ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:BC:F4:74  
          inet addr:192.168.175.129  Bcast:192.168.175.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:febc:f474/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2030 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1402 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:198479 (193.8 KiB)  TX bytes:159533 (155.7 KiB)
          Interrupt:19 Base address:0x2000 

eth1      Link encap:Ethernet  HWaddr 00:0C:29:BC:F4:7E  
          inet addr:192.168.175.200  Bcast:192.168.175.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:febc:f47e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:398 (398.0 b)
          Interrupt:19 Base address:0x2400 


[root@localhost ~]$ifconfig eth1 down
[root@localhost ~]$ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:BC:F4:74  
          inet addr:192.168.175.129  Bcast:192.168.175.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:febc:f474/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2099 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1458 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:205041 (200.2 KiB)  TX bytes:167129 (163.2 KiB)
          Interrupt:19 Base address:0x2000 


[root@localhost ~]$ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:BC:F4:74  
          inet addr:192.168.175.129  Bcast:192.168.175.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:febc:f474/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2108 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1464 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:205811 (200.9 KiB)  TX bytes:168757 (164.8 KiB)
          Interrupt:19 Base address:0x2000 

eth1      Link encap:Ethernet  HWaddr 00:0C:29:BC:F4:7E  
          inet addr:192.168.175.200  Bcast:192.168.175.255  Mask:255.255.255.0
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)
          Interrupt:19 Base address:0x2400

注意:實驗時要確保你虛擬機有兩塊網卡,沒有的話需要提前在設置中增加一塊

增加別名網卡

[root@localhost ~]$ifconfig eth0:0 192.168.175.201 netmask 255.255.255.0
[root@localhost ~]$ifconfig 
eth0 Link encap:Ethernet HWaddr 00:0C:29:BC:F4:74 
inet addr:192.168.175.129 Bcast:192.168.175.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:febc:f474/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2238 errors:0 dropped:0 overruns:0 frame:0
TX packets:1574 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:218198 (213.0 KiB) TX bytes:181721 (177.4 KiB)
Interrupt:19 Base address:0x2000 

eth0:0 Link encap:Ethernet HWaddr 00:0C:29:BC:F4:74 
inet addr:192.168.175.201 Bcast:192.168.175.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0x2000

增加網卡別名用得比較多,在使用VPN和配置LVS的時候有可能需要配置,但是使用命令行配置只是臨時生效,所以需要在配置文件中配置,在/etc/sysconfig/network-scripts下執行如下操作,切記復制后需要修改DEVICE=eth0:0并注釋掉HWADDR和UUID

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost ~]# cp ifcfg-eth0 ifcfg-eth0:0

[root@localhost network-scripts]# ls
ifcfg-eth0 ifdown-ipv6 ifup ifup-plip ifup-wireless
ifcfg-eth0:0 ifdown-isdn ifup-aliases ifup-plusb init.ipv6-global
ifcfg-lo ifdown-post ifup-bnep ifup-post net.hotplug
ifdown ifdown-ppp ifup-eth ifup-ppp network-functions
ifdown-bnep ifdown-routes ifup-ippp ifup-routes network-functions-ipv6
ifdown-eth ifdown-sit ifup-ipv6 ifup-sit
ifdown-ippp ifdown-tunnel ifup-isdn ifup-tunnel

[root@localhost network-scripts]# cat ifcfg-eth0:0
DEVICE=eth0:0
#HWADDR=00:0C:29:BC:F4:74
TYPE=Ethernet
#UUID=18f970b4-04a3-451d-917f-834c7d10a937
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.175.200
NETMASK=255.255.255.0
#GATEWAY=192.168.175.1
ARPCHECK=no
NETWORKING=yes
DNS1=8.8.8.8

echo:輸出給定字符或者定義的變量
格式: echo [SHORT-OPTION]… [STRING]…

-n: 不進行換行;
-e:讓轉義符生效;

\n:換行
\t:制表符
\b:空格
\r:回車 \f:換頁符
\t:水平制表符 \v:縱向制表符
\c:禁止尾隨的換行符
\a:報警符
\:反斜線
–help 顯示幫助并退出(須單獨運行)
–version 輸出版本信息并退出(須單獨運行)

[root@localhost ~]# echo "hello world"
hello world
[root@localhost ~]# echo -e "hello\nworld"
hello
world
[root@localhost ~]# echo -n "hello world"
hello world[root@localhost ~]# echo -ne "hello\nworld"
hello
world[root@localhost ~]#

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

終端間發消息:

[root@localhost ~]# tty
/dev/pts/0
[root@localhost ~]# who
root tty1 2016-12-03 08:14
root pts/0 2016-12-03 10:38 (192.168.175.1)
root pts/1 2016-12-03 08:30 (192.168.175.1)
[root@localhost ~]# echo "how are you" > /dev/pts/1
[root@localhost ~]#

[root@localhost network-scripts]# tty
/dev/pts/1
[root@localhost network-scripts]# how are you

tty:查看當前的終端設備

  • 物理終端,控制臺:console

  • 虛擬終端:6個,tty
    Ctrl+Alt+F[1-6]切換

  • 圖形終端:
    CentOS 6:Ctrl+Alt+F7
    CentOS 7:在哪個虛擬終端啟動,即位于哪個虛擬終端;

物理終端:/dev/console
虛擬終端:/dev/tty# [1,6]
串行終端:/dev/ttyS#
偽終端:/dev/pts/#

[root@localhost ~]# tty
/dev/pts/0
[root@localhost ~]# who
root tty1 2016-12-03 08:14
root pts/0 2016-12-03 10:38 (192.168.175.1)
root pts/1 2016-12-03 08:30 (192.168.175.1)
[root@localhost ~]# w
12:54:54 up 7:39, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 08:14 4:40m 0.04s 0.04s -bash
root pts/0 192.168.175.1 10:38 0.00s 0.15s 0.06s w
root pts/1 192.168.175.1 08:30 4:09 0.05s 0.05s -bash

options:

-s, –silent, –quiet 什么也不顯示,只返回退出狀態值
–help 顯示此幫助信息并退出
–version 顯示版本信息并退出

可以按終端號踢出登錄用戶(一般在中毒時可以踢出可疑終端) :pkill -9 -t pts/1

startx:啟動圖形界面(一般需要安裝圖形界面所依賴的包)
在某一虛擬終端接口運行命令:startx &
&:后臺運行

export:顯示和修改環境變量值

-f 帶邊環境變量為函數名稱
-n 刪除指定的環境變量
-p 列出所有的環境變量

[root@localhost ~]# aaa=bbb #設置一個變量
[root@localhost ~]# export aaa #加入環境變量
[root@localhost ~]# env |grep aa #查看環境變量
aaa=bbb
[root@localhost ~]# export -n aaa #刪除環境變量
[root@localhost ~]# env |grep aa #查看
[root@localhost ~]# export PATH=$PATH:/usr/local/bin #將/usr/local/bin加入環境變量中

[root@localhost ~]# export #設置當前shell語言為英文
[root@localhost ~]# echo $LANG
en

pwd:顯示當前路徑

-L, --logical
   顯示當前目錄
-P, --physical
   顯示當前目錄的實際物理地址
--help  幫助
--version  版本

history:顯示歷史命令

n 顯示n個最近的記錄
-a 添加記錄
-r 讀取記錄,但不會添加內容記錄
-w 覆蓋原有的history 文件
-c 清除記錄
-d<編號>[n] 刪除指定n條記錄
-n<文件> 讀取指定文件
-r<文件> 讀取文件但不記錄
-w<文件> 覆蓋原有文件

調用命令歷史列表中的命令:

!#:再一次執行歷史列表中的第#條命令;
!!:再一次執行上一條命令;
!STRING:再一次執行命令歷史列表中最近一個以STRING開頭的命令;
調用上一條命令的最后一個參數:
快捷鍵:ESC, . 按esc,放開,按.

shutdown:關機或重啟服務器
shutdown 以一種安全的方式關閉系統。所有登陸用戶都可以看到關機信息提示,并且 login (1) 將被阻塞??梢灾付⒖剃P機,也可以指定系統在一定的延時后關機。所有進程都將接收到 SIGTERM 信號。這可以使 vi (1) 等程序有時間將處于編輯狀態的文件進行存儲,郵件和新聞程序進程則可以將所有緩沖池內的數據進行適當的清除等等。 shutdown 通過通知 init 進程,要求它改換運行級別來實現。運行級別 0 用來關閉系統,運行級別 6 用來重啟系統,運行級別 1 用來使系統進入執行系統管理任務狀態,如果沒有給出 -h 或 -r 標志時,這是 shutdown 命令的默認工作狀態。具體關機或重啟所執行的操作請查閱 /etc/inittab 文件中相應的運行級別欄。

選項 OPTIONS

-a:使用 /etc/shutdown.allow 來驗證身份。
-t sec:通知 init(8) 在轉換到其它運行級別前,發送警告 (warning) 信號后延時 (sec) 秒數后再發送關閉 (kill) 信號。
-k:并非真正關機,只向所有人顯示警告信息。
-r:reboot重啟。
-h:halt停機。
-n:[DEPRECATED(不應再使用)]不調用init(8)程序進行關機操作,而由自己進行。不建議用戶使用這種關機方式,它的結果一般也不是你希望的那樣。
-f:重啟時跳過磁盤檢測。
-F:重啟時強制磁盤檢測。
-c:cancel取消運行中的shutdown進程。不可能為此選項指定time參數,但你可以在命令行輸入一條解釋消息來向所有用戶說明。(一般的shutdown指令可以用按“+”號來進行中斷)
time:關機時間。
warning-message:發送給所有用戶的消息。
-f:標志意味著 `快速重啟'。這將創建一個咨詢 (advisory) 文件 /fastboot ,此文件在系統重啟時會被檢測到。啟動腳本rc會檢測是否存在這樣的文件,如果有,就不會再運行 fsck(1),因為系統是以正常方式關閉的。這之后,啟動進程會刪除 /fastboot。
-F:標志意味著 `強制 fsck'。這將創建一個咨詢 (advisory) 文件 /forcefsck,此文件在系統重啟時會被檢測到。啟動腳本rc會檢測是否存在這個文件,如果有,就運行 fsck(1)并且加上一個特殊的`force'標志,以使得即使正常卸載的文件系統也被檢查。這之后,啟動進程會刪除 /forcefsck。
-n 標志導致 shutdown 不調用 init 程序進行關機,而是自己關閉所有運行中的進程。shutdown 接下來會關閉配額 (quota),記賬 (accounting) 和交換分區,卸載所有文件系統。

time 參數的格式可以有很多種。首先,可以是 hh:mm 格式的絕對時間,其中 hh 指的是小時(一到二位數),mm 指的是分鐘(二位數)。第二種是 +m 格式,其中 m 指的是等待的分鐘數。 now 是 +0 的別名。
如果 shutdown 在調用時使用了延時,它將自動創建一個咨詢 (advisory) 文件 /etc/nologin ,作用是禁止 login(1) 允許新用戶登陸,除非 shutdown 在向 init 發信號前意外中止 (就是說,它被取消或出了什么問題)。它會在調用 init 改變運行級之前刪除這個文件。
[root@linux ~]# shutdown –h now #關機 

[root@linux ~]# shutdown –h 23:00 #晚上11點關機

[root@linux ~]# shutdown –r now #重啟

[root@linux ~]# shutdown –r +30 'reboot now' #30分鐘后重啟,并且提示reboot now


reboot:重啟

-f  強制重新開機,不調用shutdown指令的功能。
-i  在重開機之前,先關閉所有網絡界面。
-n  重開機之前不檢查是否有未結束的程序。
-w 僅做測試,并不真的將系統重新開機,只會把重開機的數據寫入/var/log目錄下的wtmp記錄文件。

hwclock:查詢或設置硬件時鐘
用法: hwclock [function] [options…]
function:

-r | –show 讀取并打印硬件時鐘
-s | –hctosys 將硬件時鐘同步到系統時鐘
-w | –systohc 將系統時鐘同步到硬件時鐘
–set –date=<時間日期> 使用給定的–date來設置RTC時間

options:

-u | –utc 使用utc時間
–localtime 使用本地時間

date:顯示當前時間或設置系統時間

date – 打印或設置系統日期和時間

[root@localhost ~]# date      #顯示日期和時間 
2016年 12月 03日 星期六 14:04:56 CST

根據指定格式顯示當前時間或設置系統時間.

-d, --date=STRING
顯示由 STRING 指定的時間, 而不是當前時間 
-f, --file=DATEFILE
顯示 DATEFILE 中每一行指定的時間, 如同將 DATEFILE 中的每行作為 --date 的參數一樣 

-I, --iso-8601[=TIMESPEC] 按照 ISO-8601 的日期/時間格式輸出時間. 

TIMESPEC=`date' (或者不指定時)僅輸出日期,等于 `hours', `minutes', 或`seconds' 時按照指定精度輸出日期及時間. 

-r, --reference=FILE
顯示 FILE 的最后修改時間 
-R, --rfc-822
根據 RFC-822 指定格式輸出日期 
-s, --set=STRING
根據 STRING 設置時間 
-u, --utc, --universal
顯示或設置全球時間(格林威治時間) 
--help
顯示本幫助文件并退出 
--version
顯示版本信息并退出 

格式 FORMAT 控制著輸出格式. 僅當選項指定為全球時間時本格式才有效。 分別解釋如下:

%%
文本的 % 
%a
當前區域的星期幾的簡寫 (Sun..Sat) 
%A
當前區域的星期幾的全稱 (不同長度) (Sunday..Saturday) 
%b
當前區域的月份的簡寫 (Jan..Dec) 
%B
當前區域的月份的全稱(變長) (January..December) 
%c
當前區域的日期和時間 (Sat Nov 04 12:02:33 EST 1989) 
%d
(月份中的)幾號(用兩位表示) (01..31) 
%D
日期(按照 月/日期/年 格式顯示) (mm/dd/yy) 
%e
(月份中的)幾號(去零表示) ( 1..31) 
%h
同 %b 
%H
小時(按 24 小時制顯示,用兩位表示) (00..23) 
%I
小時(按 12 小時制顯示,用兩位表示) (01..12) 
%j
(一年中的)第幾天(用三位表示) (001..366) 
%k
小時(按 24 小時制顯示,去零顯示) ( 0..23) 
%l
小時(按 12 小時制顯示,去零表示) ( 1..12) 
%m
月份(用兩位表示) (01..12) 
%M
分鐘數(用兩位表示) (00..59) 
%n
換行 
%p
當前時間是上午 AM 還是下午 PM 
%r
時間,按 12 小時制顯示 (hh:mm:ss [A/P]M) 
%s
從 1970年1月1日0點0分0秒到現在歷經的秒數 (GNU擴充) 
%S
秒數(用兩位表示)(00..60) 
%t
水平方向的 tab 制表符 
%T
時間,按 24 小時制顯示(hh:mm:ss) 
%U
(一年中的)第幾個星期,以星期天作為一周的開始(用兩位表示) (00..53) 
%V
(一年中的)第幾個星期,以星期一作為一周的開始(用兩位表示) (01..52) 
%w
用數字表示星期幾 (0..6); 0 代表星期天 
%W
(一年中的)第幾個星期,以星期一作為一周的開始(用兩位表示) (00..53) 
%x
按照 (mm/dd/yy) 格式顯示當前日期 
%X
按照 (%H:%M:%S) 格式顯示當前時間 
%y
年的后兩位數字 (00..99) 
%Y
年(用 4 位表示) (1970...) 
%z
按照 RFC-822 中指定的數字時區顯示(如, -0500) (為非標準擴充) 
%Z
時區(例如, EDT (美國東部時區)), 如果不能決定是哪個時區則為空 

默認情況下,用 0 填充數據的空缺部分. GNU 的 date 命令能分辨在 `%'和數字指示之間的以下修改.
`-' (連接號) 不進行填充 `_' (下劃線) 用空格進行填充
[root@localhost ~]# date -s "16:43:00" #設置時間
2016年 12月 03日 星期六 16:43:00 CST

# date -s #設置當前時間,只有root權限才能設置,其他只能查看。
# date -s 20080523 #設置成20080523,這樣會把具體時間設置成空00:00:00
# date -s 01:01:01 #設置具體時間,不會對日期做更改
# date -s “01:01:01 2008-05-23″ #這樣可以設置全部時間
# date -s “01:01:01 20080523″ #這樣可以設置全部時間
# date -s “2008-05-23 01:01:01″ #這樣可以設置全部時間
# date -s “20080523 01:01:01″ #這樣可以設置全部時間
[root@localhost ~]# date -d "20161203" +%s #時間轉時間戳
1480694400

[root@localhost ~]# date -d '1970-01-01 UTC 1480694400 seconds' #時間戳轉時間
2016年 12月 03日 星期六 00:00:00 CST
# date +%Y%m%d #顯示前天年月日
# date +%Y%m%d --date="+1 day" #顯示前一天的日期
# date +%Y%m%d --date="-1 day" #顯示后一天的日期
# date +%Y%m%d --date="-1 month" #顯示上一月的日期
# date +%Y%m%d --date="+1 month" #顯示下一月的日期
# date +%Y%m%d --date="-1 year" #顯示前一年的日期
# date +%Y%m%d --date="+1 year" #顯示下一年的日期

原創文章,作者:sheng,如若轉載,請注明出處:http://www.www58058.com/62185

(0)
shengsheng
上一篇 2016-12-03
下一篇 2016-12-03

相關推薦

  • week4:grep命令正則表達式的應用

    1.復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限;     ~]# cp -r /etc/skel/ /home/tuser1 |chmod -R g-rwx,o-rwx /home/tuser1 2.編輯/etc/group文件,添加組hadoop; &…

    Linux干貨 2016-11-23
  • N22-草稿

    testing

    Linux干貨 2016-08-08
  • Linux中正則表達式及find指令的使用

    1、顯示當前系統上root、Fedora或user1用戶的默認shell [root@centos6 ~]# grep -E "^\<(root|fedora|user1)\>" /etc/passwd root:x:0:0:root:/root:/bin/bash fedor…

    Linux干貨 2016-10-24
  • Linux基礎之文件查找壓縮

    為何學習本章節,可以設想一下,在未來工作中面對大量用戶時,想要找到同一類型屬性的用戶文件時,需要一個工具可以快速準確的定位到所尋找的文件,那就是locate和find。   ******************************************************* 重點: ? ? 1.德摩根定律 ????非(P且Q) = (非P…

    2016-08-22
  • select與case組合循環

    select與case: 格式: select variable in list do 循環體命令 done 例1:     #!/bin/bash PS3="what do you want: " select i in a b c d         #在例2中省略…

    Linux干貨 2016-08-22
  • 第十一周:OPENSSL和DNS

    詳見我的51cto博客:http://afterdawn.blog.51cto.com/

    Linux干貨 2016-12-09
欧美性久久久久