,如
- 命令 --help
- ls --help
如
- help shell内部命令
用来确定是否是 shell 内部命令,
- whereis cd
用来获取内部命令帮助
- help cd
不推荐使用!!
- info 命令
进入子帮助页面
- -回车
up 进入上层页面
- -u
next 进入下一个帮助小节
- -n
previous 进入上一个帮助小节
- -p
quit 退出
- -q
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 |
|
0 | 标准输入 |
显示器 |
|
1 | 标准输出 |
显示器 |
|
2 | 标准错误输出 |
如
,将内容保存在日志文件中只要命令有输出就能重定向到文件中特别注意,错误输出大于号和文件之间不能有空格!!!
- ipconfig > ~/desktop/test.log
3 和 4 作用是一样的!推荐 3,4,5!
特别这个文件
,被称为『黑洞』,如果把命令重定向到这儿,系统就直接抛弃了
- /dev/null
选项:
- wc【选项】【文件名】
统计字节数
- -c
统计单词数
- -w
统计行数这里首先引入这个例子——
- -l
,
- wc < test.log
命令原本的输入是键盘,现在重新定向为文件,当然,其实不需要
- wc
另外一个例子是——
- <
,它会要求你不断输入,知道再遇到
- wc << ddy
,就会停止并做相关统计,实际工作中基本不会用到
- ddy
通配符 | 作用 |
---|---|
? | 匹配一个任意字符 |
* | 匹配 0 个或任意多个任意字符,也就是可以匹配任何内容 |
[] | 匹配中括号中任意一个字符。例如 [abc] 代表一定匹配一个字符,或者 a 或者 b 或者 c |
[-] | 匹配中括号中任意一个字符,- 代表一个范围。例如,[a-z] 代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如 [^0-9] 代表匹配一个不是数字的字符 |
符号 | 作用 |
---|---|
'' | 单引号。在单引号中所有的特殊符号,如 "$" 和 "`"(反引号)都没有特殊含义 |
"" | 双引号。在双引号中特殊符号都没有特殊含义,但是 "$"、"`" 和 "\" 是例外,拥有 "调用变量的值"、"引用命令" 和 "转义符" 的特殊含义 |
`` | 反引号。反引号括起来的内容是系统命令,在 Bash 中会先执行它。和 $() 作用一样,不过推荐使用 $(),因为反引号非常容易看错。 |
$() | 和反引号一样,用来引用系统命令 |
# | 在 Shell 脚本中,# 开头的行代表注释 |
$ | 用于调用变量的值,如需要调用变量 name 的值时,需要用 $name 的方式得到变量的值。 |
\ | 转义符,跟在 \ 之后的特殊符号将失去特殊含义,变味普通字符。如 \$ 将输出 "$" 符号,而不当作是变量引用 |
- aa=123
- echo $aa
- # 输出123
- echo '$aa'
- # 输出$aa
- echo "$aa"
- # 输出123
- aa=`ls` # 先执行,再赋值,易弄错,不推荐
- echo $aa
- # 输出ls的输出
- aa=$(ls) # 推荐
- echo $aa
- # 输出ls的输出
- echo \$aa # 让特殊符号失去作用
- # 输出$aa
在后台数据库中按文件名搜索,速度更快这个数据库是
- locate 文件名
,它的更新速率默认是一天一次,Linux 版本的不同,名字不同,Mac 下在
- /var/lib/mlocate
可以使用
- /var/db/locate.datebase
命令强制更新数据库,Mac 下是
- updatedb
,根据距上次更新后更改的文件数目多少,速度不同只能通过文件名来搜索遵守
- sudo /usr/libexec/locate.updatedb
配置文件里的筛选规则,所以即使你更新了数据库也不一定能 locate 到所要寻找的文件
- /etc/updatedb.conf
- whereis【选项】命令名
只查找可执行文件
- -b
只查找帮助文件
- -m
可以查看别名,Mac 也没这个功能
- which 命令名
命令是 shell 自带的,找不到,
- cd
和
- whereis
能找到的都是后来安装的命令
- which
Linux 从
定义的路径中找寻命令,所有命令不用麻烦打绝对路径
- PATH
查看路径,
- echo $PATH
隔开
- :
- find【搜索范围】【搜索条件】
按照文件名搜索
- -name
文件名不区分大小写
- -iname
#find 是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配的。
* 匹配任意内容(任意多个字符)
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
如
匹配 abc 或 abd
- find desktop/ -name "ab[cd]"
按照所有者搜索, 如
- -user
是找 root 目录下所有者为 root 的文件
- find /root -user root
是找没有所有者的文件,如
- -nouser
是找 root 目录下没有所有者的文件
- find /root -nonuser
如
- find 【搜索范围】 -(X)time (+/-)时间
是查找十天前修改的文件
- find /root -mtime +10
10 天前修改的文件
- +10
10 天当天修改的文件
- 10
10 天内修改的文件
- -10
访问文件的时间
- atime
改变文件属性的时间
- ctime
修改文件内容的时间
- mtime
小写
- find 【搜索范围】-size (+/-)X(k/M)
是 kB,大写
- k
是 MB 如
- M
是查找 root 目录下大小大于 10kB 的文件
- find /root -size +10k
和
- find 【搜索范围】-inum 【i节点号】
正好相反
- ls -i 【文件名】
查找 20~50kB 大小的文件
- find /root -size +20k -a -size -50k
查找小于 20 或者大于 50kB 的文件
- find /root -size -20k -o -size +50k
查找 20~50kB 的文件,并列出详细信息
- find /root -size +20k -a -size -50k -exec ls -lh {}\;
用来继续处理搜索到的文件
- -exec/-ok 命令 {} \;
找到 i 节点号为 606838 的文件然后删除
- find /root -inum 606838 -exec rm -rf {} \;
Linux 中最常见的压缩格式有:.zip .gz .bz2 .tar.gz .tar.bz2
- JeffsMacBook-Pro:~ Jeff$ zip ~/desktop/install.zip ~/desktop/install.log
- adding: Users/Jeff/desktop/install.log (stored 0%)
- JeffsMacBook-Pro:~ Jeff$ ls -l ~/desktop
- -rw-r--r-- 1 Jeff staff 0 4 13 18:35 install.log
- -rw-r--r-- 1 Jeff staff 210 4 15 23:07 install.zip
#在哪个目录下操作就解压到那个目录下
- unzip 压缩文件
#压缩后源文件会被删除
- gzip 源文件
#源文件被保留如
- gzip -c 源文件 > 压缩文件
- gzip -c cangls > cangls.gz
#只能压缩目录下所有的子文件,但不能压缩目录
- gzip -r 目录
可以使用通配符统一处理多个压缩文件,如
- rm -rf *.zip
等价于
- gzip -d 压缩文件
,会把源压缩文件删除
- gunzip 压缩文件
#压缩后源文件会被删除
- bzip2 源文件
#源文件被保留此命令不能压缩目录!
- bzip2 -k 源文件
可以用
- bzip2 -d 压缩文件
保留源文件等价于
- -k
同样可用
- bunzip2 压缩文件
- -k
常用压缩格式:
和
- .tar.gz
- .tar.bz2
- tar -cvf 打包文件名 源文件
打包
- -c
显示过程
- -v
指定打包后的文件名如
- -f
然后对打包文件进行压缩
- tar -cvf longzls.tar longzls
- tar -xvf 打包文件
如
- -x 解打包
- tar -xvf longzls.tar
压缩
- tar -zcvf 压缩包名.tar.gz 源文件
解压缩
- tar -zxvf 压缩包名.tar.gz
查看压缩包内容
- tar -ztvf 压缩包名.tar.gz
压缩
- tar -jcvf 压缩包名.tar.bz2 源文件
解压缩
- tar -jxvf 压缩包名.tar.bz2
查看压缩包内容
- tar -jtvf 压缩包名.tar.bz2
可以在
后加上
- 解压缩命令
将解压出来的文件放到其他目录
- -C 指定目录
可以在
的源文件处空格分开多个文件一起压缩,如
- 压缩命令
- tar -zcvf jp.tar.gz japan install.log
(不加用户名也可以)命令输出:
- w 用户名
和
- who 用户名
一样,只不过更简单(不加用户名也可以)命令输出:
- w
默认是读取
- last
文件数据,这是一个二进制文件,防止人为修改命令输出:
- /var/log/wtmp
默认读取
- lastlog
文件数据
- /var/log/lastlog
#在文件中查找字符串
- grep 【选项】"字符串" 文件名
忽略大小写,因为 Linux 严格区分大小写
- -i
搜索不包含字符串的文件 grep 需要使用
- -v
进行匹配
- 正则表达式
来源: http://www.bubuko.com/infodetail-2010008.html