嵌入式Linux基础之Shell命令

目录

前言

一、Shell是什么?

1.1 Shell的基本概念

1.2 Shell命令基本格式

二、常用的Shell命令

2.1 目录操作与文件管理

2.1.1 ls

2.1.2 pwd

2.1.3 cd

2.1.4 mkdir

2.1.5 rmdir

2.1.6 touch

2.1.7 rm

2.1.8 cp

2.1.9 mv

2.1.10 cat

2.1.11 find

2.1.12 less/more

2.1.13 diff

2.1.14 grep

2.1.15 file

2.1.16 head/tail

2.1.17 sort

2.1.18 uniq

2.1.19 ln

2.2 用户权限与属性

2.2.1 chmod

 2.2.2  chown

2.2.3 chgrp

2.2.4 sudo

2.3 备份压缩

2.3.1 gzip

2.3.2 gunzip

2.3.3 unzip

2.3.4 bzip2

2.3.5 tar

2.4 网络通信

2.4.1 ifconfig

2.4.2 ping

2.5 系统维护与磁盘管理

2.5.1 ps

2.5.2 top

2.5.3 kill

2.5.4 df

2.5.5 du


前言

        嵌入式技术,是一种将软硬件结合的技术,它以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

        基于以上嵌入式的特性,我们常用Linux作为嵌入式操作系统,因为其具有开源、免费的特点,并且Linux可移植性强,系统内核可裁剪,支持x86、ARM、MIPS等众多架构的处理器。


一、Shell是什么?

1.1 Shell的基本概念

  • shell直译是外壳,linux shell 就是linux的外壳,为用户提供使用Linux操作系统的接口。
  • shell 本质上是一个 命令解释器 ,从标准输入接收用户的命令,将命令进行解析传递给内核,内核根据命令,做出相应的动作。

1.2 Shell命令基本格式

Command  [-Options]  Argument1  Argument2 ...

     指令          选项          参数1          参数2 ...

  • Command:命令名称,Shell命令或程序,严格区分大小写,例如设置日期指令为date等;
  • Options:命令选项,用于改变命令执行动作的类型,由“-”引导,可以同时带有多个选项;
  • Argument:命令参数,指出命令作用的对象或目标,有的命令允许带多个参数。

注意:

  1. 一条命令的三要素之间用空格隔开;
  2. 若将多个命令在一行书写,用分号(;)将各命令隔开; 如果一条命令不能在一行写完,在行尾使
  3. 用反斜杠(\)标明该条命令未结束。
  4. 命令不带选项或参数时,通常意为使用默认选项或参数。

二、常用的Shell命令

2.1 目录操作与文件管理

2.1.1 ls

ls命令用于列出用户有权访问的任何目录的内容。

主要选项:

-a 显示指定目录下所有子目录与文件,包括隐藏文件

-A 显示指定目录下所有子目录与文件,包括隐藏文件,但不列出“.”、“..”

-l 以列表格式来显示文件的详细信息,如文件型态、权限、拥有者、文件大小等资讯

-t 将文件依建立时间之先后次序列出

2.1.2 pwd

pwd命令用于显示用户在文件系统中的当前位置(绝对路径)。

2.1.3 cd

cd命令用于切换当前工作目录。

常用路径:

" / " 根目录

" . " 当前目录

" .. " 当前目录的上一级目录

" ~ " 用户主目录

2.1.4 mkdir

mkdir命令用于创建目录。

mkdir  [ -p ]   directory_name

其中,directory_name为要创建的目录名,并且不能是已有的目录,通常不允许嵌套创建子目录。

2.1.5 rmdir

rmdir命令删除空的目录。

rmdir  [ -p ]   directory_name

其中,directory_name为要删除的一个或多个目录名。

使用选项“-p”表示可以递归删除子目录,即多层目录。

需要说明的是,删除的目录必须为空目录,并且必须具有对该目录有写入权限。

2.1.6 touch

touch命令用于创建一个新文件。

touch  [ filename ]

其中filename是文件名。

如果这个文件是已有文件,就改变这个文件的最后修改日期。

2.1.7 rm

用于在用户授权情况下,完成一个或多个文件/目录删除。

rm命令可以将目录下的子目录、文件全部删除。

对于链接文件,只是删除链接,原有文件保持不变。

rm  [ -选项 ]  [ TARGET ]

选项:-i 交互模式的删除操作。在删除目标文件之前将给出提示,要求用户确认,回答“y”表                示目标文件将被删除

           -f 非交互模式的删除操作,忽略不存在的文件

           -r 若源文件是一个目录,rm命令将递归地删除该目录下的所有子目录和文件

           -v 显示详细的删除过程

TARGET表示目标文件,既可以是普通文件,也可以是目录。

rm命令支持多文件/目录删除,删除操作需要具有必要的权限,通常至少要对目标文件/目录具有写入权限。

注意:由于rm命令执行物理删除,一旦一个文件被删除,就不能恢复。如果以超级用户身份登录的话,用户使用rm命令可以删除整个文件系统,因此使用rm命令要非常小心。

2.1.8 cp

cp命令用于将给出的文件或目录拷贝到另一个文件或目录中。

cp [ -选项 ] [ SOURCE ] [ TARGET ]

选项:-a 该选项通常在拷贝目录时使用,保留链接、文件属性,并递归地拷贝目录

           -d 拷贝时保留链接

           -f 非交互模式的复制操作。覆盖已经存在的目标文件而不提示

           -i 交互模式的复制操作,与-f选项相反。在覆盖目标文件之前会向用户确认

           -p 除复制源文件内容外,还将其修改时间和访问权限也同时复制

           -r 若源文件是一个目录,cp命令将递归地复制该目录下的所有子目录和文件

SOURCE表示源文件,TARGET表示目标文件。无论是源文件还是目标文件,既可以是普通文件,也可以是目录。cp命令支持将多个源文件复制到目标目录中。当然,复制操作需要具有必要的权限,通常至少要对源文件具有读取权限,对目标目录或文件具有写入权限。

2.1.9 mv

mv命令用来为文件或目录改名,或将文件或目录移入其它位置。

mv [ -选项 ] [ SOURCE ] [ TARGET ]

选项:-f 非交互模式的移动操作。覆盖已经存在的目标文件而不提示

           -i 交互模式的移动操作。在覆盖目标文件之前会向用户确认

           -v 显示详细的移动过程

SOURCE表示源文件,TARGET表示目标文件。无论是源文件还是目标文件,既可以是普通文件,也可以是目录。

2.1.10 cat

cat命令用于依次读取指定文件的内容,并打印到标准输出设备上。

cat [ -选项 ] [ FILENAME ]

选项:-v 用一种特殊形式显示控制字符,LFD与TAB除外

           -T 将TAB显示为“^I”,只与“-v”选项同时使用

           -E 在每行的末尾显示一个“$”符,只与“-v”选项同时使用

           -n 由 1 开始对所有输出的行数编号

注意:由于在vi编辑模式下不太方便复制代码到其他程序中,所以此命令通常用于查看并复制代码内容。

2.1.11 find

find命令用来在指定目录下查找文件,任何位于参数之前的字符串都将被视为欲查找的目录名。

如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。

find [ PATH ] [ -选项 ] [ 查找条件 ]

选项:-name “name” 文件名为“name”的文件

           -size n 文件大小为n的文件

           -type c 文件类型为type的文件

2.1.12 less/more

less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。

more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。

less [ -选项 ] [ FILENAME ]

选项:-e 当文件显示结束后,自动离开

           -i 忽略搜索时的大小写

           -N 显示每行的行号

           -s 显示连续空行为一行

more [ -选项 ] [ FILENAME ]

选项:-num 一次显示的行数

           +num 从第 num 行开始显示

           -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容

           -s 当遇到有连续两行以上的空白行,就代换为一行的空白行

2.1.13 diff

diff命令以逐行的方式,比较文本文件的异同处。

如果指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录。

diff [ -选项 ] [ FILENAME1 ] [ FILENAME2 ]

选项:-c 显示全部内文,并标出不同之处

           -y 以并列的方式显示文件的异同之处

           -v 显示版本信息

           -q 仅显示有无差异,不显示详细的信息

           -W<宽度> 在使用-y参数时,指定栏宽

2.1.14 grep

grep命令用于查找文件里符合条件的字符串。

若不指定任何文件名称,或是所给予的文件名 -,则 grep 指令会从标准输入设备读取数据。

grep [ -选项] [ 条件 ] [ FILENAME ]

选项:-b 在显示符合样式的那一行之前,标示出该行第一个字符的编号

           -c 计算符合样式的列数

           -l 列出文件内容符合指定的样式的文件名称

           -L 列出文件内容不符合指定的样式的文件名称

           -n 在显示符合样式的那一行之前,标示出该行的列数编号

2.1.15 file

file命令用于辨识文件类型,如二进制文件、文本文件、目录文件、设备文件,或Linux中其他类型的文件。

file [ FILENAME ]

选项:-b 列出辨识结果时,不显示文件名称

           -c 详细显示指令执行过程,便于排错或分析程序执行的情形

           -L 直接显示符号连接所指向的文件的类别

           -v 显示版本信息

2.1.16 head/tail

head命令用于显示文件或标准输入的前几行。用户通过查看文件前几行,就可以大体知晓文件内容,不必浏览整个文件。

tail命令用于显示文件或标准输入的最后几行。

head [ -num ] [ FILENAME ]

选项“-num”表示显示指定文件的前num行内容。如果单独使用head命令,默认显示10行的内容。如果没有目标文件,head命令就从标准输入读取内容。

tail [ +/-num ] [ FILENAME ]

选项+num表示从第num行以后开始显示;-num表示从距文件尾num行处开始显示。如果单独tail命令的话,默认显示末尾的10行内容。

2.1.17 sort

sort 命令用于将文本文件内容加以排序。

sort [ -选项 ] [ FILENAME ]

选项:-b 忽略每行前面开始出的空格字符

           -c 检查文件是否已经按照顺序排序

           -n 依照数值的大小排序

           -k [field] 按指定的列进行排序

2.1.18 uniq

uniq命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

uniq [ -选项 ] [ FILENAME ]

选项:-c 在每列旁边显示该行重复出现的次数

           -d 仅显示重复出现的行列

           -u 仅显示出一次的行列

2.1.19 ln

ln命令可以用于创建文件的链接文件。

ln -s [ SOURCE ] [ LINKNAME ]

其中,选项“-s”表示为创建软链接。在缺省情况下,创建硬链接。

参数source为目标文件,linkname为链接文件名。如果链接文件名已经存在但不是目录,将不做链接。目标文件可以是任何一个文件名,也可以是一个目录。

2.2 用户权限与属性

2.2.1 chmod

chmod是控制用户对文件的权限的命令。

只有文件所有者和超级用户可以修改文件权限。

chmod [ -选项 ] [ FILENAME ]

选项:八进制数(用来表示文件权限)

 2.2.2  chown

chown用于设置文件所有者和文件关联组。

chown [ -选项 ] [ USER/GROUP ] [ FILENAME ]

2.2.3 chgrp

chgrp用于变更文件或目录的所属群组。

chgrp [ -选项 ] [ 所属群组 ] [ FILENAME ]

2.2.4 sudo

sudo以系统管理者的身份执行指令。

若操作权限不够,终端会提示权限不够,这时需在指令前面加上sudo。

sudo [ -选项 ] [ 指令 ]

2.3 备份压缩

2.3.1 gzip

gzip用于压缩或解压缩文件。

经gzip压缩过后,其名称后面会多出".gz"的扩展名。

gzip [ -选项 ] [ FILENAME ]

选项:-l 列出压缩文件的内容

           -k 在压缩或解压时,保留输入文件

           -d 将压缩文件进行解压缩

2.3.2 gunzip

gunzip用于解压文件。

事实上 gunzip 就是 gzip 的硬连接,因此不论是压缩或解压缩,都可通过 gzip 指令单独完成。

2.3.3 unzip

unzip用于解压缩zip文件。

unzip [ -选项 ] [ zip文件 ]

选项:-l 显示压缩文件内所包含的文件

           -n 解压缩时不要覆盖原有的文件

2.3.4 bzip2

bzip2是.bz2文件的压缩程序,压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。

bzip2 [ -选项 ] [ FILENAME ]

选项:-d 执行解压缩

           -k 保留原始文件

           -c 将压缩与解压缩的结果送到标准输出

2.3.5 tar

tar用于备份文件。

tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。

tar [ -选项 ] [ FILENAME ]

选项:-c 表示创建用来生成文件包 
           -x 表示提取,从文件包中提取文件
           -t 可以查看压缩的文件
           -z 使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩
           -j 使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩
           -k 解开备份文件时,不覆盖已有的文件
           -m 还原文件时,不变更文件的更改时间
           -r 新增文件到已存在的备份文件的结尾部分

注:-zcvf  表示打包并调用gzip压缩,-zxvf 表示调用gzip解压缩。

        同理,也可调用bzip2处理。

2.4 网络通信

2.4.1 ifconfig

ifcofig用于显示或设置网络设备的状态。

常用来查看设置Ip地址。

ifconfig [ -选项 ]

选项:-a  显示所有网卡接口
           -up 激活网卡接口
           -down 关闭网卡接口
           -add<ip> 设置网络设备IPv6的IP地址

           -del<ip> 删除网络设备IPv6的IP地址

2.4.2 ping

ping用于检测主机联网状态。

执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

ping [ -选项 ]

选项:-d 使用Socket的SO_DEBUG功能

           -c<次数> 设置完成要求回应的次数

2.5 系统维护与磁盘管理

2.5.1 ps

ps用于显示当前进程的状态,类似于 windows 的任务管理器。

ps [ -选项 ]

选项:-A 列出所有的进程

           -w 显示加宽可以显示较多的资讯

           -au 显示较详细的资讯

           -aux 显示所有包含其他使用者的进程

注:查看指定进程信息时,常用:ps -ef | 关键字

2.5.2 top

top用于动态实时显示各进程的信息。

top [ -选项 ]

选项:-d 改变显示的更新速度

           -i 不显示任何闲置 (idle) 或无用 (zombie) 的进程

           -n 更新的次数,完成后将会退出 top

2.5.3 kill

kill字面意思是终止执行中的程序或工作,实际上是向指定进程发送一个信号。

一般配合ps命令查看进程编号PID,然后发送信号到指定PID

kill [ -选项/信号 ] [ 进程 ]

选项:-l 列出全部的信号名称

常用信号:1 (HUP):重新加载进程。

                  9 (KILL):杀死一个进程。

                  15 (TERM):正常停止一个进程。

2.5.4 df

df用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。

df [ -选项 ]

选项:-a 包含所有的具有 0 Blocks 的文件系统

           -h 使用常见可读的格式查看,如kb、mb等

2.5.5 du

du用于显示目录或文件的大小(默认显示当前目录文件)。

du [ -选项 ] [ 目录 ]

选项:-a 显示目录中个别文件的大小

           -b 以byte为单位显示目录或文件大小

           -k 以1024 bytes为单位显示目录或文件大小

           -h 以常见的K,M,G为单位,提高信息的可读性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值