速学linux命令教程

作者&投稿:匡才 (若有异议请与网页底部的电邮联系)
~

概述:用户使用shell跟内核交互,Linux中有很多命令,不同的命令有不同的功能。多个命令合起来可以完成一个大的功能。命令很多我们不可能记得每条命令的用法。

所以,我们必须有一种方法来快速知道一个命令是如何使用的,有什么作用。所以,几乎所有的命令都提供了帮助手册,告诉命令的使用者如何使用命令、命令 的作用等等。帮助手册页很长,我们不可能为了使用一个命令,而从头到尾把帮助手册读完,这时候需要一种快速读懂(有目的的去读)命令的帮助手册的方法。是如何实现的呢?管理整个计算硬件的其实是核心(kernel 计算要系统),通常用户(user)都是以 shell 来与核心沟通,让核心达到我们所想要实现的目的。

shell 就是一个应用程序,它读入用户键入的命令,把它转换成 Linux 系统更易于理解的格式。它也包括一些基本的程序结构,让用户做选项、循环,以及把值

存储在变量中。

一、了解命令的基本格式

shell 执行程序:

shell 负责执行终端请求的程序。

用户每次向 shell 命令提示符[root@Node1 ~]# 键入一行信息,shell 会在分析后决定做什么。 shell 所涉及到的每行信息都遵循相同的基本格式。如:

命令选项选项参数命令参数(1)命令参数(2)

命令,一般都会提供帮助文档,只有了解了命令格式的各项意义,我们才可能很快学会新命令的使用。至少在命令行提示符中键入命令时,不会写错。

第一字段: command(命令)  可执行文件

第二字段: 命令的选项,些命令的选项带参数,有些命令的选项不带参数

中括号 [] 是可选择项,在键入该命令的时候可以选择是否省略命令的选项。

竖线 | 表示左右两边任选一个作为,命令选项的参数。

省略号... 表示该命令选项可以有多个,但是书写时,要按照下面的格式。

选项又分为:

1、长选项,使用 --options 格式。 一般选项名称是完整的。如果一个命令的长选项有多个,是不可以合并的。

2、短选项,使用 -options 格式, 一般是长选项名的简写格式。如果一个命令的短选项有多个,是可以合并的。

ls 命令的选项 -b 和 --escape 作用是一样的。

[root@Node1~]#ls-b/root/

anaconda-ks.cfginstall.loginstall.log.syslog

[root@Node1~]#ls--escape/root/

anaconda-ks.cfginstall.loginstall.log.syslog

注意:长选项是不可以合并使用的,在命令行提示符中,键入的命令使用到多个长选项的时候要分开写

[root@Node1~]#ls--allblock-size=1/etc/

ls:unrecognizedoption'--allblock-size=1'

[root@Node1~]#ls--all--block-size=4/root/

..bash_history.bashrcinstall.log.syslog.tcshrc

...bash_logout.cshrc.lesshst.viminfo

anaconda-ks.cfg.bash_profileinstall.log.ssh

第三字段:   命令参数

命令参数有多个需要使用空格隔开。

当用户按照上述描述的格式,在命令行提示符中键入命令以后,按 [Enter] 键后,shell 就分析执行该命令。( Linux 中 [Enter] 为 CR 字符表示)shell 会先判断该命令的类型,如果是内部命令的话就直接执行,否则的话,shell 会按照 $PATH 变量的值到磁盘搜索,用户键入的命令。

1、如果搜索到用户键入的命令,产生中断,由内核(kernel)负责把命令文件从磁盘中加载到内存

中来,并开始执行该命令。此时,命令就表示为一个进程。

2、如果 shell 按照 $PATH 变量的值到磁盘中找不到该命令的话,就会报错。

[root@Node1~]#tree/etc

-bash:tree:commandnotfound

说明:

命令的位置不在 $PATH 中 和 命令不存在,都会报command not found

如果,我们键入的命令的位置不在shell搜索 $PATH 路径中,可以使用全路径描述该命令,或把该

命令所在的路径追加到 $PATH 变量中。

1、使用全路径描述文件

[root@Node1etc]#/usr/bin/tree/etc

2、把命令所在的路径加到 $PATH 变量中。

1[root@Node1~]#vim/etc/profile

在 profile 文件中添加一行 $PATH=/path1/path2/:/path2/path3

如,在编译安装 MySQL 数据库,MySQL提供的工具所在的路径设置为,shell默认的搜索路径

($PATH)。这样使用MySQL提供的一些命令,对MySQL服务器操作维护时

就不需要输入命令的全路径了。这样比较方便。在 profile 文件中添加一行

$PATH=/usr/local/mysql/bin 但是刚添加到 $PATH 中的路径,shell并不知道。

我们要通知shell,重读 profile 文件,方法是:

[root@Node1etc]#.profile

二、我们怎么,知道一个命令的使用方法呢?

一般,命令都会提供帮助文档,我们可以通过帮助文档来查看一个命令的使用方法。我们的命令又分为: shell 内置命令 和 外部命令。

命令的类型不同,获取它的帮助文档的方式也不同。所以,我们首先要判断一个命令的类型?

判断 command 类型,使用 【type】

[root@Node1etc]#typecd

cdisashellbuiltin

得知【cd】命令,是 shell 内置命令,我们可以使用下述方法查看该命令使用方法

[root@Node1etc]#helpcd

cd:cd[-L|-P][dir]

Changetheshellworkingdirectory.

ChangethecurrentdirectorytoDIR.ThedefaultDIRisthevalueofthe

HOMEshellvariable.

......

[root@Node1etc]#typels

lsisaliasedto`ls--color=auto'

ls命令,是外部命令。我们使用 【command --help】或【man】命令来查看命令帮助文档。man 中文意思男人,在 Linux 世界中遨游,不懂就问男人。所以要学会 man 的使用。

我们非内核命令的帮助文档存放在,/usr/share 中。

【man】命令是如何工作的?

man 会按照它的配置文件 /etc/man.config 中 MANPATH 定义的路径去搜索命令的帮助文档,当我

们用【man】去查看 command 的帮助文档时,如果 command 的帮助文档不在man 程序的搜索路径

中,man 是找不到 command 的帮助文档的。所以,我们在编译安装源程序的时候,如果我们安装的

程序的帮助文档目录不在【man】的默认搜索路径下,则需要把程序的帮助文档的路径添加【man】

的索引路径中。可以通过编译 /etc/man.config 在 MANPATH 指令中添加上程序的帮助文档的路径

就可以了,如:把 MySQL 的帮助文档的路径添加到【man】的搜索路径中

[root@node2~]#vim/etc/man.config

#MANBIN/usr/local/bin/man

#

#EveryautomaticallygeneratedMANPATHincludesthesefields

#

MANPATH/usr/man

MANPATH/usr/share/man

MANPATH/usr/local/man

MANPATH/usr/local/share/man

MANPATH/usr/X11R6/man

MANPATH/usr/local/mysql/man/

我们的帮助文档是分章节的,不同章节表示不同的意思。了解帮助文档的不同章节的含义,我们才可以使用【man】命令快速定位到需要的内容。

查看的内容。

1、查看命令有哪些章节?使用【whatis】检索 whatis databases 数据库。而我们刚安装的程序的帮助文档不会记录到数据库里,Linux 系统使用【makewhatis】来生成数据库的。系统把生成数据库的动作做成了系统的周期性任务,每周的星期天零晨4点22分执行一次生成 whatis 数据数据的任务。所以我们刚安装的程序,使用【whatis command】是查不到命令有多少章节的。如果需要查看的话,我们可以手动执行一下【makewhatis】命令,生成 whatis databases.

[root@node2~]#whatisshutdown

shutdown(2)-shutdownpartofafull-duplexconnection

shutdown(3p)-shutdownsocketsendandreceiveoperations

shutdown(8)-bringthesystemdown

2、如章节表示的意义如下所述

man1用户命令

man2系统调用

man3库调用

man4设备文件

man5配置文件

man6游戏

man7杂项

man8管理命令

2、使用【man N】来实现用户随意查看帮助文档章节的内容

[root@node2~]#man8shutdown

3、使用【help command】来查看 command 的使用方法,没有 man 显示那么详细.

[root@node2~]#shutdown--help

shutdown:invalidoption---

Usage:shutdown[-akrhHPfnc][-tsecs]time[warningmessage]

-a:use/etc/shutdown.allow

-k:don'treallyshutdown,onlywarn.

-r:rebootaftershutdown.

-h:haltaftershutdown.

-P:haltactionistoturnoffpower.

-H:haltactionistojusthalt.

-f:doa'fast'reboot(skipfsck).

-F:Forcefsckonreboot.

-n:donotgothroughinitbutgodownrealfast.

应用程序的帮助文档,通常是有不同的段落组成的。每个段落描述了应用程序的不同内容。了解帮助文档各段落表示的意义,我们可以快速找到我们想要读取到的内容。

手册的段落:

1、NAME命令名称

2、DESCRIPTION命令功能的详细描述

3、OPTIONS所有选项

4、FILES与当前命令相关的配置文件

5、EXAMPLES使用示例

6、SYNOPSIS使用格式

7、SEEALSO可参考的其它手册

说明:

如果,我们想快速知道 command 是怎么使用的,可以查看帮助手册的 EXAMPLES 段。命令的帮助手册有很多字符组成,那么我们如何定位到 EXAMPLES 字符呢?

当我们使用【man】打开查看命令的帮助手册页的时候,可以使用字符串搜索。

1、输入/keywork 从文档的首部向尾部搜索,搜索到指定的字符会高亮显示。

2、输入?keywork 从文档的尾部向首部搜索,搜索到指定的字符会高亮显示。

当我们搜索到字符在文档中多处出现有的时候,可以按一些键来快速显示下一个搜索到的字符。

1、N键:   跟搜索命令相反,显示找到的下一个关键字

2、n键:   跟搜索命令相同,显示找到的下一个关键字



Linux操作系统的知识点总结
答:Linux操作系统的基础知识并不是很难理解,熟悉掌握基础知识能更好的学习Linux。下面由我为大家整理了Linux操作系统的知识点总结的相关知识,希望对大家有帮助! Linux操作系统的知识点总结1.操作系统总体介绍 •CPU: 就像人的大脑,主要负责相关事情的判断以及实际处理的机制。 查询指令: cat /proc/cpuinfo •内存:...

linux命令 find找一个文件 只在当前目录找么? 想整个电脑的找 怎么办...
答:上面的命令就是表示在etc目录中查询httpd.conf这个文件。这里再说明一下“/ ”这个函数符号的含义,如果输入 “find/ ”就是表示要求Linux系统在整个ROOT目录下查找文件,也就是在整个硬盘上查找文件,而“find/etc”就是只在 etc目录下查找文件。因为“find/etc”表示只在etc目录下查找文件,所以查找的速度就相应要...

linux怎么停止进程
答:1.可以使用以面命令来查看ps -ef |grep tomcat2.tomcat它是一个Java进程,所以查找Java进程也可查找出来ps -ef|grep java3.可以看到用户 和进程编号可以用kill 进程编号结束进程 我学习Linux看过一本不错的书,名字叫《Linux就该这么学》,如若需要可看看。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起...

linux里的 > 是什么意思
答:>和>>都属于输出重定向,都可以输出内容到指定文件。>会覆盖目标的原有内容,当文件存在时,会先删除原文件,再重新创建文件,然后把内容写入该文件,否则直接创建文件。>>会在目标原有内容后追加内容,当文件存在时直接在文件末尾进行内容追加,不会删除原文件,否则直接创建文件。扩展阅读:Linux是一套...

linux中怎么切换到根目录
答:具体的操作步骤 :1,切换到家目录:此时可以直接用不带参数的cd命令,也可以用cd ~命令,还可以使用cd $HOME。本质上,这三个命令都是一样的。2,切换到根目录,并查到符号链接文件夹 3,上图中,列出了/目录下所有的文件夹,当然,我们还可以过滤掉非符号链接的文件夹,只需要配合"grep ^l"...

我想学习LINUX,该如何开始?
答:4)它易于使用和安装,我们没有必要把时间浪费在“装系统”上而应集中精力学习最有用的东西。【注】现在觉得RH很死板,AS,ES等用在服务器上或许不错,Personal desktop用mandrake,debian,suse都不错,笔者现在用Mandrake。在熟悉linux的基础上还需要掌握至少一种unix。进阶。掌握至少50个以上的常用命令。...

Linux里面ss -ntl命令作用是什么?
答:当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多。《Linux就该这么学》有Linux命令...

linux学习到底要学什么?
答:对于Linux的学习,可以分为四个阶段,Linux初级入门阶段→Linux中级进阶→Linux高级进阶→Linux资深方向细化阶段 第一阶段:初级阶段 初级阶段需要把linux学习路线搞清楚,任何学习都是循序渐进的,所以学linux也是需要有一定的路线。1. Linux基础知识、基本命令;2. Linux用户及权限基础;3. Linux系统进程管理...

linux或者unix该如何学?
答:我强烈建议:自己亲自动手把Linux装到你的硬盘上,你必须学会独立安装Linux系统的技能,对于现在的版本来说,其实跟装WinXP一样简单 从此现在开始,请不要以windows的工作方式来考虑问题,应该尝试挖掘Linux身上的“天才unix”的气质。三.进阶 掌握至少50个以上的常用命令 理解shell管道"|",文件流重定向">...

linux课程以及Linux主要学习哪些内容
答:对于Linux的学习,可以分为四个阶段,Linux初级入门阶段→Linux中级进阶→Linux高级进阶→Linux资深方向细化阶段 第一阶段:初级阶段 初级阶段需要把linux学习路线搞清楚,任何学习都是循序渐进的,所以学linux也是需要有一定的路线。1. Linux基础知识、基本命令;2. Linux用户及权限基础;3. Linux系统进程管理...