linux ll命令每列,Linux 基本指令的操作和所学的 汇总(五节续)

先说道面试题

实例一:只查看test.txt文件(100行)内第20到第30行的内容(企业面试) 4 + 2种 方法

(1)seq 30 >/my/et.txt

head -30 /my/et.txt | tail -11

(2)sed -n '20,30' p et.txt (sed功能增删该查 -n 取消默认输出 按规则输出打印(p))

(3)awk ' NR>19&&NR<31' et.txt ({if(NR>=20 && NR<=30) print $1}可以替换 ‘’ 内的内容意思相同)

(4) grep

A 除了显示匹配到的一行外 ,并显示该行之后的num行 例子: grep 20 -A 10 a.txt

B 除了显示匹配到的一行外 ,并显示该行之前的num行 例子: grep 30 -B 10 a.txt

C 除了显示匹配到的一行外 ,并显示改行之前的num行 例子: grep 25 -C 5 a.txt

一条指令 将/my/a.txt 复制到 /temp/a.txt 后不提示信息

(1)\cp /my/a.txt /temp/a.txt

(2)/bin/cp /my/a.txt /temp/a.txt

(3)unalias cp ----> (该条功能不建议使用,服务器重启后 失效 )

cp /my/a.txt /temp/a.txt

把/my 目录及其子目录中使用扩展名为‘ .sh’结尾的文件中包含 oldboyde 字符串全部替换成 oldgirl;

创建测试数据

[root@root ~]# cd /my

[root@root my]# echo 'oldboy' >/test/a.sh

-bash: /test/a.sh: No such file or directory

[root@root my]# echo 'oldboy' >test/a.sh

[root@root my]# echo 'oldboy' >test.sh

[root@root my]# echo 'oldboy' >t.sh

[root@root my]# tree

.

├── 8.txt

├── ett.txt

├── new1

│ └── new2

│ └── new3

├── new2

│ └── new2

│ └── new3

├── test

│ └── a.sh

├── test.sh

└── t.sh

测试开始替换数据

[root@root my]#find -type f -name '*.sh'|xargs sed 's#oldboy#oldgirl#g' (只是替换但尚未修改)

oldgirl

oldgirl

oldgirl

[root@root my]# find -type f -name '*.sh'|xargs sed -i 's#oldboy#oldgirl#g'

(加 -i 直接替换修改)

[root@root my]#find -type f -name '*.sh'|xargs cat 信息流 给cat

oldgirl

oldgirl

oldgirl

(不加xargs 直接变成数据流 交给cat)

[root@root ~]# find /my -type f -name '*.sh'| cat

/my/test/a.sh

/my/t.sh

/my/test.sh

五星级别的命令 :

linux 三剑客之

grep \ awk \ sed;他们都有过滤字符串的功能;

grep :查找过滤最擅长

awk :处理列擅长(NF :代表字段 NR:代表 记录 一个记录代表一行)

sed : 擅长添加、替换、修改、删除 、

帮助指令:

ifconfig 查看网卡链接信息---- 相同于 ip addr

man 命令 Linux 指令

--help 简洁 版 帮助

help 命令 内置指令帮助

操作查看目录指令:

mkdir 创建目录

全名称:make directorys :

mkdir (/data)是创建的目录;或者 cd /; mkdir data

第一个指令 是 直接创建 目录 在根 " / "下 : mkdir /data ;

第二个是 进入根" / "下直接创建 :cd /; mkdir data

例子: mkdir /myfile 或者 cd /; mkdir myfile

#### 递归创建目录

mkdir -p /my/new1/new2

#### 多重创建

[root@root ~]# mkdir /yyn/{335,336,3365}/yyn -p

[root@root ~]# tree /yyn

/yyn

├── 332

│ └── yyn

├── 335

│ └── yyn

├── 336

│ └── yyn

└── 3365

└── yyn

ls 列表

ll :查看该目录下的文件总个数

指令规则:命令 【参数选项】【文件或路径】

ls -ld (参数 l 和 d) 多参数可以直接连起来操作 前面 加 “ - ”

参数 l (long) 长格式

参数 d (directorys) 查看目录

例子: ls -l \ ls -d \ ls -ld() ls /data (进入目录下查看)

cd 改变目录路径

全名称 :change directory

相当路径:没有从根 " / " 开始 cd data

绝对路径:从根 " / " 开始 cd /etc

例子: cd /etc ; cd data

pwd 打印工作目录(显示当前所在路径)

全名称 :print work directory

例子: pwd 输出结果:/directory / (那个文件)

touch 创建文件及更新时间戳

若文件不存在 touch file.txt

若文件存在 更新时间戳(文件的时间属性) ;

例子: touch /myfile/file.txt

touch 另外

touch {1..10}.txt 创建

mv `find /my -type f -name " *.txt " ` /data

vi 编辑文件

vi file.txt

vi 后跟 操作的文件 ; 回车进入待编辑状态

按 " a "或 " i " 字母 进入编辑状态 ; 编辑好之后

按 键盘 Esc 回到 待编辑状态;

输入 " :wq " 保存和退出 编辑 回到 命令行模式;

不想保存: 输入 :q

强制退出 输入 :q!

解释 wq : w(write) 、q (Quit) ;

vim 复杂编辑器

功能复杂,高亮,自动缩进,写脚本(shell / python 脚本用)

vim file.txt

按 " a "或 " i " 字母 进入编辑状态 ; 编辑好之后

按 键盘 Esc 回到 待编辑状态;

输入 " :w " 保存后再按":q"退出 编辑 回到 命令行模式;

echo 覆盖或追加内容 配合 " 重定向 > " , " 追加 >>"

echo ' I am study Linux now; ' >myfile.txt

echo {a..z} myfile.txt 相当于 序列 seq 部分功能

解释:echo 后面跟 文件内容 " > " 代表重定向到 那个文件

或者其他" > " 后的文件若存在 会 先清空 该文件的内容

后 写入 " > " 前面的 内容 ;

此 " > " 指令 操作 危险 ,在操作前 请先备份 ,

再操作;若想追加 则用 " >> "

例子: echo 'I drop in love river with you; '>>myfile.txt

cat 查找,单行和多行文本添加

Linux 常用的指令功能:

查看网卡连接设置

cat /etc/sysconfig/network-scripts/ifcfg- ens34 网卡名称

cat >myfile.txt 回车 后编辑输入 I love you in my life;在按 Ctrl + C 或 D 结束编辑;

[root@root myfile]# cat >>myfile.txt<

i love you in mylife;

do you want to mirry with me?

my(my 可以换成任意,但必须顶格写)

[root@root myfile]# cat myfile.txt (实例显示的结果:)

I studying Linux now;

i love you in mylife;

do you want to mirry with me?

Cat 其它用法: 多行文本输入

cat >> /my/a.txt << my

123

123

456

my

特殊符号 < 、< 、>> 的说明:箭头的指向代表数据的流向

'>' 或 (0\1\2)> 输出重定向:把前面的内容输入到后面,会清除原有的文件内容;(有 1 没有都一样)

例子 :>myfile.txt (清空原有内容) echo ' i love you ' >myfile.txt

'>>' 或 (0\1\2)>> 追加输出重定向:把前面的内容追加到后面,不会清除原有文件内容;

例子:echo 'I drop in love river with you; '>>myfile.txt

0< 或 < 输入重定向 : 把文件或文本内容 输入给 前面的命令;

例子:

[root@root myfile]# echo ' 1 2 3 4 '>myfile.txt

[root@root myfile]# cat myfile.txt

1 2 3 4

[root@root myfile]# xargs -n 2

1 2

3 4

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

[root@root myfile]# cat >>myfile.txt<

i love you in mylife;

do you want to mirry with me?

my

数字的说明:

标准输入(stdin): 代码为0 ,使用 0< 或 0<< ,数据(输入的数据)流向从右到左

例子: cat < myfile.txt

标准正常输出(stdout):代码为1 ,使用 1> 或 1>> ,数据(正确的数据)流向从左到右

例子: echo oldbook >myfile.txt echo oldbooks >> myfile.txt

标准错误输出( stderr ): 代码为2 ,使用 2> 或 2>> ,数据(错误的数据)流向从左到右

echo oldbook > myfile.text 2>b.txt 意思是:正确的数据输出到 myfile.txt,错误的输出到b.txt

cho odkbb > a.txt 2>'&' 意思是: 正确或者错误都输出到 a.txt

cho oooddd &>a.txt 意思是: 正确或者错误都输出到 a.txt

echo shuikm &>>a.txt 意思是:正确或者错误输出追加到 a.txt

xargs 分组

xargs -n number

echo 1 2 3 4 5 6 7 8 >a.txt

例子:xargs -n 3

cp 拷贝

cp file /temp 把某个文件或目录拷贝到 某个地方

例子: cp a.txt /temp/ 相对路径拷贝

[root@root myfile]# cp /myfile/a.txt /my

cp: overwrite `/my/a.txt'? y

若拷贝目录需要 加参数 " -r 递归拷贝 "

" -a 相对于 ;

-p: 保持属性 ;

-d:链接文件

-r "拷贝目录

在拷贝时 ,让系统 不提示覆盖信息

cp 前 加 " \ " ;或者 写全路径

例子:/bin/cp /my/a.txt /temp/ a.txt

\cp -r /myfile /temp

rm remove

rm -f(force)强制 -r(recuresive) 递归删除目录 / mydirectory

rm -fr /{1,2,3,4,5,6,7,8}

mv 移动文件和目录

mv file.txt /temp 原位置文件就没有了

find 查找

find 查找 -type f (什么类型) -name (叫什么名字) " file.txt" -exec(做什么动作)

find /myfile -type f -name ' myfile.txt ' -exec rm {} \;

! 取反的意思 find /myfile -type f ! -name ' myfile.txt'

-a(and) 交集 find /myfile -type f -name ' myfile.txt' -a 'a.txt' 默认是交集

-o (or) 并集 find /myfile -type f -name ' myfile.txt' -o 'a.txt'

上面例子是:找到/myfile 目录下file类型的myfile.txt 文件 ' {} 内容 '删除操作

find /myfile -type f -name "*.txt " | xargs rm -f

把查找的内容 放到一行上 进行删除

find + rm 删除该目录下其他文件 但保留指定文件

find /my -type f !- name ' 8.txt' -exec rm -f {} \;

grep 过滤 -v 排除后面的

grep 【内容】 【 文件】 显示【内容】 例子:grep 123 a.txt

v 过滤排除的内容显示除了过滤以外的内容 例子: grep -v 123 a.txt

A 除了显示匹配到的一行外 ,并显示该行之后的num行 例子: grep 20 -A 10 a.txt

B 除了显示匹配到的一行外 ,并显示该行之前的num行 例子: grep 30 -B 10 a.txt

C 除了显示匹配到的一行外 ,并显示改行之前后的num行 例子: grep 25 -C 5 a.txt

head 头部 tail 尾部

head -num a.txt 读取前 num 行 从a.txt文件

例子:head -10 a.txt 读取前10行数据

tail -num a.txt 读取后 num 行 从a.txt文件

例子: tail -10 a.txt 读取后10行数据

有个 a.txt 文件内容100行,要求读取20-30行

例子:head -30 a.txt | tail -11

安装软件包

yum install 【参数】【y/n 代表 是否提示】

yum install tree -y

别名 的作用:alias \ unalias

给危险指令加防护 防止误操作

简化命令

alias 查看和设置系统现有的别名设置别名

unalias 取消现有的别名

unalias cp 取消cp -i 的别名

[root@root /]# alias rm='echo this command does not allow to use'

[root@root /]# rm

this command does not allow to use

[root@root /]# alias net='cat /etc/sysconfig/network-scripts/ifcfg-eth0'

[root@root /]# net

DEVICE=eth0

HWADDR=00:0c:29:54:22:9d

TYPE=Ethernet

UUID=f0212429-d0c9-4ff5-9d33-8c7231d5664c

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=dhcp

USERCTL=no

PEERDNS=yes

IPV6INIT=no

seq 序列

seq num 默认从1开始num结束

seq -s " " num 横着从1开始num结束; -s 指定分隔符 默认 \n

seq num1 num2 从num1开始到num2结束

seq num1 num2 num3 从 num1 开始到 num3 结束 间隔 num2

横着输出打印

[root@root ~]# seq -s " " 10

1 2 3 4 5 6 7 8 9 10

[root@root my]# seq 10 |xargs -n 3

(seq num 默认从1开始num结束,xargs -n num 分组)

1 2 3

4 5 6

7 8 9

10

[root@root my]# seq 3 10 |xargs -n 3

(seq num1 num2 从num1开始到num2结束,xargs -n num 分组)

3 4 5

6 7 8

9 10

[root@root my]# seq 1 2 20 |xargs -n 3

(seq num1 num2 num3 从 num1 开始到 num3 结束 间隔 num2,xargs -n num 分组)

1 3 5

7 9 11

13 15 17

19

sed

语法:

sed ' s#1#2#g' et.txt

1 , 2 把 1 的内容, 替换成 2 的内容

# 号 是分隔符 ,可以 / 或者 @ 替换

参数:

-n 取消默认输出

sed -n '20,30'p /my/ett.txt

-i 修改文件内容

sed -i 's#oldboy#oldgirl#g' test.sh t.sh test/a.sh

-e 允许多项修改

功能:

p 打印

sed -n '20,30'p /my/ett.txt

g 和 s 联合是 表示当前行全局匹配替换

sed -i 's#oldboy#oldgirl#g' test.sh t.sh test/a.sh 原理是这样)

(1) sed -i 's#oldboy#oldgirl#g' `find /my -type f -name "*.sh"`

(2) find /my -type f -name "*.sh |xargs sed -i 's#oldboy#oldgirl#g'

s 查找并替换

sed -i 's#oldboy#oldgirl#g' test.sh t.sh test/a.sh (原理是这样)

(1) sed -i 's#oldboy#oldgirl#g' `find /my -type f -name "*.sh"`

(2) find /my -type f -name "*.sh |xargs sed -i 's#oldboy#oldgirl#g'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值