当前位置:
文档之家› 《鸟哥的Linux私房菜基础篇》-程璐
《鸟哥的Linux私房菜基础篇》-程璐
注:小写的 mail 是命令, 大写的 MAIL 则是变量名称
BASH
BASH——Shell的变量功能
影响 bash 环境操作的变量
栗子: PATH 变量 你能不能在任何目录下运行某个命令,与 PATH 变量有很大的关系 使用 ls 这个命令时,系统透过 PATH 这个变量里面的内容所记录的 路径顺序来搜寻命令,如果在搜索还找不到 ls 这个命令时, 就会 在屏幕上显示【command not found】 的错误信息
BASH
BASH——功能
/bin/bash 是 Linux 默认的 shell 命令编修能力 (history): Bash能记忆使用过的命令,在命令列按【上下 键】 就可以找到前/后一个输入的命令 ~/.bash_history ——存放在这里(可以查询曾经做过的举动)
注:只有注销系统后,命令记忆才会记录到 .bash_history 当中
c. 在 vi 一般模式中如何搜索 string 这个字符串?
VIM 程序编辑器
BASH
BASH 是个shell
管理整个计算机硬件的其实是操作系统的核心 (kernel), 这个核心是需要被保护的, 所以一般使用者就只能透过 shell 来跟核心沟通 那么问题来了! Shell是啥?
BASH
BASH——硬件、核心与 Shell
(此文件自动生成在/home,可以找到用vim所做过 的动作)
~/.viminfo
还记得前面讲过的 :set nu 和 :set nonu 不?
VIM 程序编辑器
Vim环境设置与记录
常用的环境设置参数 :set hlsearch :set autoindent :set backup :set ruler :set showmode :set all 、 :set :syntax on :syntax off
(其他的不一定会存在)
2. 大量的软件编辑接口会主动呼叫VI
(可以自己查找资料拓展)
3. VIM可以主动以字体和颜色辨别语 法正确性,方便程序设计 4. 程序相对简单,编辑速度快
VIM 程序编辑器
Vi基础
——就是必须得懂点儿
一般模式
编辑模式 以插入或替代来 编辑文件内容
光标的移动 搜索与替代 删除字符、整行 复制、粘贴整行
环境变量例如 PATH、HOME、MAIL、SHELL 等,为了区别与自定义 变量的不同,环境变量通常以大写字符来表示
N+Space 向右移动n个字符
数字0
$或[End] G nG gg N+Enter
移动到这一行最前面
移动到这一行最后面 移动到文件最后一行 20G 移动到第20行 移动到文件第一行,1G 向下移动N行
30↓,向下移 动30行
+ 移动到非空格的下一列 移动到非空格的上一列
VIM 程序编辑器
Vi基础——按键介绍
操作系统其实是一组软件,由于这组 软件在控制整个硬件与管理系统的活 动监测,如果这组软件能被用户随意 的操作,若使用者应用不当,将会使 得整个系统崩溃 但是用户总是要操作系统的,所以就 有了在操作系统上发展的应用程序 (壳程序Shell)
BASH
BASH——硬件、核心与 Shell
壳程序的功能只是提供用户操作系统的一个接口,因此 壳程序需要可以呼叫其他软件 Linux中的命令,如 man, chmod, chown, vi, fdisk, mkfs 等,都 是独立的应用程序, 但是我们可以透过壳程序(就是命 令模式)来操作这些应用程序,让这些应用程序呼叫核 心来运行所需的工作 只要能够操作应用程序的接口都能够称为壳程序
BASH
BASH——系统合法的Shell与/etc/shells
Linux 使用的这一种版本称为 Bourne Again Shell (简称 bash),是 Bourne Shell (第一个流行的shell) 的增强版 /etc/shells 中可以查看有哪些可用的shell,如:
/bin/sh (已经被/bin/bash所取代) /bin/bash (就是 Linux 默认的 shell) /bin/ksh (Kornshell由 AT&T Bell lab. 发展出来的,兼容于bash) /bin/tcsh (整合C Shell ,提供更多的功能) /bin/csh (已经被/bin/tcsh所取代) /bin/zsh (基于ksh发展出来的,功能更强大的shell)
同一个文件
光标位置不一样
光标会在上面的窗口
VIM 程序编辑器
Vim多窗口功能
再输入 :sp /etc/hosts 打开第三个文件 窗口间移动
三个文件在三个窗口打开
[ctrl]+w+↑ [ctrl]+w+↓
(按下ctrl+w后 松开,再上下)
VIM 程序编辑器
Vim环境设置与记录
vim 会主动的将你曾经做过的行为记录 下来,下次开打可以继续编辑
VIM 程序编辑器
Vi基础——按键介绍
删除,复制,粘贴 x,X dd ndd
小写x向后删除一个字符,大写X向前删除一个字符 剪切光标所在的一整行 剪切光标所在的向下n行
yy
nyy p,P u
复制光标所在的一行
复制光标所在的向下n行 小写p粘贴在下一行,大写P粘贴在上一行 撤销上一个动作
[Ctrl+r] 重做上一个动作
VIM 程序编辑器
Vi基础——按键介绍
一般模式进入编辑模式
i,I INSERT a,A
进入输入模式,小写i从光标所在处输入,大写I在所 在行的第一个非空格处输入
进入输入模式,小写a从光标所在的下一个字符处输 入,大写A在所在行的最后一个字符处输入 进入输入模式,小写o在光标所在的下一行输入新一 行,大写O在光标所在的上一行输入新一行 进入替代模式,小写r只替换一次光标所在的字符, 大写R会一直替换光标所在的文字,直到按下[Esc]
o,O
REPLACE r,R
VIM 程序编辑器
Vi基础——按键介绍
命令模式的储存,退出
:w
:q :wq :w [filename]
保存,:w!强制保存
退出,:q!强制退出 保存后退出,:wq!强制保存退出 另存为
:! command
:set nu :set nonu
暂时退出并执行命令,例: “:! ls /home”
VIM 程序编辑器
Vim区块选择
光标移动到这里 按[Ctrl + v] 出现提示
移动到此处,这 一个区域被选中
按y复制(反白会消失)
VIM 程序编辑器
Vim区块选择
整块粘贴到这里
注:先到编辑模式向右两格,再回一般模式 按p粘贴
VIM 程序编辑器
Vim多窗口功能
>vim /etc/man.config 打开一个文件,按1G 到第一行 输入”:sp” 再次打开同一个文件 按G到最后一行
High Light Search(高亮度搜寻) 是否将搜寻的字符串反白,默认是hlsearch 是否自动缩排 是否自动储存备份文件?默认是nobackup 自动储存时,当你修改任何一个档案时,源文件会被另 存成一个名为[filename]~ 的文件来记录原始文件内容 是否显示界面右下角的文件信息 是否显示左下角的INSERT等字样 显示目前所有环境参数值;:set只显示系统默认之外的 是否依据程序相关语法显示不同颜色 VIM 程序编辑器
BASH
BASH——功能
命令与文件补全功能: ([tab] 按键) 居家必备~好处多多: ① 少打很多字 ② 确定输入的数据是正确的
[Tab] 接在一串命令的第一个字的后面,则为命令补全 [Tab] 接在一串命令的第二个字以后时,则为【文件补齐】 查看以 c 为开头的命令:c[tab][tab]
工作控制、前景背景控制: (job control, foreground, background) 程序化脚本: (shell scripts)
BASH
BASH——功能
Bash shell 的内建命令: type
如何知道该命令来自于外部命令(指的是其他非 bash 所提供的 命令) 或是内建在 bash 当中的呢?
141L, 4617C
不是新文件,有其他信息
VIM 程序编辑器
Vi基础——编辑模式
编辑完毕 [Esc] 回到一般模式 :wq 保存离开
:x
文件有修改时保 存离开
输入模式(INSERT)
VIM 程序编辑器
Vi基础——按键介绍
移动光标的方法
H ←
J ↓
K ↑ L →
移动 一个 字符
[CTRL + F]向下翻页 [CTRL + B]向上翻页 [CTRL + D]向下半页 [CTRL + U]向上半页
引用书中的例子:
USER 使用者界面 Shell,KDE,Application 核心(Kernel)
你要播放音乐 接收来自使用者的命令,与核心沟通
控制硬件工作(CPU调度,内存管理, 磁盘输入输出等)
整个系统中的实际工作者(硬盘, 显卡,网卡,CPU,内存条等)
BASH
硬件(Hardware)
BASH——硬件、核心与 Shell
什么是【变量】?
这是一个好问题
简单的说,就是让某一个特定字符串代表不固定的内容
再简单点说,就是用一个简单的 "字眼" 来取代另一个 比较复杂或者是容易变动的数据
BASH
BASH——Shell的变量功能
举个栗子 每个账号的邮箱默认是 以 MAIL 这个变量来进 行存取的 当 dmtsai 这个使用者 登陆时,他便会取得 MAIL 这个变量,而这 个变量的内容其实就是 /var/spool/mail/dmts ai 如果 vbird 登陆,他取 得的 MAIL 这个变量的 内容其实就是 /var/spool/mail/vbird