第一周:Linux基础之常用命令(二)

一、Linux的命令使用格式

命令的语法通用格式:

~]# COMMAND  OPTIONS  ARGUMENTS   命令  选项  参数

1.  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,它们分为32位和64位的库文件,32位使用于32位的操作系统,64位使用于64位的操作系统,64位兼容32位,而32不兼容64

                                         32位库:存放在/lib,/usr/lib,/usr/local/lib

                                         64位库:存放在/lib64,/usr/lib64,/usr/local/lib64 

                 命令分为两类:

                                         由shell自带的命令,叫作内嵌命令(builtin)

                                         独立的可执行程序文件,文件名即命令名,叫作外部命令

             查看命令的类型:

                                         type命令: 例:~]#  type COMMAND  

[root@app1 ~]# type mkdir                                        
mkdir is /bin/mkdir
[root@app1 ~]# type alias
alias is a shell builtin

2.  OPTIONS,选项: 指定命令的运行特性,有两种表现形式:

                                      短选项:-C,例如 ls -l ,-d    注:有的命令选项没有 – ,同一命令同时使用多个短选项可合并:ls -ld

                                      长选项:–word,例如 ls –help,有时候选项也带参数,例:du -h –max-depth=1    注:长选项不能合并

3.  ARGUMENTS,参数:命令的作用对象,命令对什么生效,例:ls /etc ,作用在/etc 。注:有些命令可以可同时带多个参数,以空白分隔

二、常用命令介绍

1. ifconfig

OPTIONS
            -a    显示所有可用网络接口状态信息
            -s    简单显示网络状态,类似netstat –i
            Interface 只显示$interface的配置信息及网络状态
            up/down    用法是:ifconfig interface up/down    启动/关闭interface接口
            
FOR EXAMPLE:
[root@app1 ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:50:56:84:0D:85  
          inet addr:10.88.158.84  Bcast:10.88.158.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fe84:d85/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13271001 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12381904 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3830321889 (3.5 GiB)  TX bytes:2327742771 (2.1 GiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:261858897 errors:0 dropped:0 overruns:0 frame:0
          TX packets:261858897 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:238693595641 (222.3 GiB)  TX bytes:238693595641 (222.3 GiB)

[root@app1 ~]# ifconfig -s
Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500   0 13271022      0      0      0 12381924      0      0      0 BMRU
lo        65536   0 261859213      0      0      0 261859213      0      0      0 LRU
[root@app1 ~]# ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:261859889 errors:0 dropped:0 overruns:0 frame:0
          TX packets:261859889 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:238693742990 (222.3 GiB)  TX bytes:238693742990 (222.3 GiB)

2.  echo:回显

      echo $PATH

[root@app1 ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/roo
t/bin

3.  tty:查看当前的终端设备

[root@app1 ~]# tty

/dev/pts/1

4.  startx:打开图形界面(前提是Linux系统已经安装图形界面)

启动GUI:在某一虚拟终端接口运行命令:startx &

5.  export:环境变量赋值,查看环境变量

      (1)  export  name=value

      (2)  name=value

            export name

[root@app1 ~]# export name=wlm
[root@app1 ~]# echo $name
wlm

6.  pwd:printing working directory  显示工作目录

7.  history:定制history的功能,可通过环境变量实现:

      HISTSIZE:shell进程可保留的命令历史的条数;

      HISTFILE:持久保存命令历史的文件;.bash_history(用户家目录下)

      HISTFILESIZE:命令历史文件的大小;

    命令用法:

    history [-c] [-d 偏移量] [n] 

    或 history -anrw [文件名] 

    或 history -ps 参数 [参数…]

    -c: 清空命令历史;

    -d offset:删除指定命令历史

    -r: 从文件读取命令历史至历史列表中;

    -w:把历史列表中的命令追加至历史文件中;

    history #:显示最近的#条命令;

    调用命令历史列表中的命令:

    !#:再一次执行历史列表中的第#条命令;

    !!:再一次执行上一条命令;

    !STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;

    注意:命令的重复执行有时候需要依赖于幂等性;

    调用上一条命令的最后一个参数:

    快捷键:ESC, .

    字符串:!$

    控制命令历史记录的方式:

    环境变量:HISTCONTROL

    ignoredups:忽略重复的命令;

    ignorespace:忽略以空白字符开头的命令;

    ignoreboth:以上两者同时生效;

8.  关机命令

CentOS 7:

        systemctl poweroff   关机

        systemctl reboot     重启

CentOS 6

        poweroff

        reboot

9. hwclock, clock:硬件时钟

显示或设定硬件时钟

        -s, –hctosys:以硬件为准,把系统调整为与硬件时间相同;

        -w, –systohc:以系统为准,把硬件时间调整为与系统时钟相同;

10. date:系统时钟

显示日期时间:date [OPTION]… [+FORMAT]

    FORMAT:格式符

            %F:以年-月-日显示时间

            %Y:显示年

            %m:显示月

            %d:显示日

            %H:显示小时

            %M:显示分钟

            %S:显示秒

            %s:从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经历的秒数;

        设定时间:date [MMDDhhmm[[CC]yy][.ss]] 

[root@app1 ~]# date
Sun Sep 18 15:58:50 CST 2016
[root@app1 ~]# date +%F
2016-09-18
[root@app1 ~]# date +%Y%m%d%H%M%S
20160918155914
[root@app1 ~]# date +%s
1474185561

三、Linux上获取命令帮助信息

获取命令的使用帮助:

内部命令:help COMMAND

外部命令:

(1) 命令自带简要格式的使用帮助

        # COMMAND –help

(2) 使用手册:manual

        位置:/usr/share/man

        # man COMMAND

        SECTION:

        NAME:功能性说明

        SYNOPSIS:语法格式

        DESCRIPTION:描述

        OPTIONS:选项

        EXAMPLES:使用示例

        AUTHOR: 作者

        BUGS: 报告程序bug的方式

        SEE ALSO: 参考

        SYNOPSIS: 

        []:可选内容;

        <>:必须提供的内容;

        a|b|c:多选一;

        …:同类内容可出现多个;

        使用手册:压缩格式的文件,有章节之分;

        /usr/share/man

        man1, man2, …

        1:用户命令;

        2:系统调用;

        3:C库调用;

        4:设备文件及特殊文件;

        5:文件格式;(配置文件格式)

        6:游戏使用帮助;

        7:杂项;

        8:管理工具及守护进行;

        ~]# man CHAPTER COMMAND

        注意:并非每个COMMAND在所有章节下都有手册;

        查看:

        ~]# whatis COMMAND

        注意:其执行过程是查询数据库进行的;

        手动更新数据库:

        ~]# makewhatis

        man命令打开手册以后的操作方法:

        翻屏:

        空格键:向文件尾翻一屏;

        b: 向文件首部翻一屏;

        Ctrl+d:向文件尾部翻半屏;

        Ctrl+u:向文件首部翻半屏;

        回车键:向文件尾部翻一行;

        k: 向文件首部翻一行;

        G:跳转至最后一行;

        #G: 跳转至指定行;

        1G:跳转至文件首部;

        文本搜索:

        /keyword:从文件首部向文件尾部依次查找;不区分字符大小写;

        ?keyword:从文件尾部向文件首部依次查找;

        n: 与查找命令方向相同;

        N: 与查找命令方向相反;

        退出:

        q: quit

        选项:

        -M /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开;

(3) info COMMAND获取命令的在线文档;

(4) 很多应用程序

        会自带帮助文档:/usr/share/doc/APP-VERSION

        README:程序的相关的信息;

        INSTALL: 安装帮助;

        CHANGES:版本迭代时的改动信息;

(5) 主流发行版官方文档

        http://www.redhat.com/doc

        (6) 程序官方的文档:

        官方站点上的“Document”

(7) 搜索引擎

        google

        keyword filetype:pdf

        keyword site:domain.tld

四、Linux基础目录功用及命名规则

FHS(Filesystem Hierarchy Standard)规定了类Unix系统的各个系统目录的功能及存储文件,下面我们来解读下linux系统中的目录

        /: Root directory 根目录,Linux内核挂载的起始位置

        /bin: Essential user command binaries (for use by all users) 基本的用户命令文件,任何用户均可调用,比如:cp、date、dd、rm

        /boot: Static files of the boot loader 系统引导加载程序的静态文件,系统进入用户模式之前的加载文件均在这里

        /dev: Device files 系统的设备文件 存储着关于各部分硬件设备的资料,比如:tty、pts、mem(不可读)

        /etc:Host-specific system configuration 主机的系统配置文件,几个特殊的目录如下:

                  X11/       Configuration for the X Window system (optional)
                  sgml/            Configuration for SGML (optional)
                  xml/           Configuration for XML (optional)

        /home:  User home directories (optional)  用户的家目录,创建用户默认生成,一般目录名同用户名。例如:/home/USERNAME

        /lib:Essential shared libraries and kernel modules 基本的共享库及内核模块。

        /lib(qual):Alternate format essential shared libraries (optional) 交替格式共享库。例如lib32、lib64

        /media:Mount point for removable media 可移动介质的挂载点,可以认为是扩展挂载点。与/mnt类似

        /mnt:Mount point for a temporarily mounted filesystem 其他临时系统文件的挂载点。

        /opt:Add-on application software packages 留给附加的应用程序软件包的

        /root:Home directory for the root user (optional) 超级管理员root的家目录

        /run:Run-time variable data 运行时的变量数据,这个目录包含系统信息数据描述了系统自启动。这个目录下的文件必须被清除(删除或截断)在引导过程的开始。

        /sbin:System binaries 管理员命令存储目录,没有子目录且不能随意创建

        /srv:Data for services provided by this system 系统服务的相关数据

        /tmp:Temporary files 临时文件存储。

        /usr: shareable, read-only data,must not be written to。属于系统文件的最主要部分(/除外),符合FHS用户共用此目录,其子目录解读如下:

                  bin/        Most user commands 大部分的用户命令,比如:perl,python,tclsh

                  include/       Directory for standard include files 一些可能系统调用的C相关的文件

                  lib/        Libraries for programming and packages 库程序和包

                  local/       Local hierarchy 本地的层级目录,bin/,sbin/,lib/,lib64/,share/,src/,games/,include/等

                  sbin/       Non-essential standard system binaries 只有管理员调用的非标准的系统函数

                  share/       Architecture-independent data 系统杂项,但是有几个重要的目录

                                 man/ Manual pages 使用手册目录

                                 doc/ 程序的说明文档

                                 zeroinfo/ Timezone information and configuration (optional)   时区信息和配置信息

                  src/        Source code (optional)源代码文件可以存储在这里,仅供参考

        /sys:Kernel and system information virtual filesystem 主要存储的是硬件信息、驱动、个别内核信息

        /proc:Kernel and process information virtual filesystem 看解释跟/sys一样,只是此文件目录存储的是实际标准的流程和系统信息,比如CPU、内存等信息

        /var:/var contains variable data files. This includes spool directories and files, administrative and logging data, and transient and temporary files. 

                主要包括一些缓存文件、管理的log文件、动态生成的临时文件、spoool、mail文件,也是比较重要的目录

文件和目录的命名规则:

1、文件名名称严格区分字符大小写;

2、文件可以使用除/以外任意字符;

3、文件名长度不能超过255字符;

4、以.开头的文件为隐藏文件;

.: 当前目录;

..: 当前目录的上一级目录;













原创文章,作者:dawning,如若转载,请注明出处:http://www.178linux.com/47435