说起来接触 Linux 也算很久了,准确来说是 Ubuntu ,开始只是尝鲜体验桌面版,感觉并不是很方便,遂放弃了。之后是再次用到是因为做 Procast 模拟运算,听说 Linux 运算效率高,试着安装 Linux 版本,来回安装了五六遍,重复输入些看不明白的的指令,可算是装上了软件,奈何执行运算总是出错,当时用 Linux 版本的 Procast 的人很少,社区也查不到什么有效的资料,最后也放弃了。再后来决定转行做开发又一次接触到了 Lunix ,熟悉命令操作便是第一道坎,虽说环境搭建,服务器运行都实践过好几遍,常规的命令也都熟悉,不过前两天面试问到文件权限命令却答不出来,知道大概,但又记不住细节,甚是尴尬。所以抽时间对 Linux 的常用命令做一次梳理、查、汇总,一是加强记忆,二是方便查询。
1、文件操作
1.1、目录/文件列表
ls # 列出目录 ls -l # 列出长数据串,包含文件的属性与权限数据等 ls -a # 列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用) ls -d # 仅列出目录本身,而不是列出目录的文件数据 ls -h # 将文件容量以较易读的方式(GB,kB等)列出来 ls -R # 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
cd /root/Docements # 切换到目录 /root/Docements cd ./path # 切换到当前目录下的 path 目录中,“.”表示当前目录 cd ../path # 切换到上层目录的 path 目录中,“..”表示上一层目录 cd .. # 返回上层目录 cd ../.. # 返回上上层目录 cd ~ # 前往 home目录
1.3、通配符
表达式
匹配对象
*
匹配所有
a*
所有 a 开头的文件
b*.txt
以 b 开头,中间有任意个字符,并以”.txt”结尾的文件
?
匹配一个
ab???
以 ab 开头,其后紧接着3个字符的文件
[]
范围
[abc]*
以 a , b ,或 c 开头的文件
d.[0-9][0-9][0-9]
以 d. 开头,并紧接着3个数字的文件
[:alnum:]
匹配任意一个字母或数字
[:alpha:]
匹配任意一个字母
[:digit:]
匹配任意一个数字
[:upper]
匹配任意一个大写字母
[:lower:]
匹配任意一个小写字母
[[:upper:]]*
以大写字母开头的文件
[![:digit:]]*
不以数字开头的文件
*[[:lower:]123]
文件名以小写字母结尾,或以 1,2,或 3 结尾的文件件
[characters]
匹配任意一个属于字符集中的字符
[[:class:]]
匹配任意一个属于指定字符类中的字符
{}
组合表达式
{[a-z.txt,.pdf]}
匹配 a~z 开头的 txt 文件,和 pdf 文件
^
取反
[a-h].[^txt]
匹配以字母 a~h 开头并且后缀不是 txt 的文件
1.4、编辑目录/文件
cp 参数 #复制文件和目录 mv 参数 #移动文件和目录 rm 参数 #删除文件和目录
cp file /path/ab # 将当前目录文件 file 复制到目录 /path下,并改名为 ab cp -R test path # 将当前目录中 test 目录复制到 path 目录中, # 若 path 目录存在则把 test 目录复制到 path 目录中 # 若 path 目录不存在则创建 path 目录,并把 test 目录中所有文件复制到 path 目录中