前言
在Linux或MacOS系统中,shell肯定是我们必不可少的工具,掌握好shell能够让我们很方便的处理程序。系统给我们提供的命令大概有2000多个,而记住常用的命令能够快速的提高我们开发效率。
type
shell有分内置命令和外部命令(我们自己安装的一些软件,比如java,nginx等),通过type命令可以查看命令是否内置在bash
type [-tpa] name
type 不加参数,type会显示name是外部命令还是bash 内置命令
-t file : 表示为外部命令
alias: 别名说设置的名称
builtin: bash内置的命令功能
-p :如果后面接的name为外部命令,会显示完整的文件名
-a :会由PATH定义的路径,将含有name的命令都列出来,包括alias
$type ls
ls 是 'ls --color=auto'的别名
$type -t cd
builtin
echo
echo可以用来打印变量
$echo $HOME
/home/username
关于变量的设置规则,请自行百度。
locale
locale用来显示系统支持的语系
$local -a
... 前面省略 ...
zh_TW.utf8
zu_ZA
zu_ZA.iso88591
zu_ZA.utf8
read
read 可以用来读取键盘输入的变量,通常用在shell script中
read [-pt] varible
-p : 后面可以接提示符
-t : 后面可以接等待的秒数,不会一直等待用户
declare/typeset
这两个是一样的功能,声明变量类型
declare [-aixr] variable
-a : 将后面variable的变量定义成为数组(array)类型
-i : 将后面variable的变量定义成为数组(integer)类型
-x : 与export 一样,就是将后面的variable变成环境变量
-r : 将variable设置为可读类型,不可重设
alias ,unalias
alias可以为命令设置别名,unalias 去掉别名
$type ls
ls 是 'ls --color=auto'的别名 //可以看到ls就是别名
// 设置自定义的别名
alias lm='ls -l | more' //注意,lm只在当前窗口有效
$alias
alias egrep='egrep --color=auto'
...//中间省略
alias lm= 'ls -l | more'
$ unalias lm
$ alias
alias egrep='egrep --color=auto'
...//中间省略 alias lm 已经被删除了
history
history 提供历史命令的服务
history [n] 列出最近n条命令
history [-c] 将shell中所有的history内容全部消除
history [-raw] histfiles
-r 将目前新增的history命令新增入histfiles中,若没有加histfiles 则默认写入 ~/.bash_history
-a 将histfiles 的内容读到目前这个shell 的hirtory记忆中
-w 将目前的history记忆内容写入histfiles中
chgrp 、chown、chmod
这三个命令都是改变权限
chgrp 改变文件所属用户组
chown 改变文件所有者
chmod 改变文件的权限
sort
sort可以帮我们进行排序,根据不同类型进行排序
cat /etc/passwd | sort