【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)
上一篇 2016-12-03 16:40
下一篇 2016-12-03 17:42

相关推荐

  • 安装包管理

       软件包管理 软件的运行和编译 ABI 由于window和linux不兼容 linux是ELF window 是PE 对应的内核解析方式不同,可以用虚拟化 API 只程序与程序的公用的接口,相互调用方式 程序源代码 –>预处理–>编译–>汇编–>链接 预处理只会引…

    Linux干货 2017-04-24
  • linux命令速记技巧

    linux命令速记技巧 linux命令有一定的命名规则,一个正常的coder在编码的过程中都会考虑命名的语义化,开发者对函数的命名一定也尽量遵循这个规律.了解目录所对应的英文全称有助于自己的记忆,理解记忆获得知识的留存率要远大于死记硬背.如果英文基础太差,小编建议先学好英文基本功再来学习这些命令. 命令的中文对照 命令 英文全称 中文释义 ls list 列…

    Linux干货 2017-03-25
  • rpm包管理(二)

    查询查询库文件包查询[select-options][query-options]licdR常用的查询用法:卸载:二进制文件的恢复包效验使用rpm命令导入公钥(KEY文件)验证rpm包来源(光盘)的来源及完整性检查包安装后生成的文件,是否发生过变动RPM包管理器的数据库如果某个rpm相关内容被删除如果rpm命令的包被删除了信息库被删除了删除/usr/bin下…

    Linux干货 2016-09-19
  • nfs

    NFS 服务 : Network File system 网络文件系统效果: 好像在本机硬盘一样原理: 当用户去访问 映射成本地系统 // 原理 挂载属性: vsftpd 是应用程序,(内核支持) nfs 是一个文件系统应用: 局域网(最多用于) — 依赖网络 应用层 app httpd 80 vsftpd 传输层 tcp/ipinternet层…

    Linux干货 2018-02-05
  • btrfs管理和应用

    一、btrfs概念        在btrfs中存在三种类型的数据,data, metadata和system。它们表示:        DATA           数据块。       &nbsp…

    系统运维 2016-04-12
  • Linux 文件系统权限

    一、简述权限  文件系统的权限管理机制的建立,约束了用户对数据的操作。 1、对系统安全而言  管理员的操作权限非常大,足以破坏系统,权限机制将管理员与普通用户之间区分开,防止系统被随意破坏。 2、对用户而言  Linux是一个多用户的操作系统,不同用户间为了防止其他人破坏数据或访问数据,文件系统的权限管理是非常必要的。 二、文件…

    Linux干货 2016-08-04