【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) 将被阻塞。可以指定立刻关机,也可以指定系统在一定的延时后关机。所有进程都将接收到 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.178linux.com/62185

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

相关推荐

  • Linux 2.6.39-rc3的一个插曲

    2011年4月12日,Linux 2.6.39-rc3发布了,Linus Torvalds写了一个发布邮件,其中包含了一个长长的为这个版本做过贡献的人员名单,这个名单中有很多看上去应该是中国人的名字,我挺为他们感到骄傲的(不知道你是否还记得以前本站的”Linux是由谁写的“)。 不过,没过一会,发现了一个bug,经过大家的调查(2.6.38版没有发现这个问题…

    Linux干货 2016-06-09
  • 数组、变量及bash的配置

    数组、变量及bash的配置 变量:存储单个元素的内存空间 数组:存储多个元素的内存空间,相当于多个变量集合 索引:编号从0开始,属于数值索引,索引为自定义格式即为关联数组(bash4.0之后支持) bash数组支持稀疏格式 数组的声明 普通数组declare –a 关联数组 declare –A 普通数组可以不声明直接使用,关联数组必须先声明再使用 数组的赋…

    Linux干货 2016-08-26
  • lvm基本应用

    前言 一种技术要知其然,还要知其所以然 lvm简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上…

    Linux干货 2016-05-21
  • Linux 的发展史

    前言 l  免费源码开放 l  安全性高,漏洞修补快 l  多任务、多使用者 l  多平台支持 l  设备要求低,不耗资源 ……      看到这一系列的优点,在IT人的脑海里只会浮出一个名字Linux. 如果还不够直观的话,有这么一个数据, 显示前500系统中的485…

    Linux干货 2016-10-14
  • 软件包管理

      软件运行环境       API:Application Programming Interface         POSIX :Portable OS      码程序源代码 –>预处理 –> 译…

    Linux干货 2016-08-29
  • Samba服务

    一 服务端配置 1 安装所需软件 [root@centos7 ~]# yum install samba samba-common -y samba主要提供SMB服务所需的各项服务程序、相关的文件及其他和Samba相关的设置等 samba-common提供服务端和客户端都会用的的数据,包括主配置文件、语法检查等 2 添加Samba用户 添加smb1、smb2…

    Linux干货 2017-06-13