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在大文件压缩比较有优势。