12.12 &12.13 基础命令练习一

12.12 &12.13

基础命令练习一

内容:

1. mkdir  ls  pwd   cd   touch    vi/vim  echo   cat

2. 输出/出入重定向

3. EOF 起止符 往文件中写入多行内容

4. xargs  -n    分组显示

5. cp  rm  mv

6. man帮助手册

7./data  和 /data/区别

7. find   cd

8. grep  head,tail  sed  awk  排除

9. head+tail  sed  awk  grep   显示某几行

10. 别名 alias   临时  永久

11. sed 替换

第1章 创建一个目录/data

1.1  mkdir命令     ==make  directory    创建目录

mkdir /data

快捷键:tab 补全目录或路径

1.2 ls  -l   显示详细信息

[[email protected] oldboy]# ls -l

total 5408

-rw-r--r--. 1 root root 2097152 Dec 15  2017 ;

-rw-r--r--. 1 root root 1282040 Nov 11  2017 1.log

-rw-r--r--. 1 root root      34 Dec 19  2017 ai.txt

1.3 绝对路径与相对路径的区别

绝对路径:从根开始的路径  如:/etc/hosts

相对路径:不是从根开始的路径   如:etc/hosts

cd    切换路径

pwd   显示当前工作目录

第2章 在/data下面创建文件oldboy.txt

2.1 touch   创建文件

touch  /data/oldboy.txt

第3章 为oldboy.txt增加内容I am studying linux   ---(3种方法)  (vi/vim   echo    cat)

3.1 方法一:vi/vim

1. 打开文件

vi  /data/oldboy.txt

2. 进入编辑模式(插入模式)

按字母 i

3. 写入

I am studying  linux

4. 退出编辑模式

Esc键

5. 保存并退出

:wq

6. 检查---查看文件内容

cat /data/oldboy.txt

3.1.1 vim补充:

i          编辑模式

Esc        退出编辑模式,进入命令模式

:wq      保存退出

: q!         强制退出不保存

3.2 方法二:echo    输出到屏幕 把引号中内容显示到屏幕上                

Vim    echo    >>     三个命令会自动创建文件

echo “I am studying linux” >>/data/oldboy.txt

3.2.1 重定向(详解)  改变命令执行时,数据输出的方向

>>  或1>>  追加重定向,增加到文件的结尾      (漏斗)

>   或 1>>    输出重定向   清空内容,然后追加

>>  >  标准输出重定向  标准追加输出重定向   会把前面命令执行正确的内容 放 到一个文件中

2> 错误重定向:把错误信息输入到后面的文件中,会删除文件原有内容

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

例:

cho "lidao.blog.51cto.com" 2>>/data/error.txt

[[email protected] ~]# cho "lidao.blog.51cto.com" 2>>/data/error.txt

[[email protected] ~]# cat /data/error.txt

-bash: cho: command not found

-bash: cho: command not found

实例3-1  

同时把正确和错误的信息都记录下来

#我想把执行对的结果放到文件中 /data/oldboy.txt

#我想把执行有错误的放到文件中 /data/oldboy.txt

echo “lidao.blog.51cto.com” 2>>/data/oldboy.txt  >>/data/oldboy.txt

echo "lidao.blog.51cto.com"  >>/data/oldboy.txt  2>&1

###/data/oldboy.txt 相当于日志功能 ,两条命令执行结果相同

3.3 方法三:cat  查看文件内容    向文件中追加多行

cat >>/data/oldboy.txt<<EOF

I

am

Studying             向一个文件中追加多行

Linux

EOF

3.3.1 EOF 起始结束符号,遇到即停止,可任意相同记号

[[email protected] oldboy]# cat >>mike.txt <<gao

> I

> love

> you

> gao

[[email protected] oldboy]# cat mike.txt

I

love

you

3.3.2  <  或 0< 标准输入重定向   告诉命令从哪里获取文件

<<  或 0<< 标准输入追加重定向

3.3.3 xargs    -n数字   指定显示列数

[[email protected] oldboy]# cat mike.txt

I

love

you

[[email protected] oldboy]# echo "1 2 3 4 5 6 7 8 ">deny.txt

[[email protected] oldboy]# cat deny.txt

1 2 3 4 5 6 7 8

[[email protected] oldboy]# xargs -n2 <deny.txt

1 2                 前面的命令执行的是后面的文件

3 4

5 6                技巧:“漏斗”的输出方向

7 8

第4章 把oldboy.txt复制到/tmp下

4.1 cp命令     复制

cp  /data/oldboy.txt  /tmp

4.2 想把整个目录复制过去

cp  -r       递归复制,复制目录及美容   一层一层复制目录

第5章 Linux中查看帮助

5.1 man 命令     --上下键 空格   退出:q

 

5.2 网站命令学习

http://linux.51yip.com/

http://man.linuxde.net/

https://www.die.net/

5.3 运维习惯

操作前备份,操作后检查

cp命令

第6章 把/data目录移动到/root下

6.1 mv命令

mv  /data/   /root/

6.2 扩展:/data   和   /data/   的区别

/data    表示 /data 目录 和目录里的内容

/data/   表示目录里的内容

第7章 进入/root目录下的data目录,删除oldboy.txt 文件

7.1 rm命令

rm  oldboy.txt

参数:

-f   强制删除(不提醒)      -r    递归删除

rm 参数可以加在最后面

如:rm  /data/oldboy  -f

7.1.1 防止误删除

1.把危险的参数放在最后面

2.尽量使用相对路径删除目录

3.删除命令复杂一些   find  |xargs

4.不要在/(根)下进行操作

5.给危险命令设置别名

6.把要删除的文件先复制到/tmp中

第8章 接第六题,退出上一级目录,删除data目录

8.1 find命令的使用

8.1.1 语法:find  在×××  什么类型   什么名字

例:find  /root/    -type  f     -name “oldboy.txt”

查找  /root/目录下 文件名字为oldboy.txt

8.1.2 搭配: 1)find |xargs      2)*

1) find |xargs

例: find /root/ -type f -name “oldboy.txt” |xargs ls -l

答案: find /root/ -type f -name oldboy.txt |xargs rm -f

注意:先查看,再删除,避免误操作

2)* (星号) 表示所有,任意

例: find /root/ -type f -name “*.txt”

查找/root/目录下所有文件名为。txt的文件

(2)cd 的用法

cd ..      进入当前目录的上一级目录

cd../../    进入当前目录的上两级目录

cd.(点) 表示当前目录

第9章 已知文件test.txt内容为:           (五种方法)

test

lidao

oldboy

请给出输出test.txt文件内容时不包含oldboy字符串的命令

9.1 方法一:grep 命令的用法    过滤

选项:  -v  排除

答案:grep -v oldboy /data/test.txt

9.2 方法二:head命令   显示文件前几行 默认为为前十行

选项: -n数字  或 -数字     显示文件前几行

答案:head -2 /data/test.txt

9.3 方法三:awk 命令  ! 表示排除,取反

[[email protected] oldboy]# awk '/oldboy/' /data/test.txt

oldboy

[[email protected] oldboy]# awk '!/oldboy' /data/test.txt

awk: !/oldboy

awk:   ^ unterminated regexp

[[email protected] oldboy]# awk '!/oldboy/' /data/test.txt

test

lidao

9.4 方法四:sed命令  d 表示删除

用法 : d  表示删除

[[email protected] oldboy]# sed '/oldboy/d' /data/test.txt

test

lidao

9.5 方法五:sed命令

[[email protected] oldboy]# sed '3d' /data/test.txt

test

lidao

9.6 小结:

1. grep  过滤

2. head  tail

3. awk   sed

第10章 请用一条命令完成创建目录/oldboy/test,即创建/oldboy目录和/oldboy/test 目录

10.1 mkdir命令     创建目录

选项: -p   一次创建多级目录

答案:mkdir  -p   /oldboy/test

第11章 已知/tmp下已存在test.txt文件。如何执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖/tmp/test.txt,而让系统不提示覆盖(root权限下)     直接覆盖

11.1 创建环境

[[email protected] ~]# touch /mnt/test.txt /tmp/test.txt

11.2 方法一:  临时取消别名   撬棍(反斜杠)

答案:\cp /mnt/test.txt /tmp/

11.3 方法二:   临时取消别名    which

使用命令的绝对路径         which

which +命令   显示命令的绝对路径   命令的位置

[[email protected] ~]# which cp

alias cp='cp -i'

/bin/cp

答案:/bin/cp /mnt/test.txt /tmp/

11.4 方法三: 别名

别名    alias    显示系统中所有别名

alias  cp    显示cp别名

11.4.1 alias作用

1. 给危险的命令上道保险

2. 常用的命令,复杂的命令简单化

例:给rm命令设置别名command  bny

[[email protected] ~]# alias rm='echo command bny'

等号左右没有空格 ,右边是命令,单引号

[[email protected] ~]# alias rm

alias rm='echo command bny'

[[email protected] ~]# rm /mnt

command bny /mnt

11.4.2 unalias  删除别名   

11.4.3 永久设置别名

配置文件/etc/profile

11.4.4 vim 快捷键

G  到达文件的最后一行

i   进入编辑模式

o   在当前行下面插入一个新行并进入编辑模式

实例11-1 [[email protected] /]# tail -2 /etc/profile

unset -f pathmun

alias cp='echo command bny'

使配置文件生效

[[email protected] /]# source /etc/profile

[[email protected] ~]# alias cp

alias cp='echo command bny'

[[email protected] /]# cp /oldboy

command bny /oldboy

[[email protected] /]#

普通用户正常有用

但xshell重新连接root用户又变成alias cp=’cp -i’

解决:

11.4.5 修改文件:   /root/.bashrc

在三个别名前面加个#(注释号)号,使其失效,这样问题就解决了

小结:alias   设置或显示别名

source  让别名/配置生效

11.5 问题:

1. 如果配置文件里设置一个,命令行临时有设置一个,那个生效?

答:如果重新连接  配置文件里的生效

不重新连接   命令行配置生效

11.5.1 注:xargs 不认识别名

第12章 只查看ett.txt文件(共100行)第20到第30行的内容(4种方法)

12.1 创建环境  Seq    生成行  sequence  数字序列

[[email protected] oldboy]# seq 50 >ett.test

[[email protected] oldboy]# tail -4 ett.test

47

48

49

50

12.2 方法一:  head -30 ett.txt | tail -11

[[email protected] oldboy]# head -30 ett.test | tail -11

20

21

22

23

24

25

26

27

28

29

30

12.3 方法二:sed命令

选项: -n 取消默认输出  默认输出每一行的内容

p  pint  显示

答案:sed -n ‘20,30p’ /oldboy/ett.test

[[email protected] oldboy]# sed -n '20,30p' ett.test

20

21

22

23

24

25

26

27

28

29

30

12.4 方法三:awk命令

用法:NR==数字    行号

答案:awk NR==20,NR==30 ett.test

[[email protected] oldboy]# awk 'NR==20,NR==30' ett.test

20

21

22

23

24

25

26

27

28

29

30

12.5 方法四:grep (碰巧)

12.5.1 -A10   显示当前内容及接下来的10行

答案:grep -A10 20 /oldboy/ett.test

[[email protected] oldboy]# grep -A10 "20" ett.test

20

21

22

23

24

25

26

27

28

29

30

12.5.2 -B10     显示当前内容及之前的10行

答案:grep -B10 30 /oldboy/ett.test

[[email protected] oldboy]# grep -B10 "30" ett.test

20

21

22

23

24

25

26

27

28

29

30

12.5.3 -c35     显当前内容及前后各5行

grep -C5 “35” /oldboy/ett.test

[[email protected] oldboy]# grep -C5 "25" ett.test

20

21

22

23

24

25

26

27

28

29

30

12.6 小结:

1. head+tail

2. sed

3. awk

4. grep

第13章 把/oldboy目录及其子目录下所有以拓展名.sh结尾的文件中,文件包含oldboy的字符串全部替换为oldgril

13.1 sed命令    -i 替换文件内容

用法:sed ‘s#你要找谁#要替换成什么#g’

例:  sed ‘s#oldboy#oldgirl#g’  /oldboy/test.sh

在显示器上显示oldgril,不会修改文件

一般命令不能直接改变文件内容,需要加选项

防止误操作

选项: -i   修改文件内容

例: sed -i ‘s#oldboy#oldgirl#g’  /oldboy/test.sh

将/oldboy/test.sh文件中oldboy改为oldgirl

13.2 创建环境
mkdir -p /oldboy/test
cd /oldboy
echo "oldboy">test/del.sh
echo "oldboy">test.sh
echo "oldboy">t.sh
touch oldboy.txt
touch alex.text找出你要处理的文件 
[[email protected] oldboy]# find /oldboy/ -type f  -name "*.sh"
/oldboy/test.sh
/oldboy/test/del.sh
/oldboy/t.sh
替换一个文件 (oldboy ----> oldgirl )
[[email protected] oldboy]# #sed  's#你要找谁#你要替换成什么#g'
[[email protected] oldboy]# cat /oldboy/test.sh 
oldboy
[[email protected] oldboy]# sed  's#oldboy#oldgirl#g'     /oldboy/test.sh 
oldgirl
[[email protected] oldboy]# cat /oldboy/test.sh 
oldboy
[[email protected] oldboy]# #修改文件的内容 把文件的内容进行替换 修改
[[email protected] oldboy]# sed  -i  's#oldboy#oldgirl#g'     /oldboy/test.sh 
[[email protected] oldboy]# cat /oldboy/test.sh 
oldgirl

(1)把find命令找到的文件 都交给sed命令进行替换
[[email protected] oldboy]# find /oldboy/ -type f  -name "*.sh"|xargs sed 's#oldboy#oldgirl#g'     先别加选项-i  确定正确
oldgirl
oldgirl
oldgirl

(2)修改文件内容
[[email protected] oldboy]# find /oldboy/ -type f  -name "*.sh"|xargs sed -i 's#oldboy#oldgirl#g'  答案

(6)检查
[[email protected] oldboy]# find /oldboy/ -type f  -name "*.sh"|xargs cat
oldgirl
oldgirl
oldgirl

 

13.3 方法二 :

13.3.1 $() 先运行里面的命令 把输出结果留下来   $()====`` (反引号)

which mikdir  mkdir的位置

1. find找到你要处理的文件

find /oldboy/ -type f -name "*.sh"

2. 让sed命令处理find命令找到的文件

Sed ‘s#oldboy#oldgirl#g’ $(find /oldboy/ -type f -name “*.sh”)

答案:Sed -i ‘s#oldboy#oldgirl#g’ $(find /oldboy/ -type f -name “*.sh”)

4.查看

cat $(find ./ -type f -name "*.sh")

小结:

1. find 与 |xargs

2. find 与 $()

3. find 与 -exec

13.4 方法三:find   -exec  {} \;

答案:

find /oldboy/ -type f -name "*.sh" -exec sed 's#oldgril#oldboy#g'    {}    \;

find找到的命令放到花括号里,再被sed 执行

\;结束

小结:

1. sed  进行替换

2. find  |xargs

13.5 补充:

1.快捷键:

快速使用上个命令最后的文件名

esc  + . (点)

13.6 (管道)与|xargs(管道xargs)的区别

13.6.1 管道传递的是文本内容, |xargs传递的是文件名称


find  |xargs ls -ld##把前一个命令的结果,通过管道传递给后面的命令(ls -ld),传递的是文件名
find  | 命令    ##把前一个命令的结果,通过管道传递给后面的命令,传递的是普通的文本,文字,字符串

13.6.2 总结:

什么时候使用管道?

前一个命令无法满足你,一个命令的结果不是你想要的

什么时候使用管道xargs

后面的命令,需要处理的是文件名

find  |xargs

13.7 三剑客

13.7.1 Sed  Linux三剑客老二   擅长取某一行

P    ---print 显示     -n 取消sed命令默认输出

查找替换

Sed  ‘s###g’   -i   对文件内容进行替换和修改

13.7.2 awk  Linux三剑客老大     擅长取某一列

NR==    ---行号

13.7.3 grep    过滤   在文件中找东西   Linux三剑客老三

-v   排除

-A10  显示你所要内容及接下来的10行

 

时间: 2024-11-11 10:49:16

12.12 &12.13 基础命令练习一的相关文章

12.19&amp;12.20 -基础命令练习二

12.19&12.20 基础命令练习二 第1章 Linux开机启动过程 linux启动过程 1.开启开关 2.bios开机自检 3.mbr引导 4.grub菜单 选择内核 5.加载内核 6.启动init进程  init进程是linux启动的时候运行的第一个进程 7.从/etc/inittab读取运行级别 8.根据/etc/rc.d/rc.sysinit 初始化系统 (设置主机名 ip地址) 9.根据运行级别启动对应的软件(开机自启动软件) 10.运行mingetty 显示登录界面 第2章 PAT

12个Linux进程管理命令介绍

12个Linux进程管理命令介绍 当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.Linux提供了许多命令来让用户来高效掌控上述的操作. 执行中的程序称作进程.当程序可以执行文件存放在存储中,并且运行的时候,每个进程会被动态得分配系统资源.内存.安全属性和与之相关的状态.可以有多个进程关联到同一个程序,并同时执行不会互相干扰.操作系统会有效地管理和追踪所有运行着的进程. 为了管

k8s升级,此次升级是1.12.0–&gt;1.13.0

准备 1.首先升级master节点的基础组件kubeadm.kubelet.kubectl apt-get update && apt-get upgrade kubeadm 更新到1.13.0后,在master执行,执行一次 kubeadm upgrade plan [upgrade/versions] Latest version in the v1.12 series: v1.13.0 External components that should be upgraded manua

Ubuntu 12.04 下,adb命令不显示设备ID

1. 将adb命令添加到/usr/local/bin下.命令: sudo cp ~/working/ics/out/host/linux-x86/bin/adb /usr/local/bin/ 2. 创建文件50-android.rules.命令: sudo vim /etc/udev/rules.d/99-android.rules  (99代表权限,如果有两个这样到文件,执行权限高的.) 输入: SUBSYSTEM=="usb", ATTRS{idVendor}=="17

Web服务器管理系列:12、开启关闭Ping命令

有些时候网站打开速度会很慢,我们要排查故障所在,需要用到Ping命令,但是Windows Server 2008防火墙默认是关闭Ping的 我们可以通过以下方法开启Ping 打开防火墙->高级安全: 选择文件和打印机共享(回显请求 - ICMPv4-In) 选择启用: 记得用完Ping后一定要将其关闭,因为DDos攻击就是借助于Ping 这里解释一下: ping 一个发送测试数据包检测网络状况的命令 -l 65500 发送包含65500字节数据量的ECHO数据包 -n 100 发送100遍ECH

VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程 转载

VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程     转载 #include <stdio.h>#include <stdlib.h>#include <pthread.h> void* tprocess1(void* args){       int i=1;       while(i<=10){            printf("process1:%d\n",i);

12个 Linux 中 grep 命令的超级用法实例

12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum). $ sudo apt-get install grep #Debian/Ubuntu

12.26&amp;12.27 -正则表达式

12.26&12.27 正则表达式 第1章 使grep/egrep 过滤出的东西加上颜色 cat >>/etc/profile<<EOF alias grep='grep --color=auto' alias egrep='egrep --color=auto' EOF source /etc/profile alias grep egrep 第2章 正则表达式分类 2.1 基础正则表达式:basic    regular expression  BRE  ^  $  .

第三次冲刺12.07~12.15

在第二阶段冲刺还是没有如期完成我们想要的功能时,我们就开始调整. 下面是前段时间的燃尽图: 12.7 12.8 12.9 12.10 12.11 12.12 12.13 12.14 12.15