决定了shell将到哪些目录中寻找命令或程序,决定

作者: 操作系统  发布:2019-10-07

shell环境:

  shell:命令解释器,是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行。

  bash:是GNU 计划中重要的工具软件之一,目前也是 Linux 标准的shell  ,与sh兼容

    echo $PATH  显示当前使用的shell

    cat /etc/shells  显示系统使用的所以shell

  PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。

     echo $PATH  查看PATH环境变量的值

linux基本命令及使用方法,linux使用方法

Linux命令

linux命令的分类:

         内部命令:属于shell解释器的一部分

         外部命令:独立于shell解释器之外的程序

shell环境:

  shell:命令解释器,是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行。

  bash:是GNU 计划中重要的工具软件之一,目前也是 Linux 标准的shell  ,与sh兼容

    echo $PATH  显示当前使用的shell

    cat /etc/shells  显示系统使用的所以shell

  PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。

     echo $PATH  查看PATH环境变量的值

命令的通用格式:

         命令字 [选项] [参数]

                   长选项:例如“ls -a”

                   短选项:例如“ls --help”

                   多个短选项可合并使用,例如“ls -alh”

                   长选项不能合并,只能分开

                   参数:命令的对象,如文件、目录名等

linux命令的分类:

         内部命令:属于shell解释器的一部分

         外部命令:独立于shell解释器之外的程序

图片 1

查看命令的类型:

type命令:type [选项] [参数]

                   -p 如果给出的指令为外部指令,则显示其绝对路径。

                   -a 在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。

                   -t 输出“file”、“alias”或者“builtin”,分别表示给定的命令为“外部指令”、“命令别名”或者“内部指令”。

                   [root@localhost ~]# type cd

                    cd is a shell builtin                    #cd 是一个shell内部命令

                   [root@localhost ~]# type ifconfig

                    ifconfig is /sbin/ifconfig         #ifconfig是一个外部命令

命令的通用格式:

         命令字 [选项] [参数]

                   长选项:例如“ls -a”

                   短选项:例如“ls --help”

                   多个短选项可合并使用,例如“ls -alh”

                   长选项不能合并,只能分开

                   参数:命令的对象,如文件、目录名等

图片 2

查看命令的位置:

which命令:which 可执行文件名

                   -n 指定文件名长度指定的长度必须大于或等于所有文件中最长的文件名

                   -p 与-n参数相同但此处的包括了文件的路径

                   -a 将PATH目录中可以找到指令均列出不止第一个而已

                   -w 指定输出时栏位的宽度

                  -V 显示版本信息

[root@bogon ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@bogon ~]# which ip
/usr/sbin/ip
[root@bogon ~]#

whereis命令:whereis [选项] 文件名

                   -b 定位可执行文件。

                   -m 定位帮助文件。

                   -s 定位源代码文件。

                   -u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

                   -B 指定搜索可执行文件的路径。

                   -M 指定搜索帮助文件的路径。

                   -S 指定搜索源代码文件的路径。

[root@bogon ~]# whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz
[root@bogon ~]# whereis -b cd
cd: /usr/bin/cd

查看命令的类型:

type命令:type [选项] [参数]

                   -p 如果给出的指令为外部指令,则显示其绝对路径。

                   -a 在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。

                   -t 输出“file”、“alias”或者“builtin”,分别表示给定的命令为“外部指令”、“命令别名”或者“内部指令”。

                   [[email protected] ~]# type cd

                    cd is a shell builtin                    #cd 是一个shell内部命令

                   [[email protected] ~]# type ifconfig

                    ifconfig is /sbin/ifconfig         #ifconfig是一个外部命令

(命令的选项说明对命令的要求,

命令别名:

         #alias NAME='VALUE'

         仅对当前用户:~/.bashrc

         对所有用户有效:/etc/bashrc

         撤销别名:unalias

[root@bogon ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias netconf='vim /etc/sysconfig/network-scripts/ifcfg-eno16777728'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

查看命令的位置:

which命令:which 可执行文件名

                   -n 指定文件名长度指定的长度必须大于或等于所有文件中最长的文件名

                   -p 与-n参数相同但此处的包括了文件的路径

                   -a 将PATH目录中可以找到指令均列出不止第一个而已

                   -w 指定输出时栏位的宽度

                  -V 显示版本信息

[[email protected] ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[[email protected] ~]# which ip
/usr/sbin/ip
[[email protected] ~]#

whereis命令:whereis [选项] 文件名

                   -b 定位可执行文件。

                   -m 定位帮助文件。

                   -s 定位源代码文件。

                   -u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

                   -B 指定搜索可执行文件的路径。

                   -M 指定搜索帮助文件的路径。

                   -S 指定搜索源代码文件的路径。

[[email protected] ~]# whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz
[[email protected] ~]# whereis -b cd
cd: /usr/bin/cd

命令的参数是命令操作的对象,

命令的补全:

         用户给定的字符串只有一条惟一对应的命令,直接补全,否则再次Tab会给出列表

         路径补全:Tab如果唯一则直接补全,否则再次Tab给出列表

命令别名:

         #alias NAME='VALUE'

         仅对当前用户:~/.bashrc

         对所有用户有效:/etc/bashrc

         撤销别名:unalias

 

[[email protected] ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias netconf='vim /etc/sysconfig/network-scripts/ifcfg-eno16777728'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

 

选项和参数可有可无,即选项和参数并非必须。)

命令的历史:

命令的补全:

         用户给定的字符串只有一条惟一对应的命令,直接补全,否则再次Tab会给出列表

         路径补全:Tab如果唯一则直接补全,否则再次Tab给出列表

ifconfig

历史文件:~/.bash_history

history命令:显示曾经执行过的命令

                   -c:  清空命令历史

                   -d:  删除历史中指定的命令

                   #:  显示最近的# 条历史

                   -a:  追加本次会话新执行的命令历史列表至历史文件

                   -n:  读历史文件中未读过的行到历史列表

                   -r:  读历史文件附加到历史列表

                   -w:  保存历史列表到指定的历史文件

                   -p:  展开历史参数成多个行,但不存在历史列表中

                   -s:  展开历史参数成一行,附加在历史列表后

命令的历史:

ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring

命令历史相关变量:

          HISTSIZE :命令历史记录的条数;

          HISTFILE :指定历史文件,默认为~/.bash_history;

          HISTFILESIZE :命令历史文件记录历史的条数;

          HISTTIMEFORMAT=“%F %T“ 显示时间

          HISTIGNORE=“str1:str2:… “  忽略string1,string2

历史文件:~/.bash_history

history命令:显示曾经执行过的命令

                   -c:  清空命令历史

                   -d:  删除历史中指定的命令

                   #:  显示最近的# 条历史

                   -a:  追加本次会话新执行的命令历史列表至历史文件

                   -n:  读历史文件中未读过的行到历史列表

                   -r:  读历史文件附加到历史列表

                   -w:  保存历史列表到指定的历史文件

                   -p:  展开历史参数成多个行,但不存在历史列表中

                   -s:  展开历史参数成一行,附加在历史列表后

图片 3

命令行历史快捷键

         上下键:可浏览之前使用过的命令

         ctrl+p:重复前一个命令

         !字符串: 重复前一个以“字符串”开头的命令

         !num: 按照history 命令输出中的序号重复对应命令

         !?:字符串: 重复前一个包含abc的命令

         !-n : 重复n

         strl -r:从命令历史中搜索命令

         esc . :调用上一个命令中最后一个参数

         !$:调用上一个命令中最后一个参数

         !^:调用上一个命令中的第一个参数

         !*:调用上一个命令中的全部参数

         !n:调用上一个命令中的第n个参数   

命令历史相关变量:

          HISTSIZE :命令历史记录的条数;

          HISTFILE :指定历史文件,默认为~/.bash_history;

          HISTFILESIZE :命令历史文件记录历史的条数;

          HISTTIMEFORMAT=“%F %T“ 显示时间

          HISTIGNORE=“str1:str2:… “  忽略string1,string2

echo

命令的帮助:

         help命令:

                   用法1:help 内部命令字

                   用法2:命令字 --help          #使用于大多数外部命令 

         man命令:提供命令帮助的文件

             手册页存放在/usr/share/man

                   man 命令的配置文件:/etc/man.config | man_db.conf

                   man命令操作方法:使用less命令实现

                            Space:  向文件尾翻屏

                            b, ^B:  向文件首部翻屏

                            d, ^D:  向文件尾部翻半屏

                            u, ^U:  向文件首部翻半屏

                            RETURN:  向文件尾部翻一行

                            y :向文件首部翻一行

                      q:  退出

                            # :跳转至第#行 行

                            1G: 回到文件首部

                            G:直接到文件尾部

                            /KEYWORD:字符串搜索 n下一个匹配到的字符串 N上一个

                   man章节:

                       1 使用者在shell中可以操作的指令或可执行档

                            2 系統核心可呼叫的函数与工具等

                            3 一些常用的函数(function)与函数库(library),大部分是C的函数库(libc)

                            4 装置档案的说明,通常在/dev下的档案

                            5 设定档或者是某些档案的格式

                            6 游戏(games)

                            7 惯例与协定等,例如Linux档案系统、网络协定、ASCII code等等的說明

                            8 系統管理員可用的管理指令

                            9 跟kernel有关的文件

                   SYNOPSIS 摘要 :

                       [] :可选内容

                            <>:  必选内容

                            a|b :二选一

                            ...:  同一内容可出现多次

命令行历史快捷键

         上下键:可浏览之前使用过的命令

         ctrl+p:重复前一个命令

         !字符串: 重复前一个以“字符串”开头的命令

         !num: 按照history 命令输出中的序号重复对应命令

         !?:字符串: 重复前一个包含abc的命令

         !-n : 重复n

         strl -r:从命令历史中搜索命令

         esc . :调用上一个命令中最后一个参数

         !$:调用上一个命令中最后一个参数

         !^:调用上一个命令中的第一个参数

         !*:调用上一个命令中的全部参数

         !n:调用上一个命令中的第n个参数   

echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

红帽知识库和官方在线文档:

        

        

        

命令的帮助:

         help命令:

                   用法1:help 内部命令字

                   用法2:命令字 --help          #使用于大多数外部命令 

         man命令:提供命令帮助的文件

             手册页存放在/usr/share/man

                   man 命令的配置文件:/etc/man.config | man_db.conf

                   man命令操作方法:使用less命令实现

                            Space:  向文件尾翻屏

                            b, ^B:  向文件首部翻屏

                            d, ^D:  向文件尾部翻半屏

                            u, ^U:  向文件首部翻半屏

                            RETURN:  向文件尾部翻一行

                            y :向文件首部翻一行

                      q:  退出

                            # :跳转至第#行 行

                            1G: 回到文件首部

                            G:直接到文件尾部

                            /KEYWORD:字符串搜索 n下一个匹配到的字符串 N上一个

                   man章节:

                       1 使用者在shell中可以操作的指令或可执行档

                            2 系統核心可呼叫的函数与工具等

                            3 一些常用的函数(function)与函数库(library),大部分是C的函数库(libc)

                            4 装置档案的说明,通常在/dev下的档案

                            5 设定档或者是某些档案的格式

                            6 游戏(games)

                            7 惯例与协定等,例如Linux档案系统、网络协定、ASCII code等等的說明

                            8 系統管理員可用的管理指令

                            9 跟kernel有关的文件

                   SYNOPSIS 摘要 :

                       [] :可选内容

                            <>:  必选内容

                            a|b :二选一

                            ...:  同一内容可出现多次

该命令的一般格式为: echo [ -n ] 字符串

Linux 的两种时钟:

系统 时钟:由Linux 内核通过CPU 的工作频率进行的;

硬件 时钟:主板

hwclock ,clock:  显示硬件时钟

-s, --hctosys  以硬件时钟为准,校正系统时钟

-w, --systohc  以系统时钟为准,校正硬件时钟

红帽知识库和官方在线文档:

        

        

        

其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

 时间管理:

date命令:按格式显示或设置时间

         data [选项]... [格式]

         date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

                   -d, –date=STRING 显示STRING指定的时间

                   -f, –file=DATEFILE 类似–date参数显示DATEFILE文件中的每行时间

                   -ITIMESPEC, –iso-8601[=TIMESPEC] 以ISO 8601 格式显示日期/时间。TIMESPEC为”date”(只显示日期)、”hours”、”minutes”、”senconds”(显示时间精度)之一,默认为”date”。

                   -r, –reference=FILE 显示文件的最后修改时间

                   -R, –rfc-2822 以RFC-2822兼容日期格式显示时间

                   -s, –set=STRING 设置时间为STRING

               -u, –utc, –universal 显示或设定为Coordinated Universal Time时间格式

         格式:可以使用“+”开头的字符串指定其格式

                   %n : 下一行

                   %t : 跳格

                   %H : 小时(00-23)

                   %I : 小时(01-12)

               %k : 小时(0-23)

                   %l : 小时(1-12)

                   %M : 分钟(00-59)

                   %p : 显示本地 AM 或 PM

                   %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)

                   %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数

                   %S : 秒(00-60)

                   %T : 直接显示时间 (24 小时制)

                   %X : 相当于 %H:%M:%S

                   %Z : 显示时区

                   %a : 星期几 (Sun-Sat)

                   %A : 星期几 (Sunday-Saturday)

                   %b : 月份 (Jan-Dec)

                   %B : 月份 (January-December)

                   %c : 直接显示日期与时间

                   %d : 日 (01-31)

                   %D : 直接显示日期 (mm/dd/yy)

               %h : 同 %b

                   %j : 一年中的第几天 (001-366)

                   %m : 月份 (01-12)

                   %U : 一年中的第几周 (00-53) (以 Sunday 为一周的第一天的情形)

                   %w : 一周中的第几天 (0-6)

                   %W : 一年中的第几周 (00-53) (以 Monday 为一周的第一天的情形)

                   %x : 直接显示日期 (mm/dd/yy)

                   %y : 年份的最后两位数字 (00.99)

                   %Y : 完整年份 (0000-9999)

[root@bogon ~]# date "+现在时间是:%Y-%m-%d %H:%M:%S"
现在时间是:2017-05-01 21:59:23
[root@bogon ~]# date "+%Y-%m-%d %H:%M:%S" -d "-3 year"
2014-05-01 21:59:38    ## 显示三年前的时间
[root@bogon ~]# date "+%Y-%m-%d %H:%M:%S" -d "+10 day"
2017-05-11 22:00:15    ##显示十天后的时间
[root@bogon ~]#  date "+%s"
1493647224    ##显示十天后的时间

         设置时间:

                   date -s "20161128 10:10:10"

[root@bogon ~]# cal    ##显示日历
      May 2017      
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

Linux 的两种时钟:

系统 时钟:由Linux 内核通过CPU 的工作频率进行的;

硬件 时钟:主板

hwclock ,clock:  显示硬件时钟

-s, --hctosys  以硬件时钟为准,校正系统时钟

-w, --systohc  以系统时钟为准,校正硬件时钟

功能说明:显示文字。

echo 命令:显示文字

  语法:echo [-neE][ 字符串]

  说明:echo 会将输入的字符串送往标准输出。echo  需要使用-e  参数来打印转义字符.

   -n  不要在最后自动换行

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

         a  发出警告声;

         b  退格键

         c  最后不加上换行符号;

         n  换行且光标移至行首;

         r  光标移至行首,但不换行;

       t  插入tab; 

         \  插入 字符;

         nnn  插入nnn (八进制)所代表的ASCII 字符

         xHH 插入HH (十六进制)所代表的ASCII 字符

 时间管理:

date命令:按格式显示或设置时间

         data [选项]... [格式]

         date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

                   -d, –date=STRING 显示STRING指定的时间

                   -f, –file=DATEFILE 类似–date参数显示DATEFILE文件中的每行时间

                   -ITIMESPEC, –iso-8601[=TIMESPEC] 以ISO 8601 格式显示日期/时间。TIMESPEC为”date”(只显示日期)、”hours”、”minutes”、”senconds”(显示时间精度)之一,默认为”date”。

                   -r, –reference=FILE 显示文件的最后修改时间

                   -R, –rfc-2822 以RFC-2822兼容日期格式显示时间

                   -s, –set=STRING 设置时间为STRING

               -u, –utc, –universal 显示或设定为Coordinated Universal Time时间格式

         格式:可以使用“+”开头的字符串指定其格式

                   %n : 下一行

                   %t : 跳格

                   %H : 小时(00-23)

                   %I : 小时(01-12)

               %k : 小时(0-23)

                   %l : 小时(1-12)

                   %M : 分钟(00-59)

                   %p : 显示本地 AM 或 PM

                   %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)

                   %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数

                   %S : 秒(00-60)

                   %T : 直接显示时间 (24 小时制)

                   %X : 相当于 %H:%M:%S

                   %Z : 显示时区

                   %a : 星期几 (Sun-Sat)

                   %A : 星期几 (Sunday-Saturday)

                   %b : 月份 (Jan-Dec)

                   %B : 月份 (January-December)

                   %c : 直接显示日期与时间

                   %d : 日 (01-31)

                   %D : 直接显示日期 (mm/dd/yy)

               %h : 同 %b

                   %j : 一年中的第几天 (001-366)

                   %m : 月份 (01-12)

                   %U : 一年中的第几周 (00-53) (以 Sunday 为一周的第一天的情形)

                   %w : 一周中的第几天 (0-6)

                   %W : 一年中的第几周 (00-53) (以 Monday 为一周的第一天的情形)

                   %x : 直接显示日期 (mm/dd/yy)

                   %y : 年份的最后两位数字 (00.99)

                   %Y : 完整年份 (0000-9999)

 

[[email protected] ~]# date "+现在时间是:%Y-%m-%d %H:%M:%S"
现在时间是:2017-05-01 21:59:23
[[email protected] ~]# date "+%Y-%m-%d %H:%M:%S" -d "-3 year"
2014-05-01 21:59:38    ## 显示三年前的时间
[[email protected] ~]# date "+%Y-%m-%d %H:%M:%S" -d "+10 day"
2017-05-11 22:00:15    ##显示十天后的时间
[[email protected] ~]#  date "+%s"
1493647224    ##显示十天后的时间

 

         设置时间:

                   date -s "20161128 10:10:10"

 

[[email protected] ~]# cal    ##显示日历
      May 2017      
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

语   法:echo [-ne][字符串]或 echo [--help][--version]

 括号扩展:{ }

打印重复字符串的简化形式 

[root@bogon ~]# echo file{1,3,5}
file1 file3 file5

 ''单引号:强引用,单引号里的内容原样不变,防止任何变量替换

 ""双引号:弱引用,可防止通配符扩展,但允许变量替换

 ``反引号:命令引用,反引号里的指令会替换为执行结果

[root@bogon ~]# echo '$PATH'
$PATH
[root@bogon ~]# echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@bogon ~]# echo `pwd`
/root

echo 命令:显示文字

  语法:echo [-neE][ 字符串]

  说明:echo 会将输入的字符串送往标准输出。echo  需要使用-e  参数来打印转义字符.

   -n  不要在最后自动换行

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

         a  发出警告声;

         b  退格键

         c  最后不加上换行符号;

         n  换行且光标移至行首;

         r  光标移至行首,但不换行;

       t  插入tab; 

         \  插入 字符;

         nnn  插入nnn (八进制)所代表的ASCII 字符

         xHH 插入HH (十六进制)所代表的ASCII 字符

补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号。

重定向和管道:

 括号扩展:{ }

打印重复字符串的简化形式 

[[email protected] ~]# echo file{1,3,5}
file1 file3 file5

 ''单引号:强引用,单引号里的内容原样不变,防止任何变量替换

 ""双引号:弱引用,可防止通配符扩展,但允许变量替换

 ``反引号:命令引用,反引号里的指令会替换为执行结果

[[email protected] ~]# echo '$PATH'
$PATH
[[email protected] ~]# echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected] ~]# echo `pwd`
/root

如果增加了>和>>输出重定向就有了新的作用

         标准输入输出:

                   标准输入:stdin-0 默认接受来自键盘的输入

                   标准输出:stdout-1 默认输出到终端窗口

                   标准错误:stderr-2 默认输出到终端窗口

         程序:指令+数据

         读取数据:Input

         输出数据:Output

         I/O重定向:改变默认位置

重定向和管道:

例如:echo wz > /tmp/1.txt

         重定向操作符:标准输出和标准错误可以重定向到文件

                   >       把标准输出重定向到文件

                   2>     把标准错误重定向到文件

                   &>    把所以输出重定向到文件

                   注:>文件内容会被覆盖,禁止内容覆盖已有文件:set -c ,强制覆盖:>|

                   >>     原有内容基础上,追加内容

                   2>     覆盖重定向错误数据流

                   2>>  追加从定向错误数据流

                   &>    标准输出和错误输出合并覆盖重定向

                   &>> 标准输出和错误输出合并追加重定向

                   <       标准输入重定向

                   <<终止词                   把多行发送给stdin

[root@bogon ~]# uname -p > kernel.txt
[root@bogon ~]# cat kernel.txt
x86_64
[root@bogon ~]# uname -r >> kernel.txt
[root@bogon ~]# cat kernel.txt
x86_64
3.10.0-327.el7.x86_64
         标准输入输出:

                   标准输入:stdin-0 默认接受来自键盘的输入

                   标准输出:stdout-1 默认输出到终端窗口

                   标准错误:stderr-2 默认输出到终端窗口

         程序:指令+数据

         读取数据:Input

         输出数据:Output

         I/O重定向:改变默认位置

wz这个字符串就会被输入到1.txt

管道操作:

  管道操作为不同命令提供了协同工作的一种机制,位于管道符号左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。   命令1 |命令2 |命令3

[root@bogon ~]# df -Th |grep "/$" 
/dev/mapper/centos-root xfs        32G  1.3G   31G   4% /
[root@bogon ~]# df -Th |grep "/$" |awk '{print $6}'
4%

 

         重定向操作符:标准输出和标准错误可以重定向到文件

                   >       把标准输出重定向到文件

                   2>     把标准错误重定向到文件

                   &>    把所以输出重定向到文件

                   注:>文件内容会被覆盖,禁止内容覆盖已有文件:set -c ,强制覆盖:>|

                   >>     原有内容基础上,追加内容

                   2>     覆盖重定向错误数据流

                   2>>  追加从定向错误数据流

                   &>    标准输出和错误输出合并覆盖重定向

                   &>> 标准输出和错误输出合并追加重定向

                   <       标准输入重定向

                   <<终止词                   把多行发送给stdin

[[email protected] ~]# uname -p > kernel.txt
[[email protected] ~]# cat kernel.txt
x86_64
[[email protected] ~]# uname -r >> kernel.txt
[[email protected] ~]# cat kernel.txt
x86_64
3.10.0-327.el7.x86_64

再例如:echo wzz>> /tmp/1.txt  

管道操作:

  管道操作为不同命令提供了协同工作的一种机制,位于管道符号左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。   命令1 |命令2 |命令3

[[email protected] ~]# df -Th |grep "/$" 
/dev/mapper/centos-root xfs        32G  1.3G   31G   4% /
[[email protected] ~]# df -Th |grep "/$" |awk '{print $6}'
4%

 

shell环境: shell:命令解释器,是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口...

注意:wzz这个字符串就会被追加到wz下面一行,如果wzz也用>则会覆盖wz字符串

tty

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

功能说明:启动X Window。

语法:startx [程序][--服务器设置]

补充说明:startx为启动X Window的script文件,实际上启动X Window的程序为xinit。

参数:

[程序] 此处所指定的[程序]为X Window所要执行程序的配置文件。

[--服务器设置] startx预设会去读取.xerverrc中的配置,决定启动X Window的方式。

以上就是Linux系统startx命令的功能和使用方法了,用startx命令启动X Window后就可以在一个窗口中运行多个程序了。

export 

功能说明设置或显示环境变量。(比如我们要用一个命令,但这个命令的执行文件不在当前目录,这样我们每次用的时候必须指定执行文件的目录,麻烦,在代码中先执行export,这个相当于告诉程序,执行某某东西时,需要的文件或什么东东在这些目录里)

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

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

参  数

-f  代表[变量名称]中为函数名称。

-n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

-p  列出所有的shell赋予程序的环境变量。

一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。

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]#

实例4:/bin/pwd

命令:

/bin/pwd [选项]

选项:

-L目录连接链接时,输出连接路径

-P输出物理路径

输出:

[root@localhost init.d]#/bin/pwd

/etc/rc.d/init.d

[root@localhost init.d]#/bin/pwd --help

[root@localhost init.d]#/bin/pwd -P

/etc/rc.d/init.d

[root@localhost init.d]#/bin/pwd -L

/etc/init.d

[root@localhost init.d]#

实例五:当前目录被删除了,而pwd命令仍然显示那个目录

输出:

[root@localhost init.d]#cd /opt/soft

[root@localhost soft]#mkdir removed

[root@localhost soft]#cd removed/

[root@localhost removed]#pwd

/opt/soft/removed

[root@localhost removed]#rm ../removed -rf

[root@localhost removed]#pwd

/opt/soft/removed

[root@localhost removed]#/bin/pwd

/bin/pwd: couldn't find directory entryin“..”with matching i-node

[root@localhost removed]#cd

[root@localhost ~]#pwd

/root

History

Linux下History命令主要用于显示历史指令记录内容, 下达历史纪录中的指令 。

>History命令语法:

[www.linuxidc.com@linux]# history [n]

[www.linuxidc.com@linux]# history [-c]

[www.linuxidc.com@linux]# history [-raw] histfiles

参数:

n  :数字,要列出最近的 n 笔命令列表

-c :将目前的shell中的所有 history 内容全部消除

-a :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles,则预设写入 ~/.bash_history

-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中

-w :将目前的 history 记忆内容写入 histfiles。Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中。默认保存1000条,你也可以更改这个值。如果你键入 history, history会向你显示你所使用的前1000个历史命令,并且给它们编了号,你会看到一个用数字编号的列表快速从屏幕上卷过。你可能不需要查看1000个命令中的所有项目, 当然你也可以加入数字来列出最近的 n 笔命令列表。linux中history命令不仅仅让我们可以查询历史命令而已. 我们还可以利用相关的功能来帮我们执行命令。运行特定的历史命令history会列出bash保存的所有历史命令,并且给它们编了号,我们可以使用“叹号接编号”的方式运行特定的历史命令.

语法说明:

[www.linuxidc.com@linux]# [!number] [!command] [!!]

参数说明:

number :第几个指令的意思;

command  :指令的开头几个字母

! :上一个指令的意思!

History命令实战

1.出所有的历史记录:

[www.linuxidc.com@linux] # history

2.只列出最近10条记录:

[www.linuxidc.com@linux] # history 10 (注,history和10中间有空格)

3.使用命令记录号码执行命令,执行历史清单中的第99条命令

[www.linuxidc.com@linux] #!99 (!和99中间没有空格)

4.重复执行上一个命令

[www.linuxidc.com@linux] #!!

5.执行最后一次以rpm开头的命令(!代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)

[www.linuxidc.com@linux] #!rpm

6.逐屏列出所有的历史记录:

[www.linuxidc.com@linux]# history | more

7.立即清空history当前所有历史命令的记录

[www.linuxidc.com@linux] #history -c

shutdown

shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。

精确时间的格式是hh:mm,表示小时和分钟,时间段由+ 和分钟数表示。系统执行该命令后会自动进行数据同步的工作。

该命令的一般格式

语  法:shutdown [-efFhknr][-t 秒数][时间][警告信息]

参  数:

-c  当执行"shutdown -h 11:50"指令时,只要按+键就可以中断关机的指令。

-f  重新启动时不执行fsck。

-F  重新启动时执行fsck。

-h  将系统关机。

-k  只是送出信息给所有用户,但不会实际关机。

-n  不调用init程序进行关机,而由shutdown自己进行。

-r  shutdown之后重新启动。

-t<秒数>  送出警告信息和删除信息之间要延迟多少秒。

[时间]  设置多久时间后执行shutdown指令。

[警告信息]  要传送给所有登入用户的信息。

需要特别说明的是该命令只能由超级用户使用。

例1,系统在十分钟后关机并且马上重新启动

# shutdown –r +10

例2,系统马上关机并且不重新启动

# shutdown –h now

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重启计算机前关闭网络。

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~]#

示例二 显示硬件时钟

[root@linuxso.com~]#hwclock

2010年11月06日 星期六 21时09分28秒  -0.134840 seconds

[root@linuxso.com~]#hwclock -r

2010年11月06日 星期六 21时09分33秒  -0.469123 seconds

[root@linuxso.com~]#hwclock --show

2010年11月06日 星期六 21时09分45秒  -0.127548 seconds

[root@linuxso.com~]#

示例三 修改日期并同步到硬件时钟

[root@linuxso.com~]#date

2010年 11月 06日 星期六 21:11:57 CST

[root@linuxso.com~]#date 11062112<== 格式 mmddHHMM,即 月日时分

2010年 11月 06日 星期六 21:12:00 CST

[root@linuxso.com~]#hwclock -w

[root@linuxso.com~]#hwclock

2010年11月06日 星期六 21时12分13秒  -0.648818 seconds

[root@linuxso.com~]#

注:要使系统时间准确,最好还是使用ntp方式

示例四 使用ntpdate命令从网络同步时间,再同步到硬件时钟

ntpdate命令是使用NTP协议来从网络同步时间的命令。NTP=Network Time Protocol网络时间协议。

[root@linuxso.com~]#ntpdate 0.rhel.pool.ntp.org

6 Nov 21:17:55 ntpdate[4829]: step time server 123.146.124.28 offset -1.025258 sec

[root@linuxso.com~]#date

2010年 11月 06日 星期六 21:17:59 CST

[root@linuxso.com~]#hwclock -w

date

使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]

说明 : date 可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :

时间方面 :

% : 印出

% %n : 下一行

%t : 跳格

%H : 小时(00..23)

%I : 小时(01..12)

%k : 小时(0..23)

%l : 小时(1..12)

%M : 分钟(00..59)

%p : 显示本地 AM 或 PM

%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)

%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S : 秒(00..61)

%T : 直接显示时间 (24 小时制)

%X : 相当于 %H:%M:%S

%Z : 显示时区

日期方面 :

%a : 星期几 (Sun..Sat)

%A : 星期几 (Sunday..Saturday)

%b : 月份 (Jan..Dec)

%B : 月份 (January..December)

%c : 直接显示日期与时间

%d : 日 (01..31)

%D : 直接显示日期 (mm/dd/yy)

%h : 同 %b

%j : 一年中的第几天 (001..366)

%m : 月份 (01..12)

%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)

%w : 一周中的第几天 (0..6)

%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)

%x : 直接显示日期 (mm/dd/yy)

%y : 年份的最后两位数字 (00.99)

%Y : 完整年份 (0000..9999)

若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],

其中 MM 为月份,

DD 为日,

hh 为小时,

mm 为分钟,

CC 为年份前两位数字,

YY 为年份后两位数字,

ss 为秒数

把计 :

-d datestr : 显示 datestr 中所设定的时间 (非系统时间)

–help : 显示辅助讯息

-s datestr : 将系统时间设为 datestr 中所设定的时间

-u : 显示目前的格林威治时间

–version : 显示版本编号

例子 :

显示时间后跳行,再显示目前日期 : date +%T%n%D

显示月份与日数 : date +%B %d

显示日期与设定时间(12:34:56) : date –date 12:34:56

注意 : 当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 – 符号,比如说 date +%-H:%-M:%-S 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。 当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

创建以当前时间为文件名的

mkdir `date +%Y%m%d`

备份以时间做为文件名的

tar cvf ./htdocs`date +%Y%m%d`.tar ./*

date命令如何获得上星期的日期?

lastmonth=`date +%Y-%m --date="-1 month"`"-01";

然后 awk -v 作为一个参数这样传进去简单点。

#date -d "-1 week" "+%Y%m%d %A"

举一反三:date命令获得前天,昨天,明天,后天,上个月,下个月的日期

date -d "-2 day" "+%Y%m%d %A"   或 date --date="2 days ago" "+%Y%m%d %A"

date -d "-1 day" "+%Y%m%d %A"   或 date --date="1 day ago" "+%Y%m%d %A"

date -d "1 day" "+%Y%m%d %A"

date -d "2 day" "+%Y%m%d %A"

date -d "-1 month" "+%Y%m%d %A"

date -d "1 month" "+%Y%m%d %A"

echo `date -d "-1 month" "+%Y-%m-%d %X"`

还有其他用法:

date +%s   可以得到UNIX的时间戳;

本文由9159.com发布于操作系统,转载请注明出处:决定了shell将到哪些目录中寻找命令或程序,决定

关键词:

上一篇:复制文件(夹),文件夹隐藏属性为灰色
下一篇:没有了