嵌入式Linux常用命令

Linux常用命令-水印

1-文件管理:touch、mv、cp、rm、cat、gedit、find、file、which、whereis

2-文档编辑:grep

3-系统管理:sudo

4-系统设置:clear、reset

5-磁盘管理:pwd、cd、ls、mkdir、rmdir

6-网络通讯:ping

9-备份压缩:gzip、bzip2、tar

其他命令:man、info

参考资料

1-文件管理:touch、mv、cp、rm、cat、gedit、find、file、which、whereis

touch:创建空文件与修改时间戳

**语法格式:**touch 【参数】文件名

创建空文件:touch 文件名

举例:touch file2 在当前的目录下新建名为file2的文件

修改时间戳:touch 【参数】文件名

常见参数

-a改变档案的读取时间记录
-m改变档案的修改时间记录
-d设定时间和日期,可以使用不同的格式

举例:touch -d “2022-05-08 15:44” file.txt 修改file.txt 的时间

注意

(1)同一个目录下无法创建同名的文件

(2)Linux的文件名是区分大小写的,如file和File是两个不同的文件。

mv:修改文件(目录)名、移动文件路径

来自英文move的缩写

**语法格式:**mv [参数] 源文件 目标文件

常见参数:

-i若存在同名文件,则向用户询问是否覆盖
-f覆盖已有文件时,不进行任何提示
-b当文件存在时,覆盖前为其创建一个备份
-u当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

举例

mv 旧文件名 新文件名 ====>修改文件名
如:mv file1 filea将当前目录的文件file1改名为filea

mv 旧目录名 新目录名 ====>修改目录名
如:mv dir1 dira将当前目录下的目录dir1改为dira

mv 文件名 目录名 ====>移动路径
如:mv filea dira将当前目录下filea移动到dira子目录
如:mv filea ~ 将当前目录下filea移动家目录
如:mv ~/filea …将家目录下的fila移动到上一个路径

cp:复制文件或目录

来自copy的缩写

**语法格式:**cp [参数] 源文件 目标文件

常用参数:

-f若目标文件已存在,则会直接覆盖原文件
-i若目标文件已存在,则会询问是否覆盖
-d当复制符号连接时,把目标文件或目录也建立为符号连接,并指向
与源文件或目录连接的原始文件或目录
-r递归复制文件和目录

举例

cp 源文件名 目标文件名
cp File1 file2将当前目录下的文件File1拷贝成file2

cp 源文件名 目标目录名
cp file2 dira/将当前目录下的文件file2拷贝到dira子目录

cp 源目录名 目标目录名
举例:
cp -r dira dirb复制dira目录下的所有内容到dirb
其中,-r参数时递归复制

​ cp -i file2 dira如果dira目录下面有同名的file2,加入-i参数就会
​ 要求你确认是否覆盖同名的文件

rm:删除文件或目录

来自remove的缩写,其功能是用于删除文件或目录,一次可以删除多个文件,或递归删除目录及其内的所有子文件。

**语法格式:**rm [参数] 文件

常用参数:

-f(force 强制)强制删除(不二次询问)
-i(interactive 交互)删除前会询问用户是否同意删除
-r/R(recursive 递归)递归删除指定目录下的子目录和文件
-v显示指令的详细执行过程

举例

​ rm File1 删除当前目录下的文件File1
​ rm -i file2 删除文件file2,删除前要求你确认是否同意删除,其中y表明同意删除,n表示取消删除
​ rm -r dira 删除目录dira
​ rm -ir dirb 删除目录dirb,删除前要求你确认是否同意删除,其中y表明同意删除,n表示取消删除

注意

(1)删除文件(目录)前,确定该文件(目录)是否可以被删除。!!!rm也是一个很危险的命令,使用的时候要特别当心,尤其对于新手更要格外注意,如执行rm -rf /*命令则会清空系统中所有的文件,甚至无法恢复回来!!!所以我们在执行之前一定要再次确认下在哪个目录中,到底要删除什么文件,考虑好后再敲击回车,时刻保持清醒的头脑。

cat:在终端设备上显示文件内容

来自concatenate的缩写,其功能是用于查看文件内容,类似的查看命令:more、less、head、tail。但是cat命令适合查看内容较少、纯文本的文件。对于内容较多的文件,使用cat命令查看后会在屏幕上快速滚屏,用户往往看不清所显示的具体内容,只好按Ctrl+c键中断命令的执行,所以对于大文件,干脆用more命令吧~

**语法格式:**cat [参数] 文件

常用参数:

-n显示行数(空行也编号)
-s显示行数(多个空行算一个编号)
-b显示行数(空行不编号)
-E每行结束处显示$符号

举例

​ cat file1 将file1的内容打印到标准输出中(默认标准标准输出指向终端)
​ cat file1 file2 将file1和file2的内容串联并依次全部打印到标准输出中
​ cat -n file1 显示内容并在内容前显示行号。

gedit:图形应用程序的编辑器

gedit命令是GNOME桌面环境的官方文本编辑器,尽管gedit旨在简化和易用,但它是功能强大的通用文本编辑器;它可以用来创建和编辑各种文本文件。

**语法格式:**gedit [参数]

常用参数:

–list-encodings显示可使用的编码选项列表
–encoding=编码设置打开命令行中列出的文件时使用的字符编码
–new-window在已存在的gedit实例中新建一个最上层窗口
–new-document在已存在的 gedit 实例中新建一个文档

find:根据路径和条件搜索指定文件

来自于英文单词find。命令的功能是根据给定的路径和条件查找相关文件或目录,可以使用的参数很多,并且支持正则表达式,结合管道符后能够实现更加复杂的功能。

语法格式:find [路径] [参数] 查找条件

常用参数

-name匹配名称
-perm匹配权限(mode为完全匹配,-mode为包含即可)
-user匹配所有者
-group匹配所有组
-mtime -n +n匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n匹配修改文件权限的时间(-n指n天以内,+n指n天以前)

举例

find -name “test*”

find-example

示例功能:查找当前路径下,文件名中含有“test”的文件或文件夹, 返回查找文件的相对路径。

1)find /work/001_linux_basic/dira/ -name “test1.txt”
说明:
a)/work/001_linux_basic/dira/指明了查找的路径
b)-name表明以名字来查找文件
c)“test1.txt”,就指明查找名为test1.txt的文件
同理:
find /work/001_linux_basic/dira/ -name ".txt"
查找指定目录下面所以以.txt结尾的文件,其中
是通配符。
find /work/001_linux_basic -name “dira”
查找指定目录下面是否存在dira这个目录,dira是目录名。

注意

(1)如果没有指定查找目录,则为当前目录。find . -name .txt" 其中.代表当前路径 这和 find -name “.txt”
都是一样的功能

(2)find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate……等等的有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源。

file:识别文件类型

file命令的功能是用于识别文件的类型,也可以用来辨别一些内容的编码格式。由于Linux系统并不是像Windows系统那样通过扩展名来定义文件类型,因此用户无法直接通过文件名来进行分辨。file命令则是为了解决此问题,通过分析文件头部信息中的标识来显示文件类型,使用很方便。

**语法格式:**file [参数] 文件

常用参数:

-b列出辨识结果时,不显示文件名称 (简要模式)
-c详细显示指令执行过程
-i显示MIME类别
-L直接显示符号连接所指向的文件类别

举例

Linux下一切皆为文件

[root@linuxcool ~]# file anaconda-ks.cfg 
anaconda-ks.cfg: ASCII text
[root@linuxcool ~]# file /dev/sda
/dev/sda: block special (8/0)

file ~/.bashrc 为ASCII 编码的text类型
file ~/.vimrc 为UTF-8 Unicode 编码的text类型
file ~/Pictures/* 如图形文件JPEG/PNG/BMP格式
file ~/100ask/ 为directory表明这是一个目录
file /bin/pwd 出现 ELF 64-bit LSB executable,即为ELF格式的可执行文件
file /dev/* 出现character special(字符设备文件)、 block special(块设备文件)等

which:查找命令文件

which命令的功能是用于查找命令文件,能够快速搜索二进制程序所对应的位置(即查找命令或应用程序所在位置)。如果我们既不关心同名文件(find与locate),也不关心命令所对应的源代码和帮助文件(whereis),仅仅是想找到命令本身所在的路径,那么这个which命令就太合适了。

**语法格式:**which [参数] 文件

​ which 命令名/应用程序名

举例

[root@linuxcool ~]# which reboot
/usr/sbin/reboot

​ which pwd 定位到/bin/pwd 在终端上执行pwd实际上是去执行了/bin/pwd

​ which gcc 定位到/usr/bin/gcc

whereis:显示命令及相关文件的路径

whereis命令用来定位命令的二进制程序、源代码文件和man手册页等相关文件的路径。

**语法格式:**whereis [参数] [命令名]

常用参数:

-b查找二进制程序或命令
-B从指定目录下 查找二进制程序或命令
-m查找man手册文件
-M从指定目录下 查找man手册文件
-s只查找源代码文件
-S从指定目录下 查找源代码文件

举例

显示ln命令的程序和man手册页的位置:

[root@linuxcool ~]# whereis ln
ln: /usr/bin/ln  /usr/share/man/man1/ln.1.gz /usr/share/man/man1p/ln.1p.gz

显示ln命令的二进制程序的路径:

[root@linuxcool ~]# whereis -b ln
ln: /usr/bin/ln

显示ln命令的man手册页的路径:

[root@linuxcool ~]# whereis -m ln
ln: /usr/share/man/man1/ln.1.gz /usr/share/man/man1p/ln.1p.gz

注意

(1)whereis命令查找速度非常快,因为它不是在磁盘中乱找,而是在一个数据库中查询; 数据库是linux系统自动创建的,包含有本地所有文件的信息,并且每天通过自动执行updatedb命令更新一次。正因为这样,whereis命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到, 原因就是该数据库文件没有被更新。

2-文档编辑:grep

grep:强大的文本搜索工具

grep来自于英文词组“global search regular expression and print out the line”的缩写,意思是用于全面搜索的正则表达式,并将结果输出。使用grep命令来查找文件中符合条件的字符串。人们通常会将grep命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活。

语法格式: grep [参数] 文件

​ grep [选项] [查找所需] [文件名]

常用参数:

-n(number)列出所有的匹配行,显示行号
-w匹配整词
-r(recursive)递归搜索
-E支持扩展的正则表达式
-F匹配固定字符串的内容

举例

​ grep -n “book” test1.txt 在test1.txt中查找字符串book,并列出所在的行号
​ grep -rn “book” * grep -rn “字符串” 文件名 ,在当前目录递归查找字符串book。*则表示查找当前目录下的所有文件和目录

注意

(1)与之容易混淆的是egrep命令和fgrep命令。如果把grep命令当作是标准搜索命令,那么egrep则是扩展搜索命令,等价于“grep -E”命令,支持扩展的正则表达式。而fgrep则是快速搜索命令,等价于“grep -F”命令,不支持正则表达式,直接按照字符串内容进行匹配。

3-系统管理:sudo

sudo:授权普通用户执行管理员命令

sudo命令来自于英文词组“super user do”的缩写,中文译为“超级用户才能干的事”,其功能是用于授权普通用户执行管理员命令。使用sudo服务可以授权某个指定的用户去执行某些指定的命令,在满足工作需求的前提下尽可能少的放权,保证服务器的安全。配置sudo服务可以直接编辑配置文件/etc/sudoers,亦可以执行visudo命令进行设置,一切妥当后普通用户便能够使用sudo命令进行操作了。

**语法格式:**sudo [参数] 命令

常用参数:

-v本次需要验证当前用户的密码
-k下次强制验证当前用户的密码
-b将要执行的指令放在后台执行

4-系统设置:clear、reset

clear:清除屏幕

此命令会刷新屏幕,本质上只是让终端向后翻一页,当向上滚动鼠标时,还是可以看到之前命令的操作记录。

**语法格式:**clear [参数]

举例

[root@linuxcool ~]# clear 清屏

reset:设定终端机的状态

reset命令能够设定终端机的状态,能重新初始化屏幕,清除历史命令操作记录。当系统终端机因为程序不正常执行而进入一些奇怪的状态时,也可以用它来重设终端机。

**语法格式:**reset [参数]

举例

[root@linuxcool ~]# reset 重新初始化屏幕,并且清除了历史命令操作记录。

5-磁盘管理:pwd、cd、ls、mkdir、rmdir

pwd:显示当前工作目录的路径

pwd命令来自于英文词组”print working directory“的缩写,其功能是用于显示当前工作目录的路径,即显示所在位置的绝对路径。

语法格式:pwd [参数]

常用参数:

-L显示逻辑路径

举例

[root@linuxcool ~]# pwd
/root 查看当前的工作目录路径

cd:切换目录

cd命令来自于英文词组”change directory“的缩写,其功能是用于更改当前所处的工作目录,路径可以是绝对路径,也可以是相对路径,若省略不写则会跳转至当前使用者的家目录。

**语法格式:**cd [参数] [目录名]

常用参数:

-P如果切换的目标目录是一个符号链接,则直接切换到符号链接指向的目标目录
-L如果切换的目标目录是一个符号链接,则直接切换到符号链接名所在的目录
仅使用”-“选项时,当前目录将被切换到环境变量”OLDPWD”对应值的目录
~切换至当前用户目录
切换至当前目录位置的上一级目录

举例

​ cd ~ 切换到当前用户的家目录
​ cd . 切换到当前路径
​ cd … 切换到上一级路径
​ cd …/… 切换到上上级路径(其中:在linux中路径分隔符为斜杠/)
​ cd - 切换到上一次的路径

注意

(1)切换的路径必须保证存在,在用cd命令前,可以使用ls命令来查看某一个路径下面的所有内容。

(2)一定记得多使用Tab键,Tab键可以自动补全你所输入的路径

ls:显示指定工作目录下的文件及属性信息(即列出目录内容)

ls来自于英文单词list的缩写,也正如list单词的英文意思,其功能是列举出指定目录下的文件名称及其属性。默认不加参数的情况下,ls命令会列出当前工作目录中的文件信息。

语法格式: ls [参数] [文件]

常用参数:

-a显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l使用长格式列出文件及目录的详细信息
-h显示文件以及列出文件大小
-r将文件以相反次序显示(默认依英文字母次序)
-t根据最后的修改时间排序
-A同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录)
-S根据文件大小排序

举例

1)ls
直接ls,则显示当前所在目录的内容

2)ls 目录名
如:ls /home,则指定显示/home的内容
如:ls ~ ,则指定显示/home/book的内容

3)ls 选项
或:ls 参数 目录名
常用的参数:
-l(long的缩写),显示目录下文件的更详细的信息(文件权限、文件最后修改时间、文件大小)
-a(all的缩写),显示了隐藏文件
-h(human-able的缩写),将文件大小以K(KB)、M(MB)、G(GB)来表示

mkdir:创建目录文件

mkdir命令来自于英文词组“make directories”的缩写,其功能是用来创建目录文件。

语法格式 : mkdir [参数] 目录

常用参数:

-p递归创建多级目录
-m建立目录的同时设置目录的权限
-z设置安全上下文
-v显示目录的创建过程

注意

(1)若要创建的目标目录已经存在,则会提示已存在而不继续创建,不覆盖已有文件。而目录不存在,但具有嵌套的依赖关系,例如a/b/c/d/e/f,要想一次性创建则需要加入-p参数,进行递归操作。

rmdir:删除空目录文件

rmdir命令来自于英文词组“remove directory”的缩写,其功能是用于删除空目录文件。

语法格式 : rmdir [参数] 目录

常用参数:

-p用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
-v显示命令的详细执行过程

注意

(1)rmdir命令仅能够删除空内容的目录文件,如需删除非空目录时,则需要使用带有-R参数的rm命令进行操作。

(2)而rmdir命令的-p递归删除操作亦不意味着能删除目录中已有的文件,而是要求每个子目录都必须是空的。

6-网络通讯:ping

ping:测试主机间网络连通性

ping命令的功能是用于测试主机间网络连通性,发送出基于ICMP传输协议的数据包,要求对方主机予以回复,若对方主机的网络功能没有问题且防火墙放行流量,则就会回复该信息,我们也就可得知对方主机系统在线并运行正常了。

**语法格式:**ping [参数] 目标主机

常用参数:

-c指定发送报文的次数
-i指定收发信息的间隔时间

举例

[root@book ~]# ping www.baidu.com 测试与指定网站服务器之间的网络连通性(需手动按下“Ctrl+c”组合键结束命令)

[root@book ~]# ping -c 2 -i 0.1 -W 2 192.168.1.10 测试与指定主机之间的网络连通性,发送2次请求包,每次间隔0.1秒,最长等待时间为2秒

注意

(1)值得我们注意的是Linux与Windows相比有一定差异,Windows系统下的ping命令会发送出去4个请求后自动结束该命令;而Linux系统则不会自动终止,需要用户手动按下组合键“Ctrl+c”才能结束,或是发起命令时加入-c参数限定发送个数。

9-备份压缩:gzip、bzip2、tar

gzip:压缩和解压文件

gzip命令来自于英文单词gunzip的缩写,其功能是用于压缩和解压文件。gzip是一款使用广泛的压缩工具,文件经过压缩后一般会以.gz后缀结尾,与tar命令合用后即为.tar.gz后缀。压缩后可以很好提升存储空间的使用率。

**语法格式:**gzip [参数] 文件

常用参数

-d(decompress)解开压缩文件
-f强行压缩文件
-k(keep)保留原文件
-l(list)列出压缩文件的相关信息

举例

1)查看
gzip -l 压缩文件名
比如:gzip -l pwd.1.gz

2)解压
gzip -kd 压缩文件名
比如:gzip -kd pwd.1.gz
该压缩文件是以.gz结尾的单个文件

3)压缩
gzip -k 源文件名
比如:gzip -k mypwd.1
得到了一个.gz结尾的压缩文件,并保留源文件

注意

(1)如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件,并删除原有的文件,所以说,推荐使用gzip -k 来压缩源文件。

(2)相同的文件内容,如果文件名不同,压缩后的大小也不同。

(3)gzip只能压缩单个文件,不能压缩目录。

bzip2:bz2文件的压缩程序

Linux系统中bzip2命令的英文是“bunzip2”,即.bz2文件格式的压缩程序; bzip2命令系统默认是没有安装的,需要安装bzip2库才可以使用此命令。bzip2命令采用新的压缩算法,在压缩大文件的时候,比gzip更好。

**语法格式:**bzip2 [参数] 文件系统

常用参数

-d(decompress)执行解压缩
-t(test)测试.bz2 压缩文件的完整性
-k(keep)bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数

举例

1)压缩
bzip2 -k 源文件名
比如:bzip2 -k abc.txt
得到一个.bz2后缀的压缩文件
2)解压
bzip2 -kd 压缩文件名
bzip2 -kd abc.txt.bz2

注意

(1)若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。所以,推荐使用bzip2 -k 来压缩源文件。

(2)bzip2只能压缩单个文件,不能压缩目录。

tar:压缩和解压缩文件

tar命令的功能是用于压缩和解压缩文件,能够制作出Linux系统中常见的.tar、.tar.gz、.tar.bz2等格式的压缩包文件。gzip、bizp2只能对一个文件进行压缩,而不能对多个文件和目录进行压缩,所以需要tar来对多个目录、文件进行打包和压缩。

**语法格式:**tar [参数] 文件或目录

常用参数:

-c建立新的备份文件,表示创建用来生成文件包
-x表示提取,从文件包中提取文件
-t列出备份文件的内容,查看压缩的文件
-z使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。文件名最好为*.tar.gz
-j使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
-v(verbose)详细报告tar处理的信息
-f(file)表示文件,后面接着一个文件名。
-C <指定目录>仅压缩指定目录里的内容或解压缩到指定目录
– -remove-files归档/压缩之后删除源文件

举例

1.tar打包、gzip压缩
1)压缩
tar -czvf 压缩文件名 目录名
如:tar czvf dira.tar.gz dira

注意:
tar -czvf与tar czvf是一样的效果,所以说,为了方便,后面统一取消-。

2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.gz

3)解压
tar xzvf 压缩文件名
tar xzvf 压缩文件名 -C 指定目录
如:tar xzvf dira.tar.gz 解压到当前目录
如:tar xzvf dira.tar.gz -C /home/book 解压到/home/book

2.tar打包、bzip2压缩
1)压缩
tar cjvf 压缩文件名 目录名
如:tar cjvf dira.tar.bz2 dira

2)查看
tar tvf 压缩文件名
如:tar tvf dira.tar.bz2

3)解压
tar xjvf 压缩文件名
tar xjvf 压缩文件名 -C 指定目录
如:tar xjvf dira.tar.bz2 解压到当前目录
如:tar xjvf dira.tar.bz2 -C /home/book 解压到/home/book

3.将当前工作目录内所有以.cfg为后缀的文件打包,不进行压缩

tar cvf backup3.tar *.cfg

其他命令:man、info

帮助命令

方式含义
–help提供命令帮助信息
man提供命令、API、概念、配置文件等帮助信息
info和man有很多的交集,能更完整GUN工具

Linux系统中提供了三种帮助方式,–help是个命令参数,man和info是独立的命令。

它们都是Linux中获取帮助信息最权威,最快捷的途径。

man:查看帮助信息

man命令来自英文manual的缩写,即“帮助手册”。其功能是用于查看命令、配置文件及服务的帮助信息。man命令作为官方工具,它的资料准确且具有系统性。

一份完整的帮助信息包含以下信息:

结构名称代表意义
NAME命令的名称
SYNOPSIS参数的大致使用方法
DESCRIPTION介绍说明
EXAMPLES演示(附带简单说明)
OVERVIEW概述
DEFAULTS默认的功能
OPTIONS具体的可用选项(带介绍)
ENVIRONMENT环境变量
FILES用到的文件
SEE ALSO相关的资料
HISTORY维护历史与联系方式

**语法格式:**man [参数] 对象

常用参数:

-a在所有的man帮助手册中搜索
-d检查新加入的文件是否有错误
-f显示给定关键字的简短描述信息
-p指定内容时使用分页程序
-M指定man手册搜索的路径
-w显示文件所在位置

快捷键:

q退出
Enter按行下翻
Space按页下翻
b上翻一页
/字符串在手册页中查找字符串

举例

查看指定命令(ls)的帮助信息:

[root@book ~]# man ls

查看指定配置文件的帮助信息:

如果即有passwd命令,又有/etc/passwd文件,则需要手动指定帮助信息的编号。编号规则:普通命令为1,函数为2,库文件为3,设备为4,配置文件为5,游戏为6,宏文件为7,系统命令为8,内核程序为9,TK指令为10。

[root@book ~]# man 5 passwd

找到某个命令的帮助信息的存储位置:

[root@book ~]# man -w ls
/usr/share/man/man1/ls.1.gz

info:阅读info格式的文件,查看帮助信息

info命令来自于英文单词information (信息)的缩写。可以阅读info格式的文件,用来查看帮助信息。info文档可以支持链接跳转功能。info文档都存放在/usr/share/info目录中,该目录提供了整个软件包的帮助文档。

**语法格式:**info [参数] [菜单项目]

常用参数:

-w显示info文档的物理位置
-f指定要访问的info文件
-n在首个浏览过info文件中指定节点
-O跳转至命令行选项节点

举例

参考资料

(1)Linux命令大全手册:https://www.linuxcool.com/

(2)百问网资料中心:http://download.100ask.net/

Logo

更多推荐