Linux实战教学笔记04:Linux命令基础

时间:2022-09-06 08:55:00

第四节:Linux命令基础

标签(空格分隔):Linux实战教学笔记


第1章 认识操作环境

Linux实战教学笔记04:Linux命令基础

  • root:当前登陆的用户名
  • @分隔符
  • chensiqi:主机名
  • ~:当前路径位置
  • 用户的提示符

1.1 Linux系统命令操作语法的格式

Linux实战教学笔记04:Linux命令基础

提示:

  1. 一般情况下命令中的[]表示可选,既命令的参数及文件是可选的。
  2. 参数选项===>一个命令的不同的功能(不同的条件)。

Linux实战教学笔记04:Linux命令基础

1.2 Linux目录结构

Linux实战教学笔记04:Linux命令基础

第2章 认识常用的Linux基础命令

简单粗暴贯穿常用命令,对命令使用框架有个整体认识

2.1 创建一个目录/data

windows下面

新建===>文件夹

Linux下面

  • 创建目录 ===>make directory===>mk dir ===>mkdir

mkdir /data 在当前目录下创建子目录

cd / 回到根目录下

mkdir data 创建data子目录

  • 查看目录===>列表===>list===>ls

ls 查看当前目录内容

ls -ld /data 查看/data目录详细内容

举例

ls / 查看根目录内容

ls -l / 查看根目录下详细内容

2.2相对路径与绝对路径

绝对路径:从根开始的路径

C:\Program Files (x86)\Microsoft Office

从根开始的路径就是绝对路径

绝对路径:/etc/sysconfig/network-scripts/ifcfg-eth0

相对路径:不从“/”根开始,而是把当前所在路径当作根,目标文件或目录距离当前路径的“距离”。

示例:

Linux实战教学笔记04:Linux命令基础

小结

多练

多给别人讲解

讨论相对路径与绝对路径

mkdir 创建目录

ls 查看目录内容

cd 进入xxxx

pwd 查看当前绝对路径

2.3 在/data 下面创建文件 chensiqi.txt

创建单个文件

Linux实战教学笔记04:Linux命令基础

创建多个文件

Linux实战教学笔记04:Linux命令基础

小结:

touch 触摸 创建文件或修改文件时间戳(文件的属性)

2.4 为chensiqi.txt 增加内容“I am studying linux"

vi===>直接写入(关于vi和vim使用方法请自行查询vim tutor)

echo进行追加

Linux实战教学笔记04:Linux命令基础

注意:

1,我们通常在直接操作文件前要备份文件

2,操作前先看一眼cat 一下


特殊符号:

“>” 重定向,清除原文件里面所有内容,然后把内容追加到文件的末尾

“>>” 追加重定向,追加内容,到文件的尾部

“1>" 输出重定向:把前面输出的东西输入到后边的文件中,会清除文件原有内容。

“1>>" 追加输出重定向:把前面输出的东西输入到后边的文件中,不会清除文件原有内容,只是追加到最后一行。

Linux实战教学笔记04:Linux命令基础

<或0< 输入重定向:后跟字符串(不常用)

<<或0<< 追加输入重定向:后跟字符串(不常用)
2> 错误重定向:把错误信息输入到后面的文件中,会删除文件原有内容

2>> 错误追加重定向:把前面错误信息追加到后边的文件中,不会清除文件原有内容

Linux实战教学笔记04:Linux命令基础

重定向小节:

重定向:改变命令执行时,数据传输的方向

箭头方向就是数据方向===>水流方向

Linux实战教学笔记04:Linux命令基础

2.5 把chensiqi.txt拷贝到/tmp目录下

windows复制粘贴

ctrl+c

ctrl+v

Linux下:

复制====>copy===>cp

Linux实战教学笔记04:Linux命令基础

小结:

cp 复制文件或目录(默认不能拷贝目录)

-r:递归,复制目录,目录及其子孙后代

-p:复制文件同时保持文件属性不变,

-a ===-pdr

2.6 把/data 移动到 /root 目录下面

移动(搬家)====>move====>mv

Linux实战教学笔记04:Linux命令基础

cd /

mv /data /root

小结

/data ===> /data 及/data下面的子孙后代

/data/===> /data下面的子孙后代

注意:这里目录的移动,如果想仅仅移动目录下面文件而不移动目录使用mv /data/* /root 即可

2.7 进入/root 目录下的data目录,删除chensiqi.txt文件

删除===> remove ====>rm

Linux实战教学笔记04:Linux命令基础

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命令提高删除的准确度

Linux实战教学笔记04:Linux命令基础

find data -type f -name "chensiqi.txt"

-type:查找的目标的类型

f : 文件类型

-name + 文件名:文件的名字

第一步:先找出文件

第二步:再删除文件

find小结

find 查找范围 -type 文件类型 f(file) d(directory) -name 文件名

管道

管道命令:xargs

之前的删除文件操作还可以这么处理:

Linux实战教学笔记04:Linux命令基础

  • 如果前一条命令没法满足你的需求,那么需要续接一条命令来进行再处理,那么就需要管道符+管道命令(| xargs)来续接命令。
  • 也就是说,将管道符 | 左边的命令所执行的结果所为管道符 | 右边的命令的执行范围

2.8 讨论

生产环境下,运维人员如何最大限度的避免误删除文件

  1. 修改或删除数据前请务必备份,最好有异地备份,修改配置等先提交版本管理系统再发布到线上
  2. 运维新手删除应使用mv命令替代rm命令,无用的文件不要着急删除,而是移动到回收站/tmp里观察一段时间可以通过设置别名等手段屏蔽rm,这样一旦直接用到rm命令就是意识到(当然真想用有手段可以越过别名)。
  3. 如果非要删除数据,还可以find结合rm替代单纯的rm,包括设定定时任务等动作执行清理。
  4. 如果非要使用rm删除,请尽量先切换目录再删目录下的数据,能不用通配符就不用通配符
  5. 如果必须要使用rm -rf 命令强制且递归删除文件夹,最后的避免错误方法就是要用tab去不全文件夹名字,不要手敲任何字符,防止误删除
  6. 如果删除的不是目录,就不要用rm -rf,采用最小化的方法rm -f即可,甚至重要的少量文件,可以不用-f,以获得确认删除提示信息

总结:

a,删除数据后,多数情况是可以恢复的,但会影响业务

b,例如:需要停机恢复,且数据丢了,较长时间用户访问不了对应数据了

c,恢复工具诸如ext3grep等

d.事情发生前未雨绸缪永远比发生了在解决好得多

e,养成规范,专业科学的运维习惯,运维流程是避免当黑锅侠的关键!

企业面试题

问:linux下删除一个目录下的所有文件,但保留一个指定文件

方法一:find(最重要必须会)

Linux实战教学笔记04:Linux命令基础

!:取反,也就是说删除目录下文件类型为f的所有文件但是排除-name为 file9 的文件

方法二:grep过滤内容

Linux实战教学笔记04:Linux命令基础

通过find查出所有目标文件夹下的文件内容后,通过管道 | grep 过滤-v排除掉目标内容后再 | xargs 将内容传递给rm命令进行删除

方法三:命令嵌套命令

此方法只适用于删除当前目录下的内容

Linux实战教学笔记04:Linux命令基础

··符号(tab键上边的~符号不按shift输入就是)它的意思是取符号内的命令的执行结果。本方法的意思就是rm删除掉··符号内的命令的执行结果的内容

2.9 退出到上级目录删除data目录

Linux实战教学笔记04:Linux命令基础

cd /root/data 进入目录

cd .. 退出当前目录回到上一级目录

find 找出目标data目录

| xargs 传递给rm删除

特殊符号

“.”(点):表示当前目录/路径

“..”:表示当前目录的上级目录

“#” :表示注释(linux会无视,略过)

2.10 已知chensiqi.txt文件内容,去掉某行内容后,输出结果

方法一:grep过滤

Linux实战教学笔记04:Linux命令基础

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等于行数

Linux实战教学笔记04:Linux命令基础

&& :特殊符号,并且的意思,可以拼接字符串结果

方法三:awk 解决

Linux实战教学笔记04:Linux命令基础

!:取反

方法四:sed 解决

Linux实战教学笔记04:Linux命令基础

了解就好,以后再细说

/内容/d (删除)

找到内容后,将内容删除后再输出

2.11 请用一条命令完成创建目录/chensiqi/test,即创建/chensiqi 目录及/chensiqi/test

Linux实战教学笔记04:Linux命令基础

2.12 已知/chensiqi 目录下已经存在test.txt 文件,如何执行命令才能把/mnt/test.txt 拷贝到/tmp 下覆盖掉/chensiqi/test.txt.而让系统不提示是否覆盖(root权限)

Linux实战教学笔记04:Linux命令基础

/bin/cp:是复制命令的绝对路径,通过绝对路径来复制命令就不会有提示。

知识扩展

还记得我们的crond定时任务吗,当用定时任务触发脚本的时候,一般都要求脚本里的命令是绝对路径的书写方式(还不知道定时任务的,此处略过)

2.13 只查看ett.txt(共100行)内第20到第30行内容

方法一:head和tail通过管道符解决

Linux实战教学笔记04:Linux命令基础

head -30 文件路径:查看目标文件前30行

tail -10 文件路径:查看目标文件后10行

head -30 文件名 | tail -10 先查看目标文件前30行,再查看前30行内容的最后10行。

方法二:sed解决

Linux实战教学笔记04:Linux命令基础

sed ‘’ 目标文件名:默认输出,全部内容

sed -n “行数p” 文件名:读取目标文件的行数内容

sed -n "行数,行数p" 文件名:读取目标文件的行数范围的内容

方法三:awk解决

Linux实战教学笔记04:Linux命令基础

awk '行数' 目标文件名、

NR == 行数

&& 并且拼接字符串

知识扩展

grep命令在这里无法解决该问题,grep命令主要是用来过滤内容的。而不能按行或者按列数来检索。

grep -v :取反,排除

grep -A 10:(after) 显示匹配行的后10行

grep -B 10:(before) 显示匹配行的前10行

grep -C 5:显示匹配的行的前后各5行

2.14 把/chensiqi目录及子目录下所有以扩展名.sh 结尾的文件,文件中包含 chensiqi的字符串全部替换为welcome

Linux实战教学笔记04:Linux命令基础

此题可通过find先找出目标文件

再用sed -i 直接对文件内容进行修改

sed -i 需要接收的是文件名,而“|”传递的是字符串,“| xargs”传递的才是文件名,如果不理解请继续往后看,

2.15 讨论

管道符 | 和管道命令 xargs的区别

  • | 传递文本,文字,字符串
  • | xargs 文字,文本,字符串==(变成)=>文件名

grep 过滤的是文件的内容,它过滤的是字符串,因此它天生就认识 管道符“|”

Linux实战教学笔记04:Linux命令基础

sed -i “s///g” 文件名:他后边需要接的是文件的名字,因此他不能直接认识字符串

Linux实战教学笔记04:Linux命令基础

所以就需要通过xargs这个管道符命令来将字符串转换成文件名

Linux实战教学笔记04:Linux命令基础

综上,这就是“|”和“|xargs”的区别,请仔细理解,很重要

Linux实战教学笔记04:Linux命令基础的更多相关文章

  1. Linux实战教学笔记17&colon;精简shell基础

    第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...

  2. Linux实战教学笔记06&colon;Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

  3. Linux实战教学笔记12&colon;linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  4. Linux实战教学笔记11&colon;linux定时任务

    第十一节 linux定时任务 标签(空格分隔): Linux实战教学笔记 ---更多资料点我查看 1.1 定时任务Crond介绍 Crond是linux系统中用来定期执行命令/脚本或指定程序任务的一种 ...

  5. Linux实战教学笔记18&colon;linux三剑客之awk精讲

    Linux三剑客之awk精讲(基础与进阶) 标签(空格分隔): Linux实战教学笔记-陈思齐 快捷跳转目录: * 第1章:awk基础入门 * 1.1:awk简介 * 1.2:学完awk你可以掌握: ...

  6. Linux实战教学笔记19&colon;Linux相关网络知识梳理

    第十九节 Linux相关网络知识梳理 标签(空格分隔): Linux实战教学笔记-陈思齐 一,前言 一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的.但,对于我们的工 ...

  7. Linux实战教学笔记08&colon;Linux 文件的属性(上半部分)

    第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...

  8. Linux实战教学笔记07&colon;Linux系统目录结构介绍

    第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...

  9. Linux实战教学笔记08&colon;Linux 文件的属性(下半部分)

    第八节 Linux 文件的属性(下半部分) 标签(空格分隔): Linux教学笔记 ---更多相关资料请点我查看 第1章 链接的概念 在linux系统中,链接可分为两种:一种为硬链接(Hard Lin ...

随机推荐

  1. 百度地图API显示多个标注点并添加百度样式检索窗口

    原作者博客地址:http://blog.csdn.net/a497785609/article/details/24009031 在此基础上进行了修改: 1.添加闭包,将i传入内部 2.添加地图和卫星 ...

  2. Android中GPS定位的简单应用

    在Android中通过GPS获得当前位置,首先要获得一个LocationManager实例,通过该实例的getLastKnownLocation()方法获得第一个的位置,该方法的说明如下: void ...

  3. Android Studio简单设置

    IDE外观&行为 修改主题,修改全局字体 修改主题,想用炫酷的深色主题,就改成Darcula吧:字体的话,选一个带中文的,要不然会有很多口口,我这里用Microsoft YaHei UI,很不 ...

  4. 20个很有用的PHP类库

    介绍20个非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法. 图表库 下面的类库可以让你很简的创建复杂的图表和图片.当然,它们需要GD库的支持. pChart – 一个可以创 ...

  5. 破解Inode客户端使用笔记本共享WIFI

    由于住在学校的公寓里面,所以使用的是校园网,但是校园网限制了无线的使用,强制所有网络用户使用INode网络客户端,这个客户端不但很丑很难看,而且每天联网十分费劲,费了半天的力气终于联上网了,可是一眨眼 ...

  6. Oracle &sol; PLSQL函数 - NUMTODSINTERVAL和NUMTOYMINTERVAL

    最近在学习数据库方面的知识,做个标记. 这里有英文解释,建议多看看英文文档: https://www.techonthenet.com/oracle/functions/ 下面开始记录一下,自己在Or ...

  7. easyUI---datagrid合并单元格代码实现

    1.html部分: <div id="table1"></div> 2.js部分: $('#table1').datagrid({ data : data, ...

  8. H5 id选择器和class选择器

    11-id选择器和class选择器 第一段文字 第二段文字 第三段文字 --> 第一段文字 第二段文字 第三段文字 <!DOCTYPE html> <html lang=&qu ...

  9. ecilpse运行Servlet程序是找不到路径的原因

    当工作空间路径有空格时,空格会被转成%20,将导致路径无法识别,于是就找不到路径了.

  10. xlwt模块

    python使用xlwt模块操作Excel 该模块安装很简单 $ pip install xlwt 语法 import xlwt # 创建一个workbook 设置编码 workbook = xlwt ...