嵌入式Linux_环境搭建篇_简单的shell命令

shell的功能

  • 从键盘接收数据并回显
  • 解析输入的字符串,寻找程序,执行程序
    • shell解析字符串,这些字符串使用空格分开,第一部分是程序名,其余是参数
    • shell会从环境环境变量PATH所指定的位置去查找应用程序,当然也可以使用绝对路径或者相对路径直接找到程序
    • 找到程序后,启动程序,并传入参数

设置环境变量

永久修改环境变量

  • 对所有用户都有效 /etc/environment
#在此文件的最后追加上要加入PATH环境变量的路径
#重启或重新登录后生效
  • 对当前用户有效 ~/.bashrc
#在此文件的使用export追加要加入的环境变量即可
export PATH=$PATH:/opt/arm-2009q1/bin
export PATH=$PATH:/opt/wiznote
#重启或重新登录后生效。不过也可以直接使用
source ~/.bashrc
#直接生效

临时设置环境变量

export PATH=$PATH:/opt/wiznote

目录操作相关命令

  • pwd:print working directory
  • cd:change directory
  • ~:表示当前用户的家目录
  • .:表示当前目录
  • :表示当前目录的上级目录
  • -:表示上次操作的目录
  • /:表示Linux下的路径分割符,Windows下 / 表示路径分割符
  • 绝对路径:从根目录一级一级的找下去,需要完整的路径名
  • 相对路径:参照当前目录进行查找
  • mkdir:make directory 创建目录 <-p:parent的缩写 如果创建目录的父目录不存在,则需要加上-p参数>
  • rmdir:remove directory
    • rmdir不能删除非空目录

文件操作相关命令

  • touch: linux文件名区分大小写,不能创建已有文件的同名文件
  • mv:(move的缩写):修改文件(目录)名,移动文件
  • cp:(copy的缩写):复制文件(目录)
    • -r 递归复制
    • -i 如果复制的文件有同名文件,-i会确认是否覆盖之前的同名文件
  • rm:(remove的缩写)删除文件
    • -i 删除文件前需要确认 y 确认删除 n取消删除
    • -r 递归删除

文件查看和编辑

  • cat:cat filex 后面可跟多个文件,多个文件的内容会被依次输出
    • -n 显示行号

清屏

  • clear:实质是刷新屏幕,会保留历史记录,只是让终端向后翻页
  • reset:cat filex 后面可跟多个文件,多个文件的内容会被依次输出
  • 注意:clear和reset命令的实际效果自我感觉和对应的linux发行版还是有关系的。目前在ubuntu上的却如上所述。但是在deepin v20上两个命令的实际效果却恰恰相反。

帮助

  • man:手册的侧重点是1,2,3
    • 1 :可执行程序或者shell命令
    • 2 :系统调用------------内核提供的函数(查头文件)
    • 3 :库调用--------------常用的函数库
    • 4 :特殊文件------------在/dev下的设备文件
    • 5 :文件格式和约定-------对一些文件进行解释,如/etc/passpd
    • 6 :游戏程序------------游戏程序
    • 7 :杂项----------------包括宏包和约定
    • 8 :系统管理员使用的命令-通常只有root可用
    • 9 :内核相关------------Linux内核相关文件
  • info:也可查询相关命令的信息,没有像man格式化的那么统一
  • –help或-help或-h:某些命令自带的help选项,以对此命令的使用进行说明。

find

查找符合条件的文件
格式:find 目录 [选项] [条件]

  • **-name:**按名字查找
    • 条件可以使用通配符
    • 目录未指定则表示在当前目录查找
  • find也可用于查找最近几天,几小时之内(之前有变动的文件)
    • find . -time -2 :查找当前目录下两天内有变动的文件
gaoy@gy-PC:~$ find GY/git/ -name "*.md"
GY/git/gOnvifServer/README.md
GY/git/gOnvifServer/README.en.md
GY/git/linux-c/README.md

grep

目的:使用grep来查找文件中符合条件的字符串
格式:grep [选项] [查找模式] 文件名

grep -rn “字符串” 文件名

  • -r:递归查找
  • -n:显示目标位置的行号
  • -w:全词匹配
gaoy@gy-PC:~/Desktop/sh$ grep  -n "hxGUI"  hxGUIUp.sh 
2:	rm /home/bin/HISI_HI3536V100_hxGUI.bin
3:	rm /home/buffer/HISI_HI3536V100_hxGUI.bin
4:	scp gy@192.168.168.240:/home/gy/HISOME_NVR/HI3536/svn/hxGUI/release/hisome/bin/HISI_HI3536V100_hxGUI.bin  .
5:	ln -sf /home/buffer/HISI_HI3536V100_hxGUI.bin /home/bin/HISI_HI3536V100_hxGUI.bin
6:	chmod +x /home/buffer/HISI_HI3536V100_hxGUI.bin
7:	ps | grep HISI_HI3536V100_hxGUI.bin
8:	kill -9 `pidof HISI_HI3536V100_hxGUI.bin`
11:	ps | grep HISI_HI3536V100_hxGUI.bin

file

目的:识别文件类型
格式:file 文件名

gaoy@gy-PC:~$ file .bashrc 
.bashrc: ASCII text ##ASCII编码的文本文件
gaoy@gy-PC:~/Pictures$ file /bin/pwd
/bin/pwd: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=bdd14130958ba45c3fe443b2d23dee6bb7d12427, stripped ##64位可执行文件

which 和whereis

目的:查找命令或应用程序的所在位置
格式:which 命令/应用程序名

gaoy@gy-PC:~/Pictures$ which  pwd
/usr/bin/pwd

格式:和whereis 命令/应用程序名
查找到可执行程序的位置,以及手册页的位置,还有头文件的位置

gaoy@gy-PC:~/Pictures$ whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz

压缩

目的:在网络传递文件时,可以先将文件压缩再传递以减少网络带宽
类型

  • 有损压缩:如mp4,mp3格式,即压缩过程中,减少了数据量。
  • 无损压缩:普通文件的压缩,为了保证信息的正确,不希望压缩或解压缩后文件出现问题

常用压缩命令

单文件压缩:gzip,bzip2

gzip的常用选项:以.gz结尾

  • -l:列出压缩文件的内容
  • -k:压缩后解压时,保留原来的压缩文件
  • -d:将压缩文件进行解压缩,不带-k的话解压后不再保留之前的压缩文件
  • **注意:**gzip不加任何选项此时为压缩文件,会生成.gz结尾的压缩文件,并删除原有文件。推荐使用gzip -k 来压缩源文件: gzip -K 源文件
  • 注意: 相同的文件内容,文件名不同,压缩后的压缩文件大小也不同。gzip只能压缩单个文件,不能压缩目录
###列出压缩文件内容
gaoy@gy-PC:~/mypwd$ gzip -l pwd.1.gz 
        compressed        uncompressed  ratio uncompressed_name
            872                1481  42.3% pwd.1
###解压缩
gaoy@gy-PC:~/mypwd$ gzip -kd pwd.1.gz 
gaoy@gy-PC:~/mypwd$ ls
pwd.1  pwd.1.gz
###压缩
gaoy@gy-PC:~/mypwd$ gzip  -k pwd.2 
gaoy@gy-PC:~/mypwd$ ls
pwd.1.gz  pwd.2  pwd.2.gz

bzip2的常用选项:以.bz2结尾

  • -k:压缩后解压时,保留原来的压缩文件
  • -d:将压缩文件进行解压缩,不带-k的话解压后不再保留之前的压缩文件
  • **注意:**bzip2不加任何选项此时为压缩文件,会生成.bz2结尾的压缩文件,并删除原有文件。推荐使用bzip2 -k 来压缩源文件: bzip2 -K 源文件
  • 注意: 相同的文件内容,文件名不同,压缩后的压缩文件大小也不同。bzip2只能压缩单个文件,不能压缩目录
###解压缩
gaoy@gy-PC:~/mypwd$ ls
pwd.2
gaoy@gy-PC:~/mypwd$ bzip2 -k pwd.2 
gaoy@gy-PC:~/mypwd$ ls
pwd.2  pwd.2.bz2
###压缩
gaoy@gy-PC:~/mypwd$ ls
pwd.2
gaoy@gy-PC:~/mypwd$ bzip2 -k pwd.2 
gaoy@gy-PC:~/mypwd$ ls
pwd.2  pwd.2.bz2

压缩有两个参数:压缩时间,和压缩比。一般情况下小文件用gzip来压缩,大文件使用bzip2来压缩

#pwd.2是一个小文件---可见压缩后gzip得到的文件更小
gaoy@gy-PC:~/mypwd$ ls -l
总用量 12
-rw-r--r-- 1 gaoy gaoy 1481 3月   5 16:30 pwd.2
-rw-r--r-- 1 gaoy gaoy  942 3月   5 16:30 pwd.2.bz2
-rw-r--r-- 1 gaoy gaoy  878 3月   5 16:30 pwd.2.gz
#sysMgnt.db是一个相对较大的文件---可见压缩后bzip2得到的文件更小
gaoy@gy-PC:~/mypwd$ ls -l
总用量 6948
-rw-r--r-- 1 gaoy gaoy 6209536 3月   5 16:47 sysMgnt.db
-rw-r--r-- 1 gaoy gaoy  328151 3月   5 16:47 sysMgnt.db.bz2
-rw-r--r-- 1 gaoy gaoy  572835 3月   5 16:47 sysMgnt.db.gz

多个文件和目录使用tar

tar:可对多个目录,多个文件,进行先打包再压缩。

  • -c: 创建用来生成文件包
  • -x: 表示提取,从文件包中提取文件
  • -t:可查看压缩的文件
  • -z: 以gzip的方式进行处理,它与-c结合表示压缩,与-x结合表示解压缩
  • -j: 以bzip2的方式进行处理,它与-c结合表示压缩,与-x结合表示解压缩
  • -v:详细报告tar处理信息
  • -f: 表示文件,后面接着一个文件名
  • -C <指定目录>:表示解压到指定目录

tar打包,gzip压缩

  • 压缩:tar -czvf 压缩包名称.tar.gz 待压缩的目录名
  • 查看:tar -vtf 压缩包名.tar.gz
  • 解压:
    • 解压到当前目录:tar -xzvf 压缩包.tar.gz
    • 解压到指定目录:tar -xzvf 压缩包.tar.gz -C 目录

tar打包,bzip2压缩

  • 压缩:tar -cjvf 压缩包名称.tar.bz2 待压缩的目录名
  • 查看:tar -vtf 压缩包名.tar.bz2
  • 解压:
    • 解压到当前目录:tar -xjvf 压缩包.tar.bz2
    • 解压到指定目录:tar -xjvf 压缩包.tar.bz2 -C 目录

注意: bzip2在大文件压缩比较有优势。

上一篇:STM32 单片机 导盲杖 超声波 18650电池 光强GY-30


下一篇:制作自己的 Kindle 电子书