linux命令概念,Linux命令概念

本篇总结Linux操作系统下命令的概念

Linux命令概念

在Linux的bash中命令有两类:

内部命令(builtin): bash中自带的命令(如echo)

外部命令: 在Linux文件系统中的程序执行的命令二进制命令;

脚本命令;

在Linux中命令是以空白符分隔(可以是多个分隔符)[空格敏感, $敏感…]

对空白符切割之后, 认为第一个是命令, 后面的是参数;

在执行命令时, bash首先会进行几类扩展, 包括命令替换, 变量替换, 正则替换等等;

转换结束之后才会真正执行命令!

操作系统是怎么寻找指令的?

通过操作系统中的PATH环境变量:

# 在Windows中是两个%

[root@490de829cb74 /]# echo $PATH

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

在shell中会从左到右依次扫描这些路径, 去寻找命令;

内部常用变量变量

含义

$0

脚本名

$1 -$9

位置参数1-9

${ 10 }

位置参数10

$#

位置参数的个数

$*

所有位置参数(作为单个字符串)

$@

所有位置参数(每个作为单独字符串)

${ #* }

传递到脚本中的命令行参数的个数

${ #* }

传递到脚本中的命令行参数的个数

$?

返回值

$$

脚本进程的PID

$-

传递到脚本中的标识

$_

之前命令的最后一个参数

$!

运行在后台的最后一个作业的进程ID(PID)

help

学习shell的内部命令可以通过help命令

使用: help + 内部命令(可通过type查看是不是内部命令)

例1:

# help

GNU bash, version 4.1.2(2)-release (x86_64-redhat-linux-gnu)

These shell commands are defined internally. Type `help' to see this list.

Type `help name' to find out more about the function `name'.

Use `info bash' to find out more about the shell in general.

Use `man -k' or `info' to find out more about commands not in this list.

A star (*) next to a name means that the command is disabled.

......

单独使用help可以获取所有的内部命令;

例2:

# help echo

echo: echo [-neE] [arg ...]

Write arguments to the standard output.

Display the ARGs on the standard output followed by a newline.

Options:

-n do not append a newline

-e enable interpretation of the following backslash escapes

-E explicitly suppress interpretation of backslash escapes

......

# echo -n 'Hello world'

Hello world[root@490de829cb74 /]#

whereis

使用: whereis + 命令

作用: 定位命令的位置;(和type类似)

man

使用: man + 命令

作用: 查看外部命令的说明;

安装:

# yum install man man-pages

type命令

使用: type + 命令;

作用: 可以获取到文件类型(命令的来源)

例1:

$ type ifconfig

ifconfig 是 /sbin/ifconfig

例2:

[root@490de829cb74 /]# type echo

echo is a shell builtin

[root@490de829cb74 /]# type bash

bash is /bin/bash

file命令

使用: file + 文件

作用: 获取文件的解释

例1:

$ file /sbin/ifconfig

/sbin/ifconfig: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/l, for GNU/Linux 2.6.32, BuildID[sha1]=5b520b9bf0713ebab9f31dcd60400359b0fb186c, stripped

注:ELF表示二进制程序的编码格式(类似于Windows下的exe)

例2:

# file /usr/bin/yum

/usr/bin/yum: a /usr/bin/python script text executable

# vi /usr/bin/yum

#!/usr/bin/python

import sys

try:

import yum

except ImportError:

print >> sys.stderr, """\

There was a problem importing one of the Python modules

required to run yum. The error leading to this problem was:

......

注:

yum命令本质上是一个python脚本;

在执行yum命令时, 首先会启动python解释器(/usr/bin/python), 然后通过python解释器执行这个脚本!

echo

显示一个字符串;(打印到标准输出)

例:

# echo "hello world"

hello world

ps

显示进程信息

例: ps -fe

[root@490de829cb74 /]# ps -fe

UID PID PPID C STIME TTY TIME CMD

root 1 0 0 08:13 pts/0 00:00:00 /bin/bash

root 46 0 0 08:21 pts/1 00:00:00 /bin/bash

root 71 46 0 08:41 pts/1 00:00:00 ps -fe

pstree

将所有行程以树状图显示

树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root)

如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程

例:

zk@zk:~$ pstree

......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值