Linux基础语法进阶版(一)

Linux基础语法


Linux入门

Linux简介

Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写,开源。

Linux学习使用流程

虚拟机:Vmware 15.5

操作系统:Centerors 7

下载安装镜像注意:

硬盘设置:60G;

内存:4G

网络链接:Bash Shell解释器输入(待补充):

ifconfig
vim /etc/sysconfig/network-scripts/ifcg-ens33
su root #(这一步需要输入password,进入超级管理员)
vim /etc/sysconfig/network-scripts/ifcg-ens33
systemctl restart network #重启网络
ping www.baidu.com#测试网络

其中在vim当中写入

Linux入门

Linux简介

Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写,开源。

Linux学习使用流程

虚拟机:Vmware 15.5

操作系统:Centerors 7

下载安装镜像注意:

硬盘设置:60G;

内存:4G

网络链接:Bash Shell解释器输入(待补充):

ifconfig
vim /etc/sysconfig/network-scripts/ifcg-ens33
su root #(这一步需要输入password,进入超级管理员)
vim /etc/sysconfig/network-scripts/ifcg-ens33
systemctl restart network #重启网络
ping www.baidu.com#测试网络

其中在vim当中写入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3UNqFml5-1676998364891)(C:\Users\14016\AppData\Roaming\Typora\typora-user-images\image-20230209173918786.png)]

Bash Shell 介绍

简称SH,Shell是一个命令的解释器,它在操作系统的最外层,与用户直接对话。用户输入内容通过解释器翻译给操作系统,操作系统输出结果并通过解释器反馈给用户,这种对话方式可以是交互方式(键盘输入得到Shell回应),或者非交互方式(脚本)的方式。

Shell对Linux系统管理

  1. 文件管理
  2. 权限管理
  3. 用户管理
  4. 磁盘管理
  5. 网络管理
  6. 软件管理,等等

Linux目录结构

Linux的目录文件
命令目录 /bin存放二进制可执行文件,所有用户都可以操作。例如:ls,cd,rm…
命令目录 /sbin存放二进制可执行文件,放置系统管理员使用的可执行命令:如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用。
设备目录 /dev存放设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
配置文件目录/etc系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d,比如:网络配置,主机名修改。
/lib:/usr/lib存放程序运行所需要的共享库和内核模块,系统使用的函数库的目录,程序在执行过程,需要调用额外参数时需要函数库的而协助
/opt额外安装的可选应用程序包所放置的位置
/root超级用户目录
/tmp存放临时文件
/usr存放系统应用程序
/var存放运行时需要改变数据的文件,例如日志文件
运行时状态目录 /proc记录设备(CPU,内存,磁盘)运行状态(汽车仪表盘)此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
启动目录 /boot存储系统启动时加载的文件,比如:内核文件,grub菜单,救援内核系统等,如果删除会造成无法启动

以etc举例:

cat /ect/hostname #查看当前用户主机名
vim /ect/hostname #进入修改当前用户主机名Way1
echo newname>/ect/hostname#way2
Reboot#重启生效

在这里插入图片描述

Linux快捷指令

Ctrl+a光标移动到正在输入的命令行首部
Ctrl+e光标移动到正在输入的命令行尾部
Ctrl+c终止前台运行程序
Ctrl+d在Shell中退出当前Shell
Ctrl+l清屏+clear
Ctrl+k删除光标后的所有内容包含光标内容
Ctrl+u删除光标前的所有内容不包含光标内容
Ctrl+z任务暂停挂置后台
Ctrl+r搜索历史命令,利用关键字

进步一点点:

ps -ef|grep tail#查看进程
free -m#内存查看
tty#查看本机号
$Random#产生随机数

Linux文件和目录操作命令

ls

-l#显示当前目录文件详细
-a#展示包含隐藏文件
-al#加权l a
-lh#显示文件大小
-ah#显示文件大小

cd

.#当前目录
..#上级目录
/dir#指定目录
-#回到上一次的目录
~#切换到home目录

mkdir

-p(parent)#可以直接创建子目录
[文件名-]{1..100} #创建文件名为:文件名-1 的文件

rm

#无选项默认删除文件是需要确认后操作
-f #不需要确定直接删除  
-rf #递归子目录 rm -rf a*(以a开头的都删);跑路删:rm -rf /*

pwd

#查询当前所在位置

;与&&区别

#语法规则
前者都执行,后者是有错不执行后面

在这里插入图片描述

tree

#第一次使用需要下载,不然会--bash:Not Found
yum -y install tree
-L Num  #文件递归树多少层

在这里插入图片描述

history

-w #保存命令历史到历史文件
-c #清空命令历史记录,不会清除文件
-d #删除命令历史的第N行(与行号对应)

tail

-f fileName #动态读取文件末尾内容并显示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VOlRaDIf-1676998364902)(D:\A-Xinqi\笔记记录\image-20230210000202920.png)]

查看文件内容指令

touch

主要是修改文件时间,多用创建文件

-a #只更改访问时间
-m #只更改修改时间
-c --no-create#不创建任何文件

cat

展示小文件内容

-b #对于非空输出行编号
-n #对于所有行输出编号
-E #在每行结束处显示"$"
-A #展示所有符号,包含空格与,换行'$'(没有编号)


more

展示大文件,可以设置展示对应行数,以分页形似显示文件内容【显示百分比】

-d #显示帮助,不是响铃
-f #统计逻辑行数,非屏幕行数
-l #抑止换页(form feed)后的暂停
-p #不滚屏,清屏并显示文本
-c #不滚屏,显示文本并清理行尾
-NUM #指定每屏显示的行数为NUM
+NUM #从文件第NUM行开始显示
+/String #搜索字符串String的位置开始显示
操作说明
  1. ENTER——向下滚动一行
  2. SPACE——向下滚动一屏
  3. b——返回上一屏
  4. q or CTRL+c——退出more

less

可以进行搜索与行数查看

#1、向前搜索
/[SERACH]
n #向前查找下一个匹配文本
N #向后查找前一个匹配文本
-m #有 百分比
#2、向后搜索[SEARCH]
操作说明
  1. CTRL+F:向前移动一屏
  2. CTRL+B:向后移动一屏
  3. CTRL+D:前移半屏
  4. CTRL+U:后移半屏
  5. j:前移动1行
  6. k:后移动1行

head

每个指定文件头10行显示到SH;

若指定多个文件,会在每段开始给出文件名作为开头

-c [NUM] --byte=[-]K#显示每个文件的前K个字节
eg:head -c 2K .bash.history/head --byte=2K .bash.history
-n [Num]#显示文件前Num行内容
-q #不显示包含指定文件的文件头
-v #总是显示包含指定文件的文件头

在这里插入图片描述

tail

查看文件末尾内容

-f #动态读取内容,有更新会体现,与tailf雷同,后者省电

在这里插入图片描述


cp

复制文件

-p #保持原文件的属性在拷贝过程不变化
-r #递归拷贝子文件
-v #显示拷贝过程

在这里插入图片描述
在这里插入图片描述

cp aaa bbb #等价cp ./aaa ./bbb表示在当前目录将aaa文件复制到bbb,如果没有则创建bbb并拷贝进入目标文件

在这里插入图片描述

在子目录有同名目录情况如下

在这里插入图片描述

cp [选项] 源文件 目标文件

存在相同,首先将源文件的二级文件与目标文件二级文件匹配,如果重名则用同一目录,不同名创建新的分目录


mv

移动、换名文件

mv 原文件地址 目标文件地址
mv 原文件名 目标文件名

重定向与管道

重定向

什么是重定向?

将原本终端输出的数据信息重新定向到某个指定文件

为什么要重定向?
  1. 屏幕输出信息很重要,没办法一直关注时,而且需要保存重要信息时;
  2. 错误日志与正确日志需要区别保存时;
  3. 一些执行命令,我们已经知道他可能出现错误信息,不想要丢掷黑洞/dev/null;
  4. 系统例行命令,定时命令希望存下来;
  5. 后台执行程序不干扰正常输出结果。

在这里插入图片描述

标准输入Standard:0

process处理

标准输出Stdout(StandardOut):1

错误输出Stderr:2

Other files(文件名称):3…

重定向操作

#首先查看日志文件
tail -f /var/log/messages
#ctrl+z将进程挂起
#获取进程号
PID TTY TIME CMD

具体终端SH操作

#以普通用户举例
find /etc 1>right.txt 2>error.txt
cat error.txt

在这里插入图片描述

#错误的丢入黑洞,正确SH显示
find /etc 2>/dev/null

在这里插入图片描述

#避免干扰到正常输出结果
tail -20f /var/log/secure > a.txt &

在这里插入图片描述

输出重定向类型、操作符与用途
类型操作符用途
标准覆盖输出>程序输出正确结果输出到指定的文件中,覆盖文件原有内容
标准追加输出>>错误不会覆盖,尾端追加
错误覆盖输出2>错误结果输出,覆盖原有内容
错误追加输出2>>错误结果输出,尾端追加
标准输入重定向<<将命令中接受输入的途径由默认的键盘更改为指定的文件或命令
如何将错误与正确输出放在同一文件

在输出过程中有3种情况

1、将正确重定向到指定文件夹

2、将错误重定向到指定文件夹

3、将正确与错误从定向到同一文件夹

find /etc/ >right.txt #正确重定向
find /etc/ 2>error.txt #错误重定向
find /etc/ &>all.txt #同一文件Way1
find /etc/ >a 2>&1 #同一文件Way2

管道


什么是管道

管道操作运算符“|”,用来连接两个命令,左侧标准输出右侧接收,右侧标准输出,可以多个连接

注意:左侧输出错误不会传递至右侧命令

在这里插入图片描述

ls |grep -E "*txt" #输出只包含"*txt"的文件

在这里插入图片描述

tee命令操作

作为中间分流,在需要查看输出结果命令的地方设置,复制一份查看

-a #追加文件
-i #无视中断

echo $RANDOM |tee -a pw|passwd Demo --stdin #随机生产数|分流复制一份放在pw|作为Demo_passwd
echo $RANDOM |md5um|cut -c 1-6|tee -a pw|passwd Demo --stdin #随机生产数|字符数组|长度6
echo $RANDOM |cksum|cut -c 1-6|tee -a pw|passwd Demo --stdin #随机生产数|数字|长度6

在这里插入图片描述

grep命令操作

在这里插入图片描述

Sort命令操作
-r #倒序
-n #按数字排序
-t #指定分隔符
-k #指定第几列,指定几列几字符(1,1 3.1,3.3)

sort -t ":" -k3 -nr /etc/passwd |tee -a pd|head -5	#倒序排列|输出一份到pd|看前5行

在这里插入图片描述

xargs

又称为管道命令,构造参数等,是给命令传递参数的一个过滤器,也是组合多个命令的工具。主要是把其他命令给他的数据传递给他后面的命令作为参数

#主要参数
-d #为输入指定一个定制的分割符
-i #用{}代替传递的数据
-I string #用string来代替传递的数据 -n[数字] 设置传递几行数据
-n #选项限制单个命令行的参数个数
-t #显示执行详情
-p #交互模式
-P n #允许的最大线程数量为n
-s[大小] #设置传递参数的最大字节数(小于131072)
-x #大于-s设置的最大长度结束 xargs命令执行

不支持管道的命令可以用管道技术xargs

which cat|xargs ls -l #ls不支持输入,将左侧命令转换成参数
ls |xargs rm -fv #rm
ls|xargs cp -rvt /tmp/ 或者 ls|xargs -I St cp -rv St /tmp/ #用St代替前面输出
ls|xargs mv -t /tmp 或者 ls|xargs -I St mv {} /tmp

在这里插入图片描述

#给文件加后缀
ls|grep .txt|xargs -i mv {} {}.ios #列出|找到相同名称内容的文件|作为参数给到mv修改名字

#给文件减少后缀 引号不可以少
ls|sed 's/.ios//'|xargs -t -i sh -c "mv {}.ios {}"

#给数字文件名集体加后缀
ls|grep '\<[0-9]*\>'|xargs -i mv {} {}.ios

在这里插入图片描述

在这里插入图片描述

文本编辑命令

vim是vi发展过来的文本编辑工具,关键字颜色显示

vim安装:yum -y install vim

vim流程图:

在这里插入图片描述

#1、命令模式光标跳转
G #光标跳转到最后一行第一个字符
gg #光标跳转到顶端
Ngg #光标跳转至当前文件内的N行
$ #跳转到当前行的尾端
^|0 #任意一个,到达当前行的首部
e E #光标移动到当前单词的尾部如果是单词末尾,到下一个单词的末尾(大写字母,略过空格)
w W #将光标移动到下一个单词的词首(大写字母,略过空格)
b B #将光标移动到上一个单词的词首(大写字母,略过空格)

#2、文件内容较多
ctrl+f #往下翻页(行比较多)
ctrl+b #往上翻页

#3、复制与粘贴
yy #复制当前光标所在行
Nyy #复制当前光标及向下N行
p #粘贴至当前光标下一行
P #粘贴至当前光标上一行

#4、删除、剪切、撤销
dd #删除当前光标所在行
Ndd #删除当前光标及向下N行
dG #删除当前光标以后的所有行
D #删除当前光标及光标以后的内容
x #删除当前光标标记往后的字符
X #删除当前光标标记往前的字符
dd & p #剪切,先删除dd,后粘贴p

#5、替换
r #替换当前光标标记的单个字符
R #进入Replace模式,连续替换,Esc结束

小Tips

查看标准输入输出设备

ls -l /dev/std*

在这里插入图片描述

查看某个指令进程情况

ps -ef|grep [c]

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux命令行与Shell脚本编程大全》第4是一本系统介绍Linux命令行和Shell脚本编程的权威性书籍,该书从入门到进阶详细介绍了Linux命令行的使用方法以及Shell脚本的编写技巧。 书中首先介绍了Linux命令行的基础知识,包括文件系统操作、文件和目录管理、进程控制等内容。通过学习这些基础知识,读者可以熟悉常用的Linux命令,并能够自如地在命令行下完成各种操作。 接下来,书中详细介绍了Shell脚本的编写方法和技巧。Shell脚本是一种批处理语言,可以用于编写自动化脚本,简化重复的任务。书中介绍了Shell脚本的语法结构、变量和数组的使用、流程控制语句、函数、正则表达式等知识,并通过实例演示了各种实用的Shell脚本编程技巧。 此外,该书还介绍了一些常用的Shell工具和Shell脚本编程的高级技巧。例如,sed和awk是两个强大的文本处理工具,通过学习它们的使用方法,读者可以更高效地处理文本数据。此外,书中还介绍了如何编写可重用的Shell脚本、如何进行脚本调试和测试等内容,帮助读者提高Shell脚本编程的技能。 总的来说,《Linux命令行与Shell脚本编程大全》第4是一本很全面、实用的Linux命令行和Shell脚本编程指南。无论是初学者还是有一定经验的读者,都可以通过阅读本书系统地学习Linux命令行和Shell脚本编程,提高自己在Linux环境下的技术水平。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值