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<<my : (多行追加实例:)
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 <myfile.txt (xargs -n 2 理解为:2个一个单位分组)
1 2
3 4

0<< 或 << 输入追加重定向
[root@root 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/ 相对路径拷贝
[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'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。在编写C程序时,需要注意变量的声明和定义、指针的使用、内存的分配与释放等问题。C语言中常用的数据结构包括: 1. 数组:一种存储同类型数据的结构,可以进行索引访问和修改。 2. 链表:一种存储不同类型数据的结构,每个节点包含数据和指向下一个节点的指针。 3. 栈:一种后进先出(LIFO)的数据结构,可以通过压入(push)和弹出(pop)操作进行数据的存储和取出。 4. 队列:一种先进先出(FIFO)的数据结构,可以通过入队(enqueue)和出队(dequeue)操作进行数据的存储和取出。 5. 树:一种存储具有父子关系的数据结构,可以通过中序遍历、前序遍历和后序遍历等方式进行数据的访问和修改。 6. 图:一种存储具有节点和边关系的数据结构,可以通过广度优先搜索、深度优先搜索等方式进行数据的访问和修改。 这些数据结构在C语言中都有相应的实现方式,可以应用于各种不同的场景。C语言中的各种数据结构都有其优缺点,下面列举一些常见的数据结构的优缺点: 数组: 优点:访问和修改元素的速度非常快,适用于需要频繁读取和修改数据的场合。 缺点:数组的长度是固定的,不适合存储大小不固定的动态数据,另外数组在内存中是连续分配的,当数组较大时可能会导致内存碎片化。 链表: 优点:可以方便地插入和删除元素,适用于需要频繁插入和删除数据的场合。 缺点:访问和修改元素的速度相对较慢,因为需要遍历链表找到指定的节点。 栈: 优点:后进先出(LIFO)的特性使得栈在处理递归和括号匹配等问题时非常方便。 缺点:栈的空间有限,当数据量较大时可能会导致栈溢出。 队列: 优点:先进先出(FIFO)的特性使得

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值