shell及在Linux的使用

shell

  • 系统的命令解释器,翻译成中文也就叫壳,就是最表面的,用于操作系统与用户的通信,相当于Dos中的command。Red Hat Linux 默认的shell 是Bash !
  • Bash是GNU计划的一个组件,与Unix上的Bourne Shell完全兼容。支持命令行输入、操作历史查询、快捷键、使用变量等功。
  • 一个用户使用什么shell 可以在 /etc/passwd中查看
  • nologin 是个很特殊的shell,也很重要。意思是不允许用户交互式登录系统。

Linux shell的变量分类

  • 在Shell中有三种变量:
    1、内部变量:系统提供,不用定义,不能修改
    2、环境变量:系统提供,不用定义,可以修改,可以利用export将用户变量转为环境变量.
    3、用户变量:用户定义,可以修改

内部变量(系统变量,环境变量,参数变量,预定义变量)

  • 内部变量是Linux所提供的一种特殊类型的变量,这类变量在程序中用来作出判断。在shell程序内这类变量的值是不能修改的。
命令功能
$n$1 表示第一个参数,$2 表示第二个参数 …
$#命令行参数的个数
$0当前程序的名称
$?前一个命令或函数的返回码
$*以"参数1 参数2 … " 形式保存所有参数
$@以"参数1" “参数2” … 形式保存所有参数
$$本程序的(进程ID号)PID

环境变量

  • Linux环境(也称为shell环境)由许多变量及这些变量的值组成,由这些变量和变量的值决定环境外观。这些变量就是环境变量。
    包括两部分,一是,由系统设置的,主要包括: HOME,LOGNAME,MAIL,PATH,PS1,PWD,SHELL,TERM
    二是,用户在命令行中设置的,使用export命令,但是用户注销时值将丢失

用户变量(私有变量,本地变量)

  • 在bash中有很多预定义环境变量 ,用户可以用set或env查询当前的环境变量
  • 常用的预定义变量:
    HOME:当前用户的主目录
    PATH:当前用户的可执行文件搜索路径
    LANG:程序应该使用的默认语言
  • 注意,我们系统中环境变量是很多的,但是我们需要注意的只要这几个,LINUX下面的变量名字基本都是大写字母哈.
    可以用 echo $变量名字 来查看变量
  • 用户变量是用户在编写shell过程中,可以在shell程序内任意使用和修改的变量。(以字母或下划线开头,通常字母是大写母)
    赋值:变量名=变量值
    获取变量值 ${变量名}
    在这里插入图片描述
    也可以使用printf来产生各种格式的输出
    在这里插入图片描述
  • 在bash中输入history指令可以查询用户的过往操作
    内存中记录的过往指令数根据环境变量中HISTSIZE而定。(/etc/profile)

命令行表达式

命令行输出——“ ” 将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,则转义。
命令行输出——‘ ’ 将一串字符当成一个字符串来对待,如果字符串中包含特殊含义的字符,不转义。
执行引用符—— 引用命令的执行结果

别名

  • bash 在用户登录时从四个文件中读取环境设定:
    全局设置文件: —对全部用户生效
    ① /etc/profile
    ② /etc/bashrc
    用户设置文件: —对单个用户生效
    ③ ~/.bash_profile
    ④ ~/.bashrc
  • alias 别名
    在shell下键入alias可以查询当前alias列表。
    用户可以alias来为一条命令取一个简单的别名
    用户也可以用unalias来取消一条别名记录。
    alias记录在shell中总是先行。
    如果使你的更改永久生效,需要把他写入该用户家目录下面的配置文件 .bashrc

文件处理命令

  • wc
    wc用来统计一个文件的行数(-l)、词数(-w)、字符数(-c)并送到标准输出。
  • grep
    grep用来从一个文件中找出匹配指定关键字的那一行,并送到标准输出,结合管道,我们通常用它来过滤搜索结果
  • diff
    diff用于比较两个文件之间的区别,并送到标准输出。输出时先报告两个文件的哪一行不同。
  • cut
    可以根据一个指定的标记(默认是tab)来为文本划分列,然后将此列显示,例如:
    [root@stationXX root] $ cut –f 1 –d : /etc/passwd
    -d表示以什么分隔符,-f显示第几列

输入、输出、重定向

  • 输入:过滤器的数据来源
    标准输入stdin(0):默认是键盘
  • 输出:过滤器的数据去向
    标准输出stdout (1):默认是终端屏幕
  • 错误输出 :报错讯息与标准输出走不同的I/O通道
    标准错误输出stderr(2):默认是终端屏幕
  • 重定向:标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向
    使用>进行输出重定向,文件的原内容会被覆盖
    使用>>可以将输出追加入文件
    使用2>将报错讯息重定向入一个文件
    使用2>>将报错讯息追加入一个文件
  • cat file1 > file2
    拷贝file1到file2
  • cat file* > file
    将数个小文件合并成一个文件

Vim

  • vim和vi
    两者都是多模式编辑器;
    Vim是Vi升级版,再兼容Vi所有指令的同时增加了一些新功能支持;
  • 特点:
    语法加亮:使用不同的颜色加亮代码;
    多级撤销:Vi只能撤销一次操作,Vim可以无限次撤销;
    可视化操作:可以在终端模式运行,也可以在Xwindows模式运行;
  • Vim的四种模式
    1、命令模式(Command):默认模式,只能输入指令,不能输入编辑文字;
    2、插入模式(Insert):按 i 就会进入插入模式,此时才可以输入文字,编辑文档,按 Esc 回到命令模式。
    3、末行模式:有一個冒号在那,等待输入命令;在命令模式下输入 :键
    可视模式:可以突出显示字符、行或者大块文本,并对他们进行操作;v
插入模式,编辑文件:
命令功能
A在行尾后补
a在当前字符处的下一个位置
o在当前行的下面插入一个新行
O在当前行的上面插入一个新行
$快速移动到行尾 ^快速移动到行首
末行模式,保存、退出Vim:
命令功能
w保存文件
wq保存退出
q!强制不保存退出
wq!强制保存退出
x保存退出
命令模式
光标移动
命令功能
字符移动方向键按一下移动一个字符;
数字+方向移动向这个方向移动1个字数倍个;
单词移动w、b
句子移动)、(
段落移动}、{
跳到第几行XG,X是行数 建议大家用:行数
Ctrl-f向前、向下翻页
Ctrl-b向后、向上翻页
G移至文档结尾
gg移至文档首
删除内容
命令功能
x刪除光标所在处字符,在中文指一個中文字
X刪除光标前的字符。Backspace 鍵,只能在插入模式
dd刪除一整行(delete line), Xdd:删除X行
dw刪除一個单词(delete word)
dG从当前光标处刪至文档结尾
d1G刪至文档头
d0刪至行首
D刪至行尾
剪切、粘贴
命令功能
cc剪切整行,当前行内容剪切走
cw剪切一个单词
C剪切至行尾
c0剪切至行首
shift+~光标所在处的字符大小写互换
p粘贴,把前一个剪切的内容粘贴到当前位置
复制
命令功能
yy复制所光标在行整行。Xyy可以复制X行
yw复制一个单词
yG复制到文档结尾
y1G复制到文档首
y0复制至行首不含光标所在处的字符
Y复制至行尾,含光标所在处的字符
撤销、重做
命令功能
u撤销,vim可以无限制撤销
Ctrl-r重做上一个被撤销的改变
搜索查找
命令功能
/字符查找指定字符
n向下查找
N向上查找
替换

:x,y s/被替换目标/替换内容/g
x,y 指定范围,x,y指行行号;
%s /被替换目标/替换内容/g
%表示全文
g替换所有目标,默认一行如果有多个被替换目标则只替换1个,加上g替换所有;
例: :%s/安装/anzhuang /g 文中所有“安装”替换成“anzhuang ”

可视模式

  • 可视模式:
    可以突出显示字符、行或者大块文本,并对他们进行操作;
  • 进入可视模式:
命令功能
v进入面向字符的可视模式;
V进入面向行的可视模式;
Ctrl-v进入面向块的可视模式;
  • 可视模式下的文本的编辑:
命令功能
c剪切选中文本,和p组合可实现移动文本操作;
d删除选中文本;
y复制选中文本;
  • 配置vim:
命令功能
set(se)配置项目(项目简写)
set nu显示行号
set nonu隐藏行号
  • 查看相关配置项目:
    set all
  • 常用配置项目:
    number /nonumber (nu/nonu):显示或者隐藏行号;
    set ignorecase (se ic/se noic):搜索文件时是否不区分大小写
  • 查看Vim帮助:
命令功能
help进入帮助
q退出帮助
  • 编辑多个文件:
命令功能
next切换至下一个文件
prev切换至前一个文件
last切换至最后一个文件
frist切换至第一个文件
  • 分屏显示一个文件:
命令功能
Ctrl+w,s水平拆分窗口
Ctrl+w下键
Ctrl+w,v垂直拆分窗口
  • 设置自动缩进
    Set autoindent
  • 查找到的文本高亮显示
    set hlseach
    set nohlsearch
  • 语法着色:
    synatax on
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值