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;

创建测试数据
[[email protected] ~]# cd  /my
[[email protected] my]# echo ‘oldboy‘ >/test/a.sh
-bash: /test/a.sh: No such file or directory
[[email protected] my]# echo ‘oldboy‘ >test/a.sh
[[email protected] my]# echo ‘oldboy‘ >test.sh
[[email protected] my]# echo ‘oldboy‘ >t.sh
[[email protected] my]# tree
.
├── 8.txt
├── ett.txt
├── new1
│   └── new2
│       └── new3
├── new2
│   └── new2
│       └── new3
├── test
│   └── a.sh
├── test.sh
└── t.sh
测试开始替换数据
[[email protected] my]#find -type f -name ‘*.sh‘|xargs sed ‘s#oldboy#oldgirl#g‘ (只是替换但尚未修改)
oldgirl
oldgirl
oldgirl
[[email protected] my]# find -type f -name ‘*.sh‘|xargs sed -i ‘s#oldboy#oldgirl#g‘
(加 -i 直接替换修改)
[[email protected] my]#find -type f -name ‘*.sh‘|xargs  cat 信息流  给cat
oldgirl
oldgirl
oldgirl
(不加xargs  直接变成数据流 交给cat)
[[email protected] ~]# 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
#### 多重创建
[[email protected] ~]# mkdir /yyn/{335,336,3365}/yyn -p
[[email protected] ~]# 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 结束编辑;
[[email protected] myfile]# cat >>myfile.txt<<my     : (多行追加实例:)
 i love you in mylife;
do you want to mirry with me?
my(my  可以换成任意,但必须顶格写)
[[email protected] 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< 或 <     输入重定向  : 把文件或文本内容   输入给  前面的命令;
例子:
[[email protected] myfile]# echo ‘ 1 2 3 4 ‘>myfile.txt
[[email protected] myfile]# cat myfile.txt
 1 2 3 4
[[email protected] myfile]# xargs -n 2 <myfile.txt  (xargs -n 2  理解为:2个一个单位分组)
1 2
3 4

0<< 或 <<   输入追加重定向
[[email protected] myfile]# cat >>myfile.txt<<my     : (多行追加实例:)
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 <wenjian   分组
echo 1 2 3 4 5 6 7 8 >a.txt
例子:xargs  -n   3 <a.txt

cp 拷贝

cp  file  /temp  把某个文件或目录拷贝到 某个地方
例子:  cp  a.txt  /temp/      相对路径拷贝
[[email protected] 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  的别名
[[email protected] /]# alias rm=‘echo this command does not allow to use‘
[[email protected] /]# rm
this command does not allow to use
[[email protected] /]# alias net=‘cat /etc/sysconfig/network-scripts/ifcfg-eth0‘
[[email protected] /]# 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
    横着输出打印
    [[email protected] ~]# seq -s " " 10
    1 2 3 4 5 6 7 8 9 10
    [[email protected] my]# seq 10 |xargs -n 3
    (seq num 默认从1开始num结束,xargs -n num 分组)
    1 2 3
    4 5 6
    7 8 9
    10
    [[email protected] my]# seq 3 10 |xargs -n 3
    (seq num1 num2 从num1开始到num2结束,xargs -n num 分组)
    3 4 5
    6 7 8
    9 10
    [[email protected] 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‘

原文地址:https://blog.51cto.com/12838569/2388682

时间: 2024-10-15 04:27:28

Linux 基本指令的操作和所学的 汇总(五节续)的相关文章

Linux 基本指令的操作和示例说明(五节)

指令规则:命令 [参数选项][文件或路径] ls -ld (参数 l 和 d) 多参数可以直接连起来操作 前面 加 " - " 操作查看目录指令: mkdir 创建目录 全名称:make directorys ---- :mkdir (/data)是创建的目录:或者 cd /; mkdir data 第一个指令 是 直接创建 目录 在根 " / "下 : mkdir /data : 第二个是 进入根" / "下直接创建 :cd /; mkdir

Linux基础指令--文件操作

mkdir a 创建一个名为a的文件夹 touch a.txt 创建一个名为a.txt的文件 mv b sm/ 将文件(夹)b 移动到当前目录下的sm目录下 rm -rf a 删除 a文件 -rf为参数-r -f 的简写 -r 递归删除 -f 强制删除 mv b sm/c 将文件(夹)吧b移动到当前目录下的sm目录下并重命名为c cp sm.log .. 将sm.log复制到上级目录中 cp sm.log ../sm01.log 将sm.log复制到上级目录中,并重命名为sm01.log cat

linux 常用指令 文件操作trick等

截取文件中的几行 1. 截取前5行: head -5 filename filename是你要截取的文件名,不在当前目录下要加路径的. 2.截取后5行: tail -5 filename 3.截取5-10行,并重新输入到另一个文件中 sed -n '5,10p' filename > another_filename vi中如何跳转到指定行数 输入:n,代表跳转到第n行,如:79,就跳转到第79行. 原文地址:https://www.cnblogs.com/shona/p/12238626.ht

[Linux] PuTTY指令汇总(持续更新中...)

写在前面: 以前真心没有玩过Linux系统,总感觉整天摆弄Linux的同学都是大牛.如今,在公司里实习需要远程登录Linux服务器,所有的代码都要在开发板上完成,所以被逼无奈也不得不定下心来好好学学Linux系统的各种操作.我现在用的远程登录软件是PuTTY,所以简单总结一下常用的PuTTY指令,方便以后进行查阅. 1. PuTTY介绍 随着Linux在服务器端应用的普及,Linux系统管理越来越依赖于远程.在各种远程登录工具中,PuTTY是出色的工具之一.PuTTY是一个免费的.Windows

Linux shell 指令

Linux shell指令运行的原理: Linux严格意义上说的是一个操作系统,我们称之为"核心(kernel)" ,但我们一般用户,不能直接使用kernel.而是通过 kernel的"外壳"程序,也就是所谓的shell,来与kernel沟通.shell对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核.反馈结果在通过内核运行出结果,通过shell解析给用户. ls指令 -a 列出目录下的所有文件,包括以.开头的隐含文件. cd命令

Linux基本指令

1.Linux常用的查找命令 在Linux下经常会使用到两个查找命令grep和find.其中grep命令常用作包含某个字符串的文件:而find常用于查找匹配制定文件名的文件. grep命令 其实grep命令是Linux当中一个非常强大的搜索工具,这里之作简单的做简单的字符串匹配查找的相关介绍,大牛勿喷呀,方便日后查阅写给自己的. grep 要查找的字符串 查找路径 要查找的文件列表(用空格隔开) 参数     //grep查找字符串的格式 常用参数:-R 递归查找 -n 显示匹配的文件行号 eg

Linux压缩指令

1.windows系统和Linux系统的压缩文件只有zip格式的是通用的 2.windows系统可以解压几乎所有的Linux压缩格式 3.Linux压缩指令 gzip 指令 格式: gzip 压缩的文件名 说明: 压缩后的文件名自动叫做 原文件名.gz gzip只能压缩.解压缩文件,不能操作目录,操作不保留源文件  gzip –d 或者 gunzip解压缩 tar 指令 格式: 压缩 tar –zcvf 压缩后名称 压缩的文件或目录 解压 tar –zxvf 解压的文件名 说明: 压缩后的文件名

3)Linux程序设计入门--文件操作

3)Linux程序设计入门--文件操作 Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 1.文件的创建和读写 我假设你已经知道了标准级的文件操作的各个函数(fopen,fread,fwrite等等).当然 如果你不清楚的话也不要着急.我们讨论的系统级的文件操作实际上是为标准级文件操作 服务的. 当我们需要打开一个文件进行读写操作的时候,我们可以使用系统调用函数open.使用完 成以后我们调用另外一个

汇编指令和操作

1 ldr伪指令有两种用途. (1)当需要读取到寄存器中的数据超过了MOV,及MVN指令可以操作的范围时,可以使用LDR伪指令将该数据读取到寄存器中. (2)还未用到.2 ldr r0,=0x5300000 (把0x5300000下载到r0中) mov r1,#0 str r1,[r0] (把r1的数据下载到r0中的地址对应的空间,这就是[]的作用)3 @ 手动设置CPU模式为irq模式 mrs r0,cpsr bic r0,r0,#0x1F (清0,先将0x1f取反,低5位变为00000,然后