标签(空格分隔):Linux实战教学笔记linux
提示:面试
简单粗暴贯穿经常使用命令,对命令使用框架有个总体认识vim
windows下面windows
新建===>文件夹安全
Linux下面框架
mkdir /data 在当前目录下建立子目录
cd / 回到根目录下
mkdir data 建立data子目录运维
ls 查看当前目录内容
ls -ld /data 查看/data目录详细内容
举例
ls / 查看根目录内容
ls -l / 查看根目录下详细内容工具
绝对路径:从根开始的路径spa
C:\Program Files (x86)\Microsoft Office3d
从根开始的路径就是绝对路径
绝对路径:/etc/sysconfig/network-scripts/ifcfg-eth0
相对路径:不从“/”根开始,而是把当前所在路径看成根,目标文件或目录距离当前路径的“距离”。
示例:
小结
多练
多给别人讲解
讨论相对路径与绝对路径
mkdir 建立目录
ls 查看目录内容
cd 进入xxxx
pwd 查看当前绝对路径
建立单个文件
建立多个文件
小结:
touch 触摸 建立文件或修改文件时间戳(文件的属性)
vi===>直接写入(关于vi和vim使用方法请自行查询vim tutor)
echo进行追加
注意:
1,咱们一般在直接操做文件前要备份文件
2,操做前先看一眼cat 一下
特殊符号:
“>” 重定向,清除原文件里面全部内容,而后把内容追加到文件的末尾
“>>” 追加剧定向,追加内容,到文件的尾部
“1>" 输出重定向:把前面输出的东西输入到后边的文件中,会清除文件原有内容。
“1>>" 追加输出重定向:把前面输出的东西输入到后边的文件中,不会清除文件原有内容,只是追加到最后一行。
<或0< 输入重定向:后跟字符串(不经常使用)
<<或0<< 追加输入重定向:后跟字符串(不经常使用)
2> 错误重定向:把错误信息输入到后面的文件中,会删除文件原有内容
2>> 错误追加剧定向:把前面错误信息追加到后边的文件中,不会清除文件原有内容
重定向小节:
重定向:改变命令执行时,数据传输的方向
箭头方向就是数据方向===>水流方向
windows复制粘贴
ctrl+c
ctrl+v
Linux下:
复制====>copy===>cp
小结:
cp 复制文件或目录(默认不能拷贝目录)
-r:递归,复制目录,目录及其子孙后代
-p:复制文件同时保持文件属性不变,
-a ===-pdr
移动(搬家)====>move====>mv
cd /
mv /data /root
小结:
/data ===> /data 及/data下面的子孙后代
/data/===> /data下面的子孙后代
注意:这里目录的移动,若是想仅仅移动目录下面文件而不移动目录使用mv /data/* /root 便可
删除===> remove ====>rm
cd /root/data
rm chensiqi.txt 默认只能删除文件
会提示是否删除 y 便可
rm -f chensiqi.txt 免提示一概yes
注意:删除前要思考操做后是否可以恢复,若不能恢复择应该先cp备份,或者采起移走mv的办法进行删除。
递归删除
rm -rf data 删除目录必须加-r,-f免提示 删除data目录及目录下的全部东西
注意:此命令很是危险,建议不用,采起移动mv的删除方式(在linux跟目录下创建一个垃圾箱文件夹,想删除的都mv过来)
请熟记,运维人员的职责:安全,稳定,高效
小结:
rm 无后缀只能删除文件
-f 免提式强制删除
-r 删除目录(递归删除目录下全部东西)
#慎用
替代方法:mv 移动文件或目录
提升删除的难度/门槛
经过find命令提升删除的准确度
find data -type f -name "chensiqi.txt"
-type:查找的目标的类型
f : 文件类型
-name + 文件名:文件的名字
第一步:先找出文件
第二步:再删除文件
find小结
find 查找范围 -type 文件类型 f(file) d(directory) -name 文件名
管道
管道命令:xargs
以前的删除文件操做还能够这么处理:
生产环境下,运维人员如何最大限度的避免误删除文件
总结:
a,删除数据后,多数状况是能够恢复的,但会影响业务
b,例如:须要停机恢复,且数据丢了,较长时间用户访问不了对应数据了
c,恢复工具诸如ext3grep等
d.事情发生前未雨绸缪永远比发生了在解决好得多
e,养成规范,专业科学的运维习惯,运维流程是避免当黑锅侠的关键!
企业面试题
问:linux下删除一个目录下的全部文件,但保留一个指定文件
方法一:find(最重要必须会)
!:取反,也就是说删除目录下文件类型为f的全部文件可是排除-name为 file9 的文件
方法二:grep过滤内容
经过find查出全部目标文件夹下的文件内容后,经过管道 | grep 过滤-v排除掉目标内容后再 | xargs 将内容传递给rm命令进行删除
方法三:命令嵌套命令
此方法只适用于删除当前目录下的内容
··符号(tab键上边的~符号不按shift输入就是)它的意思是取符号内的命令的执行结果。本方法的意思就是rm删除掉··符号内的命令的执行结果的内容
cd /root/data 进入目录
cd .. 退出当前目录回到上一级目录
find 找出目标data目录
| xargs 传递给rm删除
特殊符号
“.”(点):表示当前目录/路径
“..”:表示当前目录的上级目录
“#” :表示注释(linux会无视,略过)
方法一:grep过滤
grep 过滤(默认)
cat chensiqi.txt | grep "I am chensiqi" 只看过滤的内容
-v: 排除
cat chensiqi.txt | grep -v "I am chensiqi" 排除内容后,看其余内容
方法二:经过head和tail拼接字符串
head:从头开始查看文件内容,默认查看10行
tail:从结尾开始查看文件,默认查看10行
-n: n等于行数
&& :特殊符号,而且的意思,能够拼接字符串结果
方法三:awk 解决
!:取反
方法四:sed 解决
了解就好,之后再细说
/内容/d (删除)
找到内容后,将内容删除后再输出
/bin/cp:是复制命令的绝对路径,经过绝对路径来复制命令就不会有提示。
知识扩展
还记得咱们的crond定时任务吗,当用定时任务触发脚本的时候,通常都要求脚本里的命令是绝对路径的书写方式(还不知道定时任务的,此处略过)
方法一:head和tail经过管道符解决
head -30 文件路径:查看目标文件前30行
tail -10 文件路径:查看目标文件后10行
head -30 文件名 | tail -10 先查看目标文件前30行,再查看前30行内容的最后10行。
方法二:sed解决
sed ‘’ 目标文件名:默认输出,所有内容
sed -n “行数p” 文件名:读取目标文件的行数内容
sed -n "行数,行数p" 文件名:读取目标文件的行数范围的内容
方法三:awk解决
awk '行数' 目标文件名、
NR == 行数
&& 而且拼接字符串
知识扩展
grep命令在这里没法解决该问题,grep命令主要是用来过滤内容的。而不能按行或者按列数来检索。
grep -v :取反,排除
grep -A 10:(after) 显示匹配行的后10行
grep -B 10:(before) 显示匹配行的前10行
grep -C 5:显示匹配的行的先后各5行
此题可经过find先找出目标文件
再用sed -i 直接对文件内容进行修改
sed -i 须要接收的是文件名,而“|”传递的是字符串,“| xargs”传递的才是文件名,若是不理解请继续日后看,
管道符 | 和管道命令 xargs的区别
grep 过滤的是文件的内容,它过滤的是字符串,所以它天生就认识 管道符“|”
sed -i “s///g” 文件名:他后边须要接的是文件的名字,所以他不能直接认识字符串
因此就须要经过xargs这个管道符命令来将字符串转换成文件名
综上,这就是“|”和“|xargs”的区别,请仔细理解,很重要