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)
KelvinKelvin
上一篇 2016-12-05
下一篇 2016-12-05

相关推荐

  • N22-love cat 17周博客作业第2部分-构建一个LVS-DR模型的高性能集群

    题目: 搭建一个LVS-DR模型的高性能集群,并实现以下功能:       (1)、wordpress程序通过nfs共享给个个realserver;       (2)、后端realserver中的nginx和php分离; 第17周   第2部分 网…

    Linux干货 2016-08-15
  • Tomcat 全系列发现严重安全漏洞

    据 Tomcat 安全组确认,Tomcat 全系列产品均被发现严重安全漏洞:CVE-2014-0227 请求夹带漏洞。 级别:严重 受影响版本: Apache Tomcat 8.0.0-RC1 to 8.0.8 Apache Tomcat 7.0.0 to 7.0.54 Apache Tomcat 6.0.0 to 6.0.41 描述:可以通过构造一个截断请…

    Linux干货 2015-02-11
  • find文件:就是这么简单

    概述 由于Linux一切皆文件,我们的日常运维工作其实就是与文件打交道的事,如何能够快速而有效地找到我们需要的文件呢?这是个令人头疼的问题。幸运是,Linux为用户提供了强大的查找工具——find。find通过遍历指定路径完成文件查找,它的的工作特点: 精确查找——多查询条件组合,精确匹配; 实时查找——遍历指定路径; 查找速度稍慢——由于需要遍历路径,速度…

    Linux干货 2016-08-18
  • N23_第六周

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;:%s/^[[:blank:]]\+.*/\0#/g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;:%s/^[[:space:]]\+/…

    Linux干货 2017-02-28
  • linux函数和数组定义

    函数介绍:    函数function 是由若干条shell 命令组成的语句块,实现代码重用和模块化编程。    它与shell 程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell 程序的一部分。    函数和shell 程序比较相似,区别在于:   …

    Linux干货 2017-04-02
  • sed 文本处理工具介绍

    sed简介: 文本处理三剑客之一的sed sed是一种行编辑器,它一次处理一行内容,本身是一个管道命令,对行的数据进行 替换 增加 删除 选取的工作 sed的命令为:sed[opition] ‘script’ inputfile…             &nbs…

    2017-06-24

评论列表(2条)

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

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