Week 1–Linux基础2

四. Linux系统命令使用格式: 

但首先,在linux中我们要知道linux系统中基本的命令格式如下:


命令字 【命令选项】 【命令参数】

  Command 【option】 【arguments】


在这里主要介绍这几个命令的使用格式(Ifconfig,echo, tty, startx, export, pwd, history, shutdown, poweroff, reboot)

1. Ifconfig: 其实就是相关于Win的 Ipconfig.

此命令被用于配置和查看更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址等的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。


概要:

Ifconfig(参数) [-a] [-v] [-s] <interface>;

Ifconfig [-v] interface [aftype] options | address… 

格式: ifconfig -interface [options] address.


以下为主要参数选项(Options):

-a:显示所有网络接口;

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

-interface:指定的网络接口名,如eth0和eth1。


-up:激活指定的网络接口卡。


-down:关闭指定的网络接口。


-broadcast address:设置接口的广播地址。


-pointopoint:启用点对点方式。


-address:设置指定接口设备的IP地址。


-netmask address:设置接口的子网掩码。


更多可man ifconfig查看说明。


   例子: 

1.如果要暂停某个网络接口的工作,可以使用down参数:

[命令]  [接口] [参数]

#ifconfig eth0 down


2.手工配置网络, 给某个接口设置IP(10.200.60.200):

#ifconfig eth0 10.200.60.20 netmask 255.255.255.0 broadcast 10.200.60.255;


2. echo: 显示一行文本.


概要:

Echo [short-option]…[string]…

Echo Long-option

格式: echo [ -n ] 字符串

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


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

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

参数:

-n 不要在最后自动换行(与 -e 选项下的 \c 字符同意)

-E:关闭反斜线控制字符的转换(预设如此)

-e:启用反斜线控制字符的转换,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

          \a 发出警告声;

         \b 删除前一个字符;

        \c 最后不加上换行符号;

    \f 换行但光标仍旧停留在原来的位置;

    \n 换行且光标移至行首;

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

    \t 插入tab;

    \v 与\f相同;

    \\ 插入\字符;

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

  –help 显示帮助

  –version 显示版本信息

  例子:

  1.$ echo

 $

只有一个空白行,然后又回到shell prompt(提示符)上了。这是因为 echo 在预设上,在显示完argument之后,还会送出一个换行符号(new-line charactor)。上面的命令没有任何的argument,结果就只剩下一个换行符号了。若要取消这个换行符号,可以利用echo的 -n option。


2.$ echo first line

 first line

 $ echo -n first line

 first line $

在上两个 echo 命令中,你会发现 argument 的部分显示在你的屏幕,而换行符号则视 -n option的有无而别。很明显的,第二个echo由于换行符号被取消了,接下来的shell prompt就接在输出结果同一行了。


3.$ echo -e "Z\tX\tC\nA\tS\tD"

 Z       X       C

 A       S       D

 了解 echo 的选项及控制字符,运用 \t 来区隔 ZXC 还有 ASD ,以及用 \n 将 ASD 换至下一行。


4.$ echo -ne "a\tb\tc\nd\te\bf\a"

 a       b       c

 d       f $

 因为 e 字母后面是删除键(\b),因此输入结果就没有e了。

 在结束时听到一声铃响,那是\a的杰作!

 由于同时使用了 -n 选项,因此 shell prompt 紧接在第二行之后。

 若不用 -n 的话,那在\a后再加个\c,也是同样的效果。

 事实上,在日后的 shell 操作及 shell script 设计上,echo 命令是最常用的命令之一。

 比方说,用 echo 来检查变量值:

 $ A=B

 $ echo $A

       B

 $ echo $?

 0


3. tty: 用于显示终端机连接标准输入设备的文件名称。在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty(teletypewriter)指令查询目前使用的终端机的文件名称。


语法:tty [-s][–help][–version]

参数:

        -s或–silent或–quiet   不显示任何信息,只回传状态代码。

        -help   在线帮助。

        -version   显示版本信息。


        简单例子:

        显示当前终端

        # tty

        /dev/pts/4


    4. startx: 用来启动X Window,实际上启动X Window的程序为xinit。


        语法: startx(参数)

        客户端及选项:X客户端及选项;

        服务器及选项:X服务器及选项。


        例子:

        1. 要在工作站上或 X 终端上启动 X 会话,请输入:

        startx

        2. 要在工作站上强制启动 X 会话,请输入: 

        startx -w

        3. 要为 X 终端启动 X 会话,并注销用户的 telnet 会话,请输入:

        startx; kill -9 $$


    5. export:  用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。


        语法: export(选项)(参数)


        选项: 

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

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

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

        参数:

        变量:指定要输出或者删除的环境变量。


        例子: 

        export PATH=$PATH:/usr/local/bin  #将/usr/local/bin加入环境变量中。


    6. Pwd: 显示目前所在的目录。


        例子: 

        # pwd

        /root # 表示现在所有的目录为/root.


    7. History:  用来显示曾执行过的命令,也可以根据显示的资料来重新执行需要的命令


参数:


        -n: 显示n个最近的记录。(数字)


        -a: 添加记录。


        -r: 读取记录,但不会添加内容记录。


        -w: 覆盖原有的history 文件。


        -c: 清除记录。


        -d<编号>[n]: 删除指定n条记录。


        -n<文件>: 读取指定文件。


        -r<文件>: 读取文件但不记录。


        -w<文件>:覆盖原有文件。


        例子:

        #History 2

        1 pwd

        2 cd


    8. Shutdown: 很简单的,就是一个以安全方式关闭系统的命令。


        参数:


        -a: 使用 /etc/shutdown.allow 来验证身份。   


        -t sec:(通知 init(8) 在转换到其它运行级别前,发送警告 (warning) 信号后延时 (sec) 秒数后再发送关闭 (kill) 信号。)


        -k: 并非真正关机,只向所有人显示警告信息。   


        -r: 重启。


        -h: 关机。


        -f: 重启时跳过磁盘检测。


        -c: 取消运行中的 shutdown 进程。


        例子:

        time  关机时间。

        #Shutdown -r now(马上重启)


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


        参数:


        -n: 关于操作系统时不执行sync操作。


        -w: 不真正关闭操作系统, 仅在日志文件 "/var/log/wtmp" 中。


        -d: 关闭操作系统时,不将操作写入日志文件"/var/log/wtmp"中。


        -f: 强制关闭系统。


        -i: 关闭操作系统之前关闭所有网络接口。


        -h: 关闭系统之前将系统中所有硬件设置为备用模式。


        例子:


        #Poweroff -f (强制关机)


    10. reboot: 重启


        参数:


      -d: 重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有"-n"参数的效果。


      -f: 强制重新开机,不调用shutdown指令的功能。


      -i: 在重开机之前,先关闭所有网络界面。


      -n: 重开机之前不检查是否有未结束的程序。


      -w: 仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。    


例子:

# reboot -f (强制重启)


11. Hwclock: 显示或设置硬件时钟时间


参数:

-adjust: hwclock每次更换硬件的时钟时, 会记录在"/ect/adjtime" 文件中. 使用这个参数可使hwclock根据先前的记录来估算硬件时钟的偏差。 用来校正目前硬件时钟.


-debug: 显示hwclock执行时详细的信息。


-hctosys: hwclock预设从"/dev/rtc"设备来存取硬件时钟, 无法存取时, 用此参数直接以I/O指令来存取硬件时钟。


-set -data=<日期与时间>: 将系统时间调整与目前的硬件时钟一致。


     -show: 显示硬件时钟的时间与日期。


-systohc: 将硬件时钟调整为与目前的系统时钟一致。


-test: 仅测试程序,而不会实际更改硬件时钟。


-utc: 若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。


例子:


#hwclock (显示当前硬件时钟)

xxxx年xx月xx日 星期X xx时xx分xx秒 -x.xxxx 秒


11. 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  (格式化输出)

XXXX-XX-XX(如2016-12-4)


五. Linux使用帮助命令的方法

主要有以下几种帮助命令: man、help、whatis、info、apropos.


先介绍其他几种,主要讲Man, 这是我个人认为比较好用的。


Help:

-h 或者 –help 帮助命令的使用详解

    查看shell内置命令的帮助,可以使用-h或者 –help

    #wget   –help

    或者为了方便查看,和less命令一起使用

    #wget   –help | less

    或者是我直接查看我想用的参数的用法和解释:

    #wget –help | grep proxy

    #help  cd


    info:

    可能有的命令没有man手册又或者不在指定的地方,此时,可能这个命令有info文档。

    #info  tar

   apropos:

    #apropos  network(等同于man -k 命令,用关键字模糊搜索相关的命令,比如,我要搜索与网络相关的命令)

当然,这需要先建立建立搜索使用的数据库,当使用者命令发生错误时,就是whatis database没有建立。输入:

#makewhatis(建立搜索用的数据库)


    whatis:

    #whatis  ls(获得索引的简短说明信息)

    当然,这需要先建立建立搜索使用的数据库,当使用者命令发生错误时,就是whatis database没有建立。输入:

    #makewhatis(建立搜索用的数据库)


   man:

    相对其他几个帮助手册,我觉得(man)是比较丰富齐全的。man是manual的缩写,man 本身也提供自己的帮助手册,通过man就可以查看。


   man page大致分为一下部分:


  NAME:简单命令、数据名称说明


SYNOPSIS:简短的命令语法(sysntax)简介


DESCRIPTION:较为完整的说明,需要认真阅读


OPTION:针对SYNOPSIS中列举的所有可用选项说明


COMMANDS:当这个软件在执行的时候,可用在此软件中使用命令


FILES:这个软件或数据所使用或参考或链接到的文件


  SEE ALSE:可以参考的,与这个命令有关的其他说明


  EXAMPLE:一些可以参考的范例,这个最好用


  BUGS:是否有相关的bug


   导出man手册:

  man ls | col -bfp > ls.txt(导出ls命令的man手册)


  1. man手册分为多个section, 每个Section用一个字符表示。(这里的section可以理解为类别,例如:man 1 passwd 和 man 5 passwd是不一样的类别(详细见表一)。通常我们使用man passwd,这个时候man就按照预先设置的搜索路径和顺序去搜索passwd,当搜索到一个就停止继续搜索并将结果显示出来,如果我们指定了section,那么man只会在指定的section里去查找man帮助页。)


  Section   |     Name        |    Explain

     1   |    用户命令      |   用户可以操作的指令.

     2   |    系统调用      |   内核提供的函数.

     3   |    库调用      |   常用的函数库.

     4   |    特殊文件      |   通常是/dev 下的文件.

     5   |    文件格式      |   对一些文件进行解释.

     6   |    游戏         |   应该没人玩,不会用到.

     7   |    杂项         |   例如宏命令包, 协定等.

     8   |    系统管理员命令  |   通常只有系统管理员(root)可以使用

     9   |    内核相关的文件  |   

     n   |    new 新文档   |  新的、尚未归入上述1-9的section的帮助文件

     o   |    old 老文档   | 可能会在一段期限内保留

     l   | local 本地文档   |   与本特定系统有关的


  (表一)


  man 命令是按照章节存储的,linux的man手册共有以下几个章节:


  章节编号   |     章节名称         |   章节主要内容

  1    | General Commands       |   用户在shell中可以操作的指令或者可执行文档

  2    | System  Calls  |   系统调用的函数与工具等

  3    | Sunroutines  |   C语言库函数

  4    | Special Files  |   设备或者特殊文件

  5    | File Formats  |   文件格式与规则

  6    | Games  |   游戏及其他

  7    | Macros and Conventions   |   表示宏、包及其他杂项

  8    | Maintenence Commands  |   表示系统管理员相关的命令


  man命令后面可以加一个数字参数,表示具体的范围定位:

  数字“1”表示用户命令

  数字“2”表示系统调用

  数字“3”表示C语言库函数

  数字“4”表示设备或特殊文件

  数字“5”表示文件格式和规则

  数字“6”表示游戏及其他

  数字“7”表示宏、包及其他杂项

  数字“8”表示系统管理员相关的命令

  知道了这些,我就可以用man 2 write来查看关于write系统调用的帮助信息了。


  例子:

  比如你man named,你观察屏幕左上角会发现NAMED(8)的字样,这就说明这个named是包含在“系统管理员相关的命令”之中的。

  再比如man yum.conf,你会发现yum.conf(5) ,我想你现在应该知道它的寓意了。下次你可以直接man 5再加一个配置文件,来查查这个文件的配置方法了。


六. Linux 发行版的基础目录名称和命令规则,功能规定

  1. 版本命名规则:

  内核版本由三部分组成:主版本号、次版本号、末版本号

  开发版本:第二位数字是奇数

  稳定版本:第二位数字是偶数


  2. 文件与目录命名规则:

  文件名:字母、数字、下划线、圆点

  普通文件 – (黑色)

  目录文件 d (蓝色)

  链接文件 l  (亮蓝色)

  特殊文件 cd (黄色)

  配置文件 .conf

  日志文件 .log

  系统日志文件 .syslog

  系统配置文件 .cfg

  系统文件  .i386

  脚本文件  .sh


  3. 基础目录和功能

  /bin集中存放一些必要的命令工具,最好不要单独挂载,否则会找不到那些所需的实用程序

  /boot包含Linux的启动文件及其内核

  /dev集中存放各类设备驱动程序,该分区不要单独挂载

  /etc集中存放一些基本的配置文件

  /home集中存放用户的主目录

  /lib内核和实用程序的编译库文件,该分区不要单独挂载

  /proc集中存放当前内核相关进程及其内核配置信息服务

  /usr集中存放一些对所有用户可用的小程序,包含许多系统管理命令和实用程序

  /var集中存放可变数据,如日志和打印机缓冲文件等等

  /mnt老的用于移动介质的挂载点

  /misc使用automounter挂载本地目录的标准挂载点

  /net使用automounter挂载网路目录的标准挂载点

  /smb使用automounter挂载远程共享Microsoft网络目录的标准挂载点

  /media可移动介质的挂载点

  /sbin集中存放一些系统管理命令,该分区不要单独挂载

  /selinux与安全升级Linux相关的当前配置

  /tmp集中存放临时文件,默认情况下,RedHat会自动周期性地清空该目录


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

(0)
上一篇 2016-12-05 17:12
下一篇 2016-12-05 19:24

相关推荐

  • 常用linux命令小计(1)

    关于linux那些事儿—常用命令小结(1) 系统相关信息 Uname –m显示处理器的架构 Uname –r显示正在使用的内核版本 cat /proc/cpuinfo显示cpu的具体信息 cat /proc/version显示内核的版本 cat /proc/swaps显示哪些分区被使用 data显示系统日期 cal –y显示当年的日历 date 021920…

    Linux干货 2017-02-19
  • DNS and BIND 初步

    DNS and bind 初步 前言 TCP/IP协议通信是针对于ip地址的,你说我要是去淘宝买东西,怎么可能记住ip地址,我要是去百度买东西,也记不住啊,所以针对于此,就出现了这样一个翻译器,起一个名字,跟ip地址对应。是多对一还是一对多呢,都可以,我几个ip指向一个网址也没问题,几个网址指向一个ip也可以。 对于反向域名解析功能等以后用到再做总结,反向域…

    Linux干货 2016-12-06
  • FHS文件系统各目录功能

    前言:     文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。linux的哲学是一切皆文件,linux系统中的一切包括设备文件,我们都能在linux的倒置树状文件系统中找到相对应的文件。所以清楚的明白根目录下的每个子目录包含什么样的文件是很有必要的。我们将以Filesystem Hierarchy Standar…

    Linux干货 2016-10-17
  • First Day

    learning

    2018-03-26
  • MongoDB复制集及数据分片详解

    前言 MongoDB是一个由C++语言编写的基于分布式文件存储的数据库,是当前NoSQL数据库中比较热门的一种,旨在为Web应用提供可扩展的高性能数据存储解决方案。本文介绍MongoDB复制集及数据分片。 MongoDB 简介 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,…

    Linux干货 2015-07-15
  • HAproxy簡單配置

    用途:TCP/HTTP反向代理,四层负载均衡,适合高可用环境。Linux6.4版本后haproxy已随base仓库收录进来。文档:http://cbonte.github.io/haproxy-dconv/主程序:/usr/sbin/haproxy 主配置文件:/etc/haproxy/haproxy.cfg启动文件:/usr/lib/systemd/sys…

    2017-05-17

评论列表(2条)

  • 马哥教育
    马哥教育 2016-12-09 20:54

    总结的很好,有例子有说明,加油