一、文本编辑命令vi
1. 打开文件:上下左右键可移动光标
vi 文件名
2.打开文件后,按下字母 i 进入编辑模式,按ESC退出编辑模式,输入 :wq 保存后退出vi
浏览模式命令
[Ctrl] + f | 向下翻页 |
[Ctrl] + b | 向上翻页 |
0 或 Home 键 | 移动光标到行首 |
$ 或 End 键 | 移动光标到行尾 |
G | 移动到文件最后一行 |
nG | n为数组,移动到文件的第n行 |
gg | 移动到文件第1行,相当于1G |
n[Enter] | n为数字,下移n行 |
/word | 向下查找word关键字 |
?word | 向上查找word关键字 |
nx | n为数字,向后删除n个字符 |
ndd | 向下删除光标所在n行 |
nyy | 复制光标所在的向下n行 |
p,P | p为将复制的数据粘贴到光标的下一行,P为粘贴到上一行 |
i | 进入编辑模式 |
:w | 保存数据 |
:w! | 强制保存 |
:q | 离开vi |
:q! | 离开不保存 |
:wq | 保存后离开 |
:! command | 暂时离开vi执行command |
二、shell脚本
1.命令别名设置
ls -al设置别名为lm,因此可使用lm代替 ls -al
alias lm='ls -al'
取消别名: unalias lm
2. 变量设置显示
varible=111 <=设置
echo $varible <=显示
单引号内的特殊字符仅为一般文本,双引号不受限制
LANG=en_US
var1="lang is $LANG" <= var1的值为lang is en_US
var2='lang is $LANG' <= var2的值为lang is $LANG
使用export可导出变量,变量将变成环境变量,但重启电脑后,变量会消失
3、反单引号 ` ,其内的命令将会被先执行,其执行结果将被作为另一命令的输入
ls -l `locate crontab` <= locate的查找结果将作为ls的输入
4. 变量的键盘读取、声明: read, declare
read [-pt] variable
参数:
-p : 后面接提示符
-t : 后面接等待的秒数
如: read -p 'Please input your name:' -t 30 name
declare [-aixr] variable
参数:
-a : 变量类型为数组
-i : 变量类型为整数
-x : 变量导出为环境变量
-r : 变量为readonly
5. bash的环境配置文件
(1)login shell : 取得bash时需要完整的登录流程。
(2) non-login shell : 取得bash接口的方法不需要重复登录的举动
(3)/etc/profile ;系统整体的配置文件
(4)~/.bash_profile或~/.bash_login或~/.profile :用户个人配置文件
(5)source : 读入环境配置文件的命令
source 配置文件名
6. 复合命令:;,&&, ||
cmd1; cmd2 : 顺序执行cmd1和cmd2
cmd1 && cmd2 : 先执行cmd1,如果cmd1执行正确,则执行cmd2,否则不执行cmd2
cmd1 || cmd2 : 先执行cmd2, 如果cmd1执行正确,则不执行cmd2,否则执行cmd2
7. 管道命令
竖线 | : 前一个命令的输出作为后一个命令的输如
如:
ls -al /etc | less <= 将ls的结果作为less的输入,因此可用一些less命令的特性
(1)cut : 字符串截取命令
cut -d '分隔符' -f fields
参数:
-f : 取出第几段,多个用逗号分开
如:
echo $PATH | cut -d ':' -f 3,5
(2) grep : 字符串查找命令
如:last | grep 'root'
(3)排序命令:sort, wc, uniq
wc : 显示文件的行数,字数,字符数
8. 用户身份切换
(1) su : 切换用户
su [-lm] [-c 命令] [username]
参数:
-l : 代表李longin-shell 方式登录系统
-m : 表示使用目前的环境设置而不读取切换用户的配置
-c : 仅执行一次命令
(2)sudo
相对于su需要切换目标用户的密码,sudo的执行则仅需要自己的密码即可。并非所有账户都能执行sudo,而仅有/etc/sudoers内的用户才能执行sudo.
sudo [-b] [-u 新用户账号]
如:
sudo -u sshd touch /tmp/mysshd <= 以sshd的身份在/tmp下新建mysshd文件