• Linux系统上的命令使用方法


    许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。

     格式:

    ifconfig [网络设备] [参数]

     功能:

    ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。

     参数:

    up 启动指定网络设备/网卡。

    down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。

    arp 设置指定网卡是否支持ARP协议。

    -promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包

    -allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包

    -a 显示全部接口信息

    -s 显示摘要信息(类似于 netstat -i)

    add 给指定网卡配置IPv6地址

    del 删除指定网卡的IPv6地址

    <硬件地址> 配置网卡最大的传输单元

    mtu<字节数> 设置网卡的最大传输单元 (bytes)

    netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。

    tunel 建立隧道

    dstaddr 设定一个远端地址,建立点对点通信

    -broadcast<地址> 为指定网卡设置广播协议

    -pointtopoint<地址> 为网卡设置点对点通讯协议

    multicast 为网卡设置组播标志

    address 为网卡设置IPv4地址

    txqueuelen<长度> 为网卡设置传输列队的长度

    4.使用实例:

    实例1:显示网络设备信息(激活状态的)

    命令:

    ifconfig

    输出:

    [root@localhost ~]# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:50:56:BF:26:20 
              inet addr:192.168.120.204  Bcast:192.168.120.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0
              TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:596390239 (568.7 MiB)  TX bytes:2886956 (2.7 MiB)

    lo        Link encap:Local Loopback 
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:68 errors:0 dropped:0 overruns:0 frame:0
              TX packets:68 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:2856 (2.7 KiB)  TX bytes:2856 (2.7 KiB)


    echo:
     语 法:echo [-ne][字符串]或 echo [--help][--version]   
    补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号。   
      参 数:-n 不要在最后自动换行  
             -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:   
             a 发出警告声;   
              删除前一个字符;   
             c 最后不加上换行符号;   
             f 换行但光标仍旧停留在原来的位置;   
             换行且光标移至行首;   
             光标移至行首,但不换行;   
      插入tab;   
      v 与f相同;   
       \ 插入字符;   
      nn 插入nnn(八进制)所代表的ASCII字符;   
      --help 显示帮助   
      --version 显示版本信息   
        每一个shell支持的echo指令可能都不太相同。   
      -n 不输出最后的   
      -e解释转义字符  
      -E不解释转义字符  
    示例:echo "i am a boy" // 执行后会打印 i am a boy   i am a boy

    tty:
    [功能]

    打印连接到标准输入的终端的文件名。

    [描述]

    命令项:

    -s, --silent, --quiet: 什么也不打印,只是返回退出状态码。

    --help: 打印帮助信息。

    --version: 打印版本信息并退出。

    返回的状态码:

    0 表示标准输入是一个终端。

    1 表示标准输入不是一个终端。

    2 表示给定的参数是不正确的参数。

    3 表示发生了写错误。

    [举例]

    *查看当前的标准终端文件描述符号:

    [quietheart@lv-k etc]$ tty

    /dev/pts/6

    这里,输入tty之后,输出"/dev/pts/6"就是当前连接的终端对应的文件描述符号,我们可以通过向这个文件,这样会看到当前终端会输出我们写入的数据,例如:

    [quietheart@lv-k etc]$ echo "mytest" >/dev/pts/6

    mytest

    可见,向/dev/pts/6文件写入的内容,直接显示到我们的终端上面了。如果我在机器上面开了多个终端,然后我在别的终端中输入上面的echo命令,那么将会看到对应"/dev/pts/6"的终端上面会显示相应的字符了。

    *运行tty什么也不输出,然后查看其退出码:
    [quietheart@lv-k etc]$ tty -s
    [quietheart@lv-k etc]$ echo $?
    0
    这里,使用shell的命令"echo $?"来显示上一条命令的退出状态码。状态码的含义如下:
    0 表示标准输入是一个终端。
    1 表示标准输入不是一个终端。
    2 表示给定的参数是不正确的参数。
    3 表示发生了写错误。

    [其它]

    *基本概念:

    1,tty(终端设备的统称):

    tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。

    2,pty(虚拟终端):

    如果我们远程telnet到主机或使用xterm时,也需要一个终端交互,这就是虚拟终端pty(pseudo-tty)

    3,pts/ptmx(pts/ptmx结合使用,进而实现pty):

    pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。


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

    startx(参数)参数

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

    要在工作站上或 X 终端上启动 X 会话,请输入:
    startx要在工作站上强制启动 X 会话,请输入: 
    startx -w要为 X 终端启动 X 会话,并注销用户的 telnet 会话,请输入:

    startx; kill -9 $$要使用 .xinitrc 脚本启动 X 会话,请输入:
    startx -x .xinitrc要使用 mwm 窗口管理器启动 X 会话,请输入:
    startx -m mwm


    export:
    Linux export命令用于设置或显示环境变量。

    在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。

    语法
    export [-fnp][变量名称]=[变量设置值]参数说明:

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

    # export -p //列出当前的环境变量值
    declare -x HOME=“/root“
    declare -x LANG=“zh_CN.UTF-8“
    declare -x LANGUAGE=“zh_CN:zh“
    declare -x LESSCLOSE=“/usr/bin/lesspipe %s %s“
    declare -x LESSOPEN=“| /usr/bin/lesspipe %s“
    declare -x LOGNAME=“root“
    declare -x LS_COLORS=““
    declare -x MAIL=“/var/mail/root“
    declare -x OLDPWD
    declare -x PATH=“/opt/toolchains/arm920t-eabi/bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“
    declare -x PWD=“/root“
    declare -x SHELL=“/bin/bash“
    declare -x SHLVL=“1“
    declare -x SPEECHD_PORT=“6560“
    declare -x SSH_CLIENT=“192.168.1.65 1674 22“
    declare -x SSH_CONNECTION=“192.168.1.65 1674 192.168.1.3 22“
    declare -x SSH_TTY=“/dev/pts/2“
    declare -x TERM=“XTERM“
    declare -x USER=“root“
    declare -x XDG_SESSION_COOKIE=“93b5d3d03e032c0cf892a4474bebda9f-1273864738.954257-340206484“

    定义环境变量

    # export MYENV //定义环境变量
    # export -p //列出当前的环境变量
    declare -x HOME=“/root“
    declare -x LANG=“zh_CN.UTF-8“
    declare -x LANGUAGE=“zh_CN:zh“
    declare -x LESSCLOSE=“/usr/bin/lesspipe %s %s“
    declare -x LESSOPEN=“| /usr/bin/lesspipe %s“
    declare -x LOGNAME=“root“
    declare -x LS_COLORS=““
    declare -x MAIL=“/var/mail/root“
    declare -x MYENV
    declare -x OLDPWD
    declare -x PATH=“/opt/toolchains/arm920t-eabi/bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“
    declare -x PWD=“/root“
    declare -x SHELL=“/bin/bash“
    declare -x SHLVL=“1“
    declare -x SPEECHD_PORT=“6560“
    declare -x SSH_CLIENT=“192.168.1.65 1674 22“
    declare -x SSH_CONNECTION=“192.168.1.65 1674 192.168.1.3 22“
    declare -x SSH_TTY=“/dev/pts/2“
    declare -x TERM=“XTERM“
    declare -x USER=“root“
    declare -x XDG_SESSION_COOKIE=“93b5d3d03e032c0cf892a4474bebda9f-1273864738.954257-340206484“定义环境变量赋值

    # export MYENV=7 //定义环境变量并赋值
    # export -p
    declare -x HOME=“/root“
    declare -x LANG=“zh_CN.UTF-8“
    declare -x LANGUAGE=“zh_CN:zh“
    declare -x LESSCLOSE=“/usr/bin/lesspipe %s %s“
    declare -x LESSOPEN=“| /usr/bin/lesspipe %s“
    declare -x LOGNAME=“root“
    declare -x LS_COLORS=““
    declare -x MAIL=“/var/mail/root“
    declare -x MYENV=“7“
    declare -x OLDPWD
    declare -x PATH=“/opt/toolchains/arm920t-eabi/bin:/opt/toolchains/arm920t-eabi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games“
    declare -x PWD=“/root“
    declare -x SHELL=“/bin/bash“
    declare -x SHLVL=“1“
    declare -x SPEECHD_PORT=“6560“
    declare -x SSH_CLIENT=“192.168.1.65 1674 22“
    declare -x SSH_CONNECTION=“192.168.1.65 1674 192.168.1.3 22“
    declare -x SSH_TTY=“/dev/pts/2“
    declare -x TERM=“XTERM“
    declare -x USER=“root“
    declare -x XDG_SESSION_COOKIE=“93b5d3d03e032c0cf892a4474bebda9f-1273864738.954257-340206484“


    pwd:
    Linux中用 pwd 命令来查看”当前工作目录“的完整路径。简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。
    在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。

    1.命令格式:

     pwd [选项]

    2.命令功能:

     查看”当前工作目录“的完整路径

    3.常用参数:
    一般情况下不带任何参数
    如果目录是链接时:
    格式:pwd -P  显示出实际路径,而非使用连接(link)路径。
    4.常用实例:

           实例1:用 pwd 命令查看默认工作目录的完整路径

    命令:
    pwd
    输出:
    [root@localhost ~]# pwd
    /root
    [root@localhost ~]#
     
    实例2:使用 pwd 命令查看指定文件夹
    命令:
    pwd
    输出:
    [root@localhost ~]# cd /opt/soft/
    [root@localhost soft]# pwd
    /opt/soft
    [root@localhost soft]#
     
     实例三:目录连接链接时,pwd -P  显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径

    命令:
    pwd -P
    输出:
    [root@localhost soft]# 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]#


    history:
    如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍 history 命令的15个用法。

    1. 使用 HISTTIMEFORMAT 显示时间戳

    当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:

    # export HISTTIMEFORMAT='%F %T '
    # history | more
    1 2008-08-05 19:02:39 service network restart
    2 2008-08-05 19:02:39 exit
    3 2008-08-05 19:02:39 id
    4 2008-08-05 19:02:39 cat /etc/redhat-release


    2. 使用 Ctrl+R 搜索历史

    Ctrl+R 是我经常使用的一个快捷键。此快捷键让你对命令历史进行搜索,对于想要重复执行某个命令的时候非常有用。当找到命令后,通常再按回车键就可以执行该命令。如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键。

    # [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt]
    (reverse-i-search)`red‘: cat /etc/redhat-release
    [Note: Press enter when you see your command, which will execute the command from the history]
    # cat /etc/redhat-release
    Fedora release 9 (Sulphur)

    3. 快速重复执行上一条命令

    有 4 种方法可以重复执行上一条命令:
    1. 使用上方向键,并回车执行。
    2. 按 !! 并回车执行。
    3. 输入 !-1 并回车执行。
    4. 按 Ctrl+P 并回车执行。

    4. 从命令历史中执行一个指定的命令

    在下面的例子中,如果你想重复执行第 4 条命令,那么可以执行 !4:

    # history | more
    1 service network restart
    2 exit
    3 id
    4 cat /etc/redhat-release
    # !4
    cat /etc/redhat-release
    Fedora release 9 (Sulphur)

    5. 通过指定关键字来执行以前的命令

    在下面的例子,输入 !ps 并回车,将执行以 ps 打头的命令:

    # !ps
    ps aux | grep yp
    root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind
    root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp

    6. 使用 HISTSIZE 控制历史命令记录的总行数

    将下面两行内容追加到 .bash_profile 文件并重新登录 bash shell,命令历史的记录数将变成 450 条:

    # vi ~/.bash_profile
    HISTSIZE=450
    HISTFILESIZE=450

    7. 使用 HISTFILE 更改历史文件名称

    默认情况下,命令历史存储在 ~/.bash_history 文件中。

    下载该文件可以去root目录下,用sz命令

    #sz .bash_history

    添加下列内容到 .bash_profile 文件并重新登录 bash shell,将使用 .commandline_warrior 来存储命令历史:

    # vi ~/.bash_profile
    HISTFILE=/root/.commandline_warrior

    8. 使用 HISTCONTROL 从命令历史中剔除连续重复的条目

    在下面的例子中,pwd 命令被连续执行了三次。执行 history 后你会看到三条重复的条目。要剔除这些重复的条目,你可以将 HISTCONTROL 设置为 ignoredups:

    # pwd
    # pwd
    # pwd
    # history | tail -4
    44 pwd
    45 pwd
    46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above]
    47 history | tail -4
    # export HISTCONTROL=ignoredups
    # pwd
    # pwd
    # pwd
    # history | tail -3
    56 export HISTCONTROL=ignoredups
    57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]
    58 history | tail -4

    9. 使用 HISTCONTROL 清除整个命令历史中的重复条目

    上例中的 ignoredups 只能剔除连续的重复条目。要清除整个命令历史中的重复条目,可以将 HISTCONTROL 设置成 erasedups:

    # export HISTCONTROL=erasedups
    # pwd
    # service httpd stop
    # history | tail -3
    38 pwd
    39 service httpd stop
    40 history | tail -3
    # ls -ltr
    # service httpd stop
    # history | tail -6
    35 export HISTCONTROL=erasedups
    36 pwd
    37 history | tail -3
    38 ls -ltr
    39 service httpd stop
    [Note that the previous service httpd stop after pwd got erased]
    40 history | tail -6

    10. 使用 HISTCONTROL 强制 history 不记住特定的命令

    将 HISTCONTROL 设置为 ignorespace,并在不想被记住的命令前面输入一个空格:

    # export HISTCONTROL=ignorespace # ls -ltr # pwd # service httpd stop [Note that there is a
    space at the beginning of service, to ignore this command from history] # history | tail -3 67 ls
    -ltr 68 pwd 69 history | tail -3

    11. 使用 -c 选项清除所有的命令历史

    如果你想清除所有的命令历史,可以执行:

    # history -c

    12. 命令替换

    在下面的例子里,!!:$ 将为当前的命令获得上一条命令的参数:

    # ls anaconda-ks.cfg
    anaconda-ks.cfg
    # vi !!:$
    vi anaconda-ks.cfg

    下例中,!^ 从上一条命令获得第一项参数:

    # cp anaconda-ks.cfg anaconda-ks.cfg.bak
    anaconda-ks.cfg
    # vi -5 !^
    vi anaconda-ks.cfg

    13. 为特定的命令替换指定的参数

    在下面的例子,!cp:2 从命令历史中搜索以 cp 开头的命令,并获取它的第二项参数:

    # cp ~/longname.txt /really/a/very/long/path/long-filename.txt
    # ls -l !cp:2
    ls -l /really/a/very/long/path/long-filename.txt

    下例里,!cp:$ 获取 cp 命令的最后一项参数:

    # ls -l !cp:$
    ls -l /really/a/very/long/path/long-filename.txt

    14. 使用 HISTSIZE 禁用 history

    如果你想禁用 history,可以将 HISTSIZE 设置为 0:

    # export HISTSIZE=0
    # history
    # [Note that history did not display anything]

    15. 使用 HISTIGNORE 忽略历史中的特定命令

    下面的例子,将忽略 pwd、ls、ls -ltr 等命令:

    # export HISTIGNORE=”pwd:ls:ls -ltr:”
    # pwd
    # ls
    # ls -ltr
    # service httpd stop
    # history | tail -3
    79 export HISTIGNORE=”pwd:ls:ls -ltr:”
    80 service httpd stop
    81 history
    [Note that history did not record pwd, ls and ls -ltr]


    shutdown:
    如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍 history 命令的15个用法。

    1. 使用 HISTTIMEFORMAT 显示时间戳

    当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:

    # export HISTTIMEFORMAT='%F %T '
    # history | more
    1 2008-08-05 19:02:39 service network restart
    2 2008-08-05 19:02:39 exit
    3 2008-08-05 19:02:39 id
    4 2008-08-05 19:02:39 cat /etc/redhat-release


    2. 使用 Ctrl+R 搜索历史

    Ctrl+R 是我经常使用的一个快捷键。此快捷键让你对命令历史进行搜索,对于想要重复执行某个命令的时候非常有用。当找到命令后,通常再按回车键就可以执行该命令。如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键。

    # [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt]
    (reverse-i-search)`red‘: cat /etc/redhat-release
    [Note: Press enter when you see your command, which will execute the command from the history]
    # cat /etc/redhat-release
    Fedora release 9 (Sulphur)

    3. 快速重复执行上一条命令

    有 4 种方法可以重复执行上一条命令:
    1. 使用上方向键,并回车执行。
    2. 按 !! 并回车执行。
    3. 输入 !-1 并回车执行。
    4. 按 Ctrl+P 并回车执行。

    4. 从命令历史中执行一个指定的命令

    在下面的例子中,如果你想重复执行第 4 条命令,那么可以执行 !4:

    # history | more
    1 service network restart
    2 exit
    3 id
    4 cat /etc/redhat-release
    # !4
    cat /etc/redhat-release
    Fedora release 9 (Sulphur)

    5. 通过指定关键字来执行以前的命令

    在下面的例子,输入 !ps 并回车,将执行以 ps 打头的命令:

    # !ps
    ps aux | grep yp
    root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind
    root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp

    6. 使用 HISTSIZE 控制历史命令记录的总行数

    将下面两行内容追加到 .bash_profile 文件并重新登录 bash shell,命令历史的记录数将变成 450 条:

    # vi ~/.bash_profile
    HISTSIZE=450
    HISTFILESIZE=450

    7. 使用 HISTFILE 更改历史文件名称

    默认情况下,命令历史存储在 ~/.bash_history 文件中。

    下载该文件可以去root目录下,用sz命令

    #sz .bash_history

    添加下列内容到 .bash_profile 文件并重新登录 bash shell,将使用 .commandline_warrior 来存储命令历史:

    # vi ~/.bash_profile
    HISTFILE=/root/.commandline_warrior

    8. 使用 HISTCONTROL 从命令历史中剔除连续重复的条目

    在下面的例子中,pwd 命令被连续执行了三次。执行 history 后你会看到三条重复的条目。要剔除这些重复的条目,你可以将 HISTCONTROL 设置为 ignoredups:

    # pwd
    # pwd
    # pwd
    # history | tail -4
    44 pwd
    45 pwd
    46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above]
    47 history | tail -4
    # export HISTCONTROL=ignoredups
    # pwd
    # pwd
    # pwd
    # history | tail -3
    56 export HISTCONTROL=ignoredups
    57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]
    58 history | tail -4

    9. 使用 HISTCONTROL 清除整个命令历史中的重复条目

    上例中的 ignoredups 只能剔除连续的重复条目。要清除整个命令历史中的重复条目,可以将 HISTCONTROL 设置成 erasedups:

    # export HISTCONTROL=erasedups
    # pwd
    # service httpd stop
    # history | tail -3
    38 pwd
    39 service httpd stop
    40 history | tail -3
    # ls -ltr
    # service httpd stop
    # history | tail -6
    35 export HISTCONTROL=erasedups
    36 pwd
    37 history | tail -3
    38 ls -ltr
    39 service httpd stop
    [Note that the previous service httpd stop after pwd got erased]
    40 history | tail -6

    10. 使用 HISTCONTROL 强制 history 不记住特定的命令

    将 HISTCONTROL 设置为 ignorespace,并在不想被记住的命令前面输入一个空格:

    # export HISTCONTROL=ignorespace # ls -ltr # pwd # service httpd stop [Note that there is a
    space at the beginning of service, to ignore this command from history] # history | tail -3 67 ls
    -ltr 68 pwd 69 history | tail -3

    11. 使用 -c 选项清除所有的命令历史

    如果你想清除所有的命令历史,可以执行:

    # history -c

    12. 命令替换

    在下面的例子里,!!:$ 将为当前的命令获得上一条命令的参数:

    # ls anaconda-ks.cfg
    anaconda-ks.cfg
    # vi !!:$
    vi anaconda-ks.cfg

    下例中,!^ 从上一条命令获得第一项参数:

    # cp anaconda-ks.cfg anaconda-ks.cfg.bak
    anaconda-ks.cfg
    # vi -5 !^
    vi anaconda-ks.cfg

    13. 为特定的命令替换指定的参数

    在下面的例子,!cp:2 从命令历史中搜索以 cp 开头的命令,并获取它的第二项参数:

    # cp ~/longname.txt /really/a/very/long/path/long-filename.txt
    # ls -l !cp:2
    ls -l /really/a/very/long/path/long-filename.txt

    下例里,!cp:$ 获取 cp 命令的最后一项参数:

    # ls -l !cp:$
    ls -l /really/a/very/long/path/long-filename.txt

    14. 使用 HISTSIZE 禁用 history

    如果你想禁用 history,可以将 HISTSIZE 设置为 0:

    # export HISTSIZE=0
    # history
    # [Note that history did not display anything]

    15. 使用 HISTIGNORE 忽略历史中的特定命令

    下面的例子,将忽略 pwd、ls、ls -ltr 等命令:

    # export HISTIGNORE=”pwd:ls:ls -ltr:”
    # pwd
    # ls
    # ls -ltr
    # service httpd stop
    # history | tail -3
    79 export HISTIGNORE=”pwd:ls:ls -ltr:”
    80 service httpd stop
    81 history
    [Note that history did not record pwd, ls and ls -ltr]


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

    语法

    poweroff(选项)选项

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

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

    使用poweroff立即关闭系统:

    poweroff


    reboot:
    【语法】reboot[选项]
    【详解】reboot指令用于重启该计算机。它的作用和shutdown -r now是一样的。

    选项 相应功能
    -n 重启前保留当前数据。
    -f 强制重启计算机。
    -w 模拟重启,并将数据写入到“/var/log/wtmp”日志文件中。
    -d 重启,但不写入日志。
    -i 重启计算机前关闭网络。

    例子:
    直接重启启动计算机:

    直接在SSH中输入以下指令即可
    reboot
    执行成功后系统会提示The system is going down for reboot NOW!

    hwclock:
    功能说明:显示与设定硬件时钟。

    语  法:hwclock [--adjust][--debug][--directisa][--hctosys][--show][--systohc][--test]
    [--utc][--version][--set --date=<日期与时间>]

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

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

     使用示例
     hwclock命令与clock命令是一个东西
    [root@linuxso.com~]# type -a hwclock
    hwclock is /sbin/hwclock
    hwclock is /usr/sbin/hwclock
    [root@linuxso.com~]# ls -l /sbin/hwclock /usr/sbin/hwclock
    -rwxr-xr-x 1 root root 34096 2010-01-07 /sbin/hwclock
    lrwxrwxrwx 1 root root    18 08-13 00:14 /usr/sbin/hwclock -> ../../sbin/hwclock

    [root@linuxso.com~]# type -a clock
    clock is /sbin/clock
    [root@linuxso.com~]# ls -l /sbin/clock
    lrwxrwxrwx 1 root root 7 08-13 00:14 /sbin/clock -> hwclock
    [root@linuxso.com~]#

    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)实例

    格式化输出:

    date +"%Y-%m-%d"
    2009-12-07输出昨天日期:

    date -d "1 day ago" +"%Y-%m-%d"
    2012-11-192秒后输出:

    date -d "2 second" +"%Y-%m-%d %H:%M.%S"
    2012-11-20 14:21.31传说中的 1234567890 秒:

    date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"
    2009-02-13 23:02:30普通转格式:

    date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"
    2009/12/12 00:00.00apache格式转换:

    date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
    2009-12-05 00:00.37格式转换后时间游走:

    date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
    2007-12-05 00:00.37加减操作:

    date +%Y%m%d                   //显示前天年月日
    date -d "+1 day" +%Y%m%d       //显示前一天的日期
    date -d "-1 day" +%Y%m%d       //显示后一天的日期
    date -d "-1 month" +%Y%m%d     //显示上一月的日期
    date -d "+1 month" +%Y%m%d     //显示下一月的日期
    date -d "-1 year" +%Y%m%d      //显示前一年的日期
    date -d "+1 year" +%Y%m%d      //显示下一年的日期设定时间:

    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"    //这样可以设置全部时间有时需要检查一组命令花费的时间,举例:

    #!/bin/bash

    start=$(date +%s)
    nmap man.linuxde.net &> /dev/null

    end=$(date +%s)
    difference=$(( end - start ))
    echo $difference seconds.

  • 相关阅读:
    喜欢这效果
    jQuery.Validate 使用例子
    网站安全要略谨记
    asp.net发送邮件
    URL参数的加号等特殊字符的处理
    sqlhelper
    Python单元测试框架
    基于Selenium2与Python自动化测试环境搭建
    Robot Framework和Selenium 2 Grid集成指南
    APP性能测试(CPU)
  • 原文地址:https://www.cnblogs.com/otosis/p/5914095.html
Copyright © 2020-2023  润新知