最近听到项目中的老大们都在谈论招新人的时候要考核什么,首先使用过linux的开发人员加分非常高,为什么我们要使用Linux开发,因为它的功能比windows的doc 功能多的多,我们普通开发人员对于Linux其实只要如何使用和大概知道linux是怎么回事也就足够了,当然,有兴趣的自己深入了解收获会非常的大。
本文重点,在工作中我们需要掌握哪些linux的知识,让你在面试的时候足够应付,你只需要了解一些基础概念结合命令行的使用便可。
1)在系统文件中的跳转
. 表示当前工作目录
.. 表示上一级目录
../.. 表示上上级目录
./ 表示当前工作目录的子目录
../ 表示当前工作目录的上一级目录的子目录
../../ 表示上上级目录的子目录
用户主目录表示的是你登录的用户名所在的主目录
cd进入用户主目录
cd ~ 进入用户主目录
cd / 进入根目录
cd - 返回进入此目录之前所在的目录
cd ..返回上一级目录
cd ../..返回上上级目录
pwd查看你当前所在目录
su切换用户命令
ls查看当前目录下的文件和目录
ll查看当前目录下的文件和目录详细信息
ll -a查看当前目录下的文件和目录包括隐藏文件的详细信息
2)文件和目录的操作
1.创建文件
touch 文件名
2.创建目录
mkdir 文件名
3.拷贝文件
cp 文件名 新文件名
4.拷贝目录
cp -r 目录名 新目录名
5.移动文件
mv 文件名 .. 把文件移动到上一级
mv 文件名 目录名/把文件移动到当前目录下的的某某目录中
6.重命名
mv 文件名 新文件名
mv 目录名 新目录名
7.删除
rm -f 文件名
rm -rf 目录名
-r 表示 循环
-f 表示 强制
8.压缩
1 ) zip格式
zip -r xxx.zip xxx/ 循环遍历目录 xxx/ 下的所有文件压缩成 xxx.zip 文件
unzip xxx.zip解压缩 xxx.zip 文件到当前目录下
2)tar.gz格式
tar zxvf xxx.tar.gz解压
tar zcvf xxx.tar.gz xxx/ 将 xxx/ 目录下的文件压缩成 xxx.tar.gz 文件
3)tar.bz2
tar jxvf xxx.tar.bz2解压
tar zcvf xxx.tar.bz2 xxx/ 将 xxx/ 目录下的文件压缩成 xxx.tar.bz2 文件
3) 文件的内容的查看
1.cat 文件名
直接输出整个文件查看(还在目录下)
2.more 文件名
分页输出整个文件查看(用空格进行查看,到底部自动自动回到目录下)
3.vi 文件名
编辑文件
一些参数:
gg 到达文件顶部
shift+g 到底文件底部
k 向上滚动
/string 查询文件中的字符串
N 查询下一个指定的字符串
:q 退出文件编辑(如果输入不了:q,先输入esc,还不行的话输入ctrl+C再输入esc,最后输入:q)
:wq 强制退出文件编辑
注意:这些参数在vi vim less...等命令打开的文件都是通用的
4.vim 文件名
和vi差不多
图中 top 表示文件的顶部, bot 表示文件的底部
5.less 文件名
将文件分页查看
6.tail -1000 文件名查看文件的最后1000行
4)查找文件和字符串
1.locate
locate 文件名
locate的查找特点是非常的快,因为它是通过查找数据库缓存来查找文件的,这样就不用去扫描全盘了,但是如果是距离上一次更新数据库24小时内新增的文件就查不到了,因为datedb每隔24小时更新一次,所以你就得使用 sudo updatedb指令来手动更新数据库,但是这条指令需要超级用户的权限
2.find
find .找到当前目录下所有文件和目录(包括子孙文件和目录)
find . -type f 找到当前目录下所有文件(包括子孙文件)
-type f 表示文件
find . -type f -exec ls -l '{}' ';'找到当前目录下的所有文件并且执行 ls -l 操作 '{}' 表示找到的对象
-exec 执行语句 ';' 表示 执行 后面的语句并且在 ';' 处结束
这里有一个坑,在-exec 执行语句 ';' 的执行语句中ll缩写方式无效,要写成 ls -l
find ./index.html -exec grep -ni html '{}' ';' -print
表示查找当前目录下的index.html文件对象,对这个对象进行 字符串 'html' 的查找操作(grep html),忽略大小写(-i),显示行号(-n),这些字符串 'html' 所在的文件也显示出来(-print)
find -name index.html
查找到当前目录下的所有 index.html 的文件
find -name *.js
查询当前目录下所有的 js 文件
5)权限
三种权限:r 可读 w可写 e 可执行
如上图:
--rwr--r-- 1 root root 0 Jun 10 16.55 aaa.txt
第一 -表示文件类型 通常有 -为文件 l为链接 d为目录
第二rw- r-- r--表示什么人拥有什么权限,第一个是owner 拥有者的权限为可读可写,第二个是group 小组的权限为只读 ,第三个world 全部人的权限只读
第三2 表示硬链接数量
第四owner Group的名称都为root
第五 0表示文件的大小,单位为b
第六 日期
第七 文件名
6)一些常用的杂七杂八的概念和指令
ssh远程操作工具
rsync 数据传输工具
scp 远程拷贝文件的命令
PID 进程号
| 管道符 (管道符如同异步队列执行,队列中每一个管道执行自己对应的任务)
*通配符
ps aux | less查看当前所有进程情况(表示先查找到当前所有的进程情况,然后进行分页查看)
ps aux | grep vim 查看vim的进程情况(表示先查找到当前所有的进程情况,然后通过匹配字符串 vim 找到 vim 进程)
kill 4003(某程序的PID) 停止 PID 为4003的进程
> 重定向
echo ' ' > aaa.log 清空文件(表示将aaa.log的内容重定向为空字符串,一般用来清空一些不能删除的重要日志文件)
2> 错误日志的重定向(用来保存错误信息)
clear 清空之前所有操作信息
7) shell 脚本
先找到脚本,然后打开,shell脚本就是把命令行写在文件中一起执行,再配上一些逻辑。如果你想更深入了解的话,自行查找高级教程
脚本的执行一般都是在脚本的当前目录下使用 ./脚本名