第一周作业-02

Linux的命令格式

命令的语法通用格式:

   ~]# COMMAND OPTIONS ARGUMENTS

       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

                   32bits的库:/lib, /usr/lib, /usr/local/lib

                   64bits的库:/lib64, /usr/lib64, /usr/local/lib64

           注意:

               1) 并非所有的命令都有一个在某目录下与之对应的可执行程序文件,比如shell内嵌命令;

               2) 库是应用程序的一部分,如果应用程序中调用了库文件,运行时这些库文件要和应用程序一并装入内存中。

       OPTIONS:指定命令的运行特性;

           选项的表现形式:

               短选项:-C, 例如-l, -d

                   有些命令的选项可能没有 – , 如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld

               长选项:–word, 例如–help, –human-readable

                   长选项不能合并.

           选项的参数:有些选项可以带参数,称为选项参数

               长选项的参数用 "=" 来指定,短选项的参数用 " " 来分割。

       ARGUMENTS:命令的作用对象,不同的命令的参数格式不同;有些命令可同时带多个参数,多个之间以空白字符分隔

       注意:命令的参数和选项的参数不是一回事

命令的分类:

   1) 内置命令:由shell程序的自带的命令;

   2) 外部命令:独立的可执行程序文件,文件名即命令名。

   查看命令类型:type COMMAND

   实例:

   ~]# type file

   file is /usr/bin/file   #后面跟路径表明file命令为外部命令

   ~]#

   ~]# type type

   type is a shell builtin  #后面跟shell builtin表明命令type为shell内嵌命令

Shell查找命令的路径:

   shell程序是独特的程序,负责解析用户提供的命令,当用户输入某个特定命令时,shell通过遍历指定目录下的命令文件实现命令的查找,bash通过PATH变量存放可遍历的目录,查找次序是自左而右。

   实例:

   ~]# echo $PATH

       /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

命令的文件组织格式:

   命令必须遵循特定格式规范:exe(Windows), msi(Windows), ELF(Linux)

   查看文件格式的命令:file COMMAND

   实例:

    ~]# type file

   file is hashed (/usr/bin/file)  #查看file命令的可执行文件路径

   ~]#

   ~]# file /usr/bin/file  #查看file命令的可执行文件组织格式,可以看到为ELF格式

   /usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x2b41e1e88b26311141384893b71fb1a7e86a5db9, stripped

在Linux上使用帮助的方法

获取命令的使用帮助:

   内部命令:

       ~]# help COMMAND

   外部命令:

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

           ~]# COMMAND –help

       (2) 使用手册manual,手册位置:/usr/share/man,如果手册目录中没有对应命令的手册,则man COMMAND时是看不到使用手册的

           ~]# man COMMAND

               SECTION:

                   NAME:功能性说明

                   SYNOPSIS:语法格式

                   DESCRIPTION:描述

                   OPTIONS:选项

                   EXAMPLES:使用示例

                   AUTHOR: 作者

                   BUGS: 报告程序bug的方式

                   SEE ALSO: 参考

                       …

               SYNOPSIS:

                   []:可选内容;

                   <>:必须提供的内容;

                   a|b|c:多选一;

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

           manual的章节划分

               man1:用户命令,包括普通用户和管理员使用的所有命令;

               man2:系统调用,system call帮助文件,编程人员常用;

               man3:C库调用,C libraries call帮助文件,编程人员常用;

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

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

               man6:游戏使用帮助;

               man7:杂项;

               man8:管理工具及守护进行,即管理员命令;

               指定查看特定章节的manual:

                   ~]# man CHAPTER COMMAND

               查看COMMAND都在那些章节下存在帮助文件:~]# whatis COMMAND

               注意:

                   1) 其执行过程是查询数据库进行的;新安装的软件可能数据库并未自动更新到最新,因此可以手动更新数据库

                       手动更新数据库命令你个:~]# makewhatis

                   2) 并非每个COMMAND在所有章节下都有手册;

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

               翻屏:

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

                   b: 向文件首部翻一屏;

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

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

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

                   k: 向文件首部翻一行;

                   G:跳转至最后一行;

                   #G: 跳转至指定行;

                   1G:跳转至文件首部;

           man文本搜索:

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

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

                   n: 下一个keyword,与查找命令方向相同;

                   N: 下一个keyword,与查找命令方向相反;

           退出:

               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基本命令

type命令:查看命令类型

   用法:type COMMAND

       内部命令:显示为shell builtin

       外部命令:显示为命令的可执行文件路径

   注意:命令可以有别名;别名可以与原名相同,此时原名被隐藏;此时如果要运行原命令,则使用\COMMAND;

   实例:

       ~]# type ls

       ls is aliased to `ls –color=auto'

       ~]# \ls

       ~]# type type

       type is a shell builtin

       ~]# type file

       file is hashed (/usr/bin/file)


whatis命令:查看命令manual存在于那些章节

   用法:whatis COMMAND

   实例:

       ~]# whatis ls

       ls (1)               – list directory contents

       ls (1p)              – list directory contents

which命令:显示命令的可执行文件路径

   用法:which [options] programname […]

       OPTIONS

           –skip-alias:忽略别名

               注:hich的别名与命令名相同,因此命令名被隐藏,且which命令不显示别名,只是别名中加入了显示别名的选项

   实例:

       ~]# which –skip-alias ls

       /usr/bin/ls

       ~]#

       ~]# which ls

       alias ls='ls –color=auto'

           /usr/bin/ls

       ~]#

       ~]# \which ls

       /usr/bin/ls

       ~]# alias which

       alias which='alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde'

whereis命令:显示命令的可以行文件、源文件、手册文件存放路径

   用法:whereis [options] name…

       OPTIONS

           -b: 仅搜索二进制可执行文件路径;

           -m:仅搜索使用手册文件路径;

           -s:仅搜索源文件路径。

   实例:

       ~]# whereis ls

       ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

       ~]#

       ~]# whereis -b ls

       ls: /usr/bin/ls

       ~]#

       ~]# whereis -m ls

       ls: /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

who命令:显示用户登录系统的情况

   用法:who [OPTION]…

       -b: 系统此次启动的时间;

       -r: 运行级别。

   注:who命令可以看到那个用户、在什么时间、通过什么终端、以什么源IP登录的系统,通过本地虚拟终端登录时不显示登录端IP地址。

   实例:

       ~]# who

       (unknown) :0           2016-09-06 20:15 (:0)

       root     pts/0        2016-09-06 20:18 (192.168.110.1)

       ~]#

       ~]# who -b

                system boot  2016-09-06 20:15

       ~]#

       ~]# who -r

                run-level 5  2016-09-06 20:15

w命令:显示用户登录系统的情况及资源占用情况

   用法:w [options] user […]

   实例:

       ~]# w

        01:05:53 up  4:50,  3 users,  load average: 0.00, 0.01, 0.05

       USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

       root     pts/0    192.168.110.1    20:18    1.00s  0.45s  0.02s w

       user3    pts/1    192.168.110.1    01:05    9.00s  0.05s  0.05s -bash

       ~]#

       ~]# w user3

        01:05:58 up  4:50,  3 users,  load average: 0.00, 0.01, 0.05

       USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

       user3    pts/1    192.168.110.1    01:05   14.00s  0.05s  0.05s -bash

echo命令:回显

   用法:echo [SHORT-OPTION]… [STRING]…

       SHORT-OPTION

           -n:输出时不换行

           -e:让转义符生效

               \n:换行,在回显的内容中,有\n则换行

               \t:制表,在回显的内容中,有\t再加一个Tab,类似表格

               …

       STRING:可以使用引号,单引号和双引号均可用;

           单引号:强引用,变量不执行值替换

           双引号:弱引用,变量执行值替换

   实例:

       ~]# echo -e "hello\tworld"

       hello   world

       ~]#

       ~]# echo $?

       0

tty命令:输出当前终端名称

   用法:tty

   实例:

       local]$ tty

       /dev/pts/1

startx命令:启动一个GUI窗口

   用法:startx

pwd命令:输出工作目录

   用法:pwd

cd命令:切换目录

   用法:cd [/PATH/TO/SOMEDIR]

       cd: 切换回家目录;

       cd ~:切换回自己的家目录,bash中~表示家目录;

       cd ~USERNAME:切换至指定用户的家目录;只有管理员才可以切换到其他用户的家目录中,管理员的家目录为/root,普通用户的家目录为/home/USERNAME;

       cd -:在上一次所在目录与当前目录之间来回切换;因为有如下两个环境变量对当前目录和上一次工作目录进行记录;

           $PWD:当前工作目录

           $OLDPWD:上一次的工作目录

       .:当前目录

       ..:父目录

ls命令:列出指定目录下的内容

   用法:ls [OPTION]… [FILE]…

       OPTIONS

           -a: 显示所有文件,包括隐藏文件;

           -A:显示除.和..之外的所有文件;

           -h, –human-readable:对文件大小单位换算;换算后结果可能会非精确值;

           -d:查看目录自身而非其内部的文件列表;

           -r: reverse, 逆序显示;

           -R: recursive,递归显示;

           -l: –long, 长格式列表,即显示文件的详细属性信息;

               -rw-r–r–. 1 root   root     8957 10月 14 19:34 boot.log

                   -:文件类型,-, d, b, c, l, s, p

                   rw-r–r–

                       rw-:文件属主的权限;

                       r–:文件属组的权限;

                       r–:其它用户(非属主、属组)的权限;

                   1:数字表示文件被硬链接的次数;

                   root:文件的属主;

                   root:文件的属组;

                   8957:数字表示文件的大小,单位是字节,对于设备文件,此处为以 , 分割的两位数字,表示设备的编号;

                   10月 14 19:34 :文件最近一次被修改的时间;

                   boot.log:文件名

cat命令:文本文件查看工具

   用法:cat [OPTION]… [FILE]…

       OPTIONS

           -n:给显示的文本行编号;

           -E: 显示行结束符$;

   实例:

       ~]$ tac -nE /etc/fstab

tac命令:文本文件查看工具,和cat显示顺序相反,tac为逆序显示

   用法:tac /PATH/TO/FILENAME

file命令:查看文件内容组织格式

   用法:file [FILE]…

   实例:

       [hdctc@Y002 /]$ file /bin/ls

       /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

shutdown命令:关机或重启

   用法:shutdown [OPTIONS…] [TIME] [WALL…]

       OPTINOS

           -h: halt

           -r: reboot

           -c: cancle

       TIME

           now: 立即关机

           hh:mm: 几点几分关机

           +m: 几分钟后关机

               +0: 立即关机

       WALL

   实例:

       ~]# shutdown -r +10 "hello world"  #在10min后重启,并且发送hello world的wall

       ~]# shutdown -c  #取消之前设定的重启操作


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

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-27 09:43

    统一回复一下,可以在每个命令的常用参数下面写一个例子来说明一下,是不是没有做后面的题目啊?