首页 > 代码库 > 命令入门

命令入门

命令入门

学习linux在接下来的日子里,命令行将会与我们厮守终生。使用命令行是必要的,当一个人控制超过50台服务器,每台服务器都要干同样的事情,再使用图形界面操作就会特别浪费时间,我们怎么让服务器都执行同样的命令,当然需要一些批量执行命令的工具,执行命令那么我们就要了解命令的运行原理和组合方式。为什么一定要是命令,命令可以组成脚本,可以一次运行一组命令,完成一个复杂动作。

心怀天下了,接下来就要脚踏实地了,linux有一则哲学——组合小命令完成大作业。命令是什么,命令就是小程序,程序是什么,接下来听我娓娓道来。

1程序与进程

程序就是一条条指令组成的集合,它们只会安静的躺在硬盘里,不增不减。它们设计出来就是为了解决特定的问题,我们的任务就是了解它们的功能,成为一个问题和命令的结构洞。

程序自己只会安静的躺在硬盘里是不符合我们需求的,我们程序接受我输入的数据并可以回复给我们需要的数据。怎么让它们跑起来,把它们打包成程序塞到cpu中,让cpu执行,执行完就被cpu扔出来,这个包被称为进程。它的运行原理比较复杂,尔等退下,我自己懂就好。但是它的特性就体现出来了:有生命周期,随时可以调用。

等等调用,什么是调用,怎么调用。

2shell类型

我们用什么调用这些命令。Linux发展了这么长时间,调用命令的接口换了一个又一个,这个接口我们统称shell,目前我们使用的centos中集成的shell就有很多。

shell中执行如下命令,就可以查看本机内嵌的shell

# cat/etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

切换shell,执行对应shell的路径就可以。比如切换使用sh

# /bin/sh

sh-4.2#

3命令调用

既然我们想调用命令,那么命令在哪里,有些东西我们要把它放到还珠格格目录下,不让别人看。在linux我们怎么处理的,比如不同的用户具有不同的权限,可以使用不同的命令。

Linux发现命令是通过$PATH中定义变量来控制的,并且用:分离多个路径:

查看当前用户调用命令查询路径的顺序:

echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

Linux调用一个命令的流程:首先,shell查询shell内嵌的命令;查询不到就查询$PATH中第一个冒号前面的路径/usr/local/sbin,查询其中是否有这个命令,有这个命令就执行,没有接着查询;以此类推。

等等什么是内部命令。

4命令

怎么查看命令是shell内嵌的命令或者是外部的命令,这里测试pwd命令:

#type pwd

pwd is ashell builtin

知道我们执行的命令的类型那我们执行的命令在哪里,这里我们还是用pwd演示。

#witch pwd

/usr/bin/pwd

使用whereis查询命令和帮助信息的位置。

#whereis pwd

pwd:/usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz/usr/share/man/man1p/pwd.1p.gz

一个命令的格式是什么样的

命令 选项 参数

以ls 为例

Ls -l /etc

第一个空格前是命令;-l是ls的一个选项,以详细格式显示;/etc需要操作的文件的路径。

5命令帮助

命令如此之多,我们不能把所有命令的全部的使用方法都记住吧!嗯,对得全都要记住。别扯了,汉字词语的我们也只掌握了10%但是我们已经足够使用了,并且还有小字典和大字典。当然linux的命令也不用全部都记住,Linux中也有字典,既然想偷懒熟练使用这些字典那就是必须的了。

先说小字典,help。

先说内部命令使用一下命令:

Help cd

外部命令,基本上每个命令都会带一个小字典,这里我们用ls命令做示例:

#ls --help

Usage: ls[OPTION]... [FILE]...

Listinformation about the FILEs (the current directory by default).

Sortentries alphabetically if none of -cftuvSUX nor --sort is specified.

 

Mandatoryarguments to long options are mandatory for short options too.

  -a, --all                  do not ignore entriesstarting with .

  -A, --almost-all           do not list implied . and ..

      --author               with -l, print the author ofeach file

  -b, --escape               print C-style escapes fornongraphic characters

等等说好的小字典呢!这的确是小字典,

还有一个大字典,man。man1到man8分门别类的存放了命令的使用方法,还有配置文件的使用方法。

#man ls

LS(1)   User Commands   LS(1)

NAME

       ls- list directory contents

SYNOPSIS

       ls [OPTION]... [FILE]...

DESCRIPTION

       List information  about the FILEs (thecurrent directory by default).

       Sort entries alphabetically if none of-cftuvSUX nor --sort is  speci‐fied.

       Mandatory  arguments to  long options are mandatory forshort optionstoo.

       -a, --all   do not ignore entries starting with .

       -A, --almost-all  do not list implied . and ..

       --author   with -l, print the author of each file

       -b, --escape

 Manual page ls(1) line 1 (press h for help orq to quit)

Man的格式

Man

NAME:名称及功能性说明

SYNOPSIS:语法格式,用法说明,包括可用的选项

[]:可选内容;

<>:必须提供的内容;

a|b|c:多选一;

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

{ } : 分组

DESCRIPTION:命令功能的详尽说明,可能包含每个选项的意义

OPTIONS:选项,说明每一个选项的意义

FILES:此命令相关的配置文件

EXAMPLES:使用示例

AUTHOR:作者

BUGS: 报告程序bug的方式

SEEALSO: 参考

    怎么使用字典。

u:向上翻半屏

d:向下翻半屏

空格:向下翻一屏

b:向下翻一屏

向上向下箭头

/keyword自上而下的查找

?keyword 自下而上的查找

    查找时

按n同方向查找

           按N反方向查找

g首部

G尾部

q退出

总结

总结一下,通过shell调用命令,命令有自己独特的格式和用法,格式和用法可以通过helpman查看。如果还不行,去google或者百度,实在是不行可以先看官方文档,然后看发行版文档。


本文出自 “老王linux旅程” 博客,请务必保留此出处http://oldking.blog.51cto.com/10402759/1873653

命令入门