VI
创建vi :vim +文件名
Vim三个模式:插入模式、命令模式、底行模式
插入模式:在此模式下可以输入字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等
底行模式:可以保存文件、退出vi、设置vi、查找等功能(底行模式也可以看作是命令模式里的)。
进入vi时处于命令模式,按a、i即可进入插入模式
退出vi及保存文件:
在命令行模式下,按一下冒号键进入底行模式
: w filename (以指定的文件名filename保存)
: wq (存盘并退出vi)
: q! (不存盘强制退出vi)
:set nu显示行号
:set nonu取消显示行号
yy复制:nyy(光标往下n行)
p :粘贴剪切板里的内容在光标后
P :粘贴剪切板里的内容在光标前
dd删除:ndd(从光标往下n行)
u:撤销上一步操作
U:撤销对当前的所有操作
:s/old/new :用new替换行中首次出现的old
:s/old/new/g :用new替换行中所有的old
:n,m s/old/new/g :用new替换从n到m行里所有的old
:%s/old/new/g :用new替换当前文件里所有的old
/abc 查找abc (n跳到下一个)
Shell的使用基础
什么是shell?
Shell是命令解析器,将用户的输入的指令转化为机器可以运行的程序。
利用vi等文本编辑器编写Shell脚本的格式是固定的,如下:
#!/bin/sh
#comments
Your commands go here
首行中的符号#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序。
编辑完毕,将脚本存盘为filename.sh,文件名后缀sh表明这是一个Bash脚本文件。执行脚本的时候,要先将脚本文件的属性改为可执行的:
chmod +x filename.sh(赋予权限)
执行脚本的方法是:./filename.sh
例:
1.
#!/bin/sh
rm -rf /home/* (删除home目录下所有文件夹)
cd home
mkdir 1
touch 11
mkdir 2
touch 22
mkdir 3
touch 33 (1文件夹下有文件11,2文件夹下有文件22,3文件夹下有文件33)
2.
#!/bin/sh
str="abc"
if [ $1 == $str ];then (注意if与[之间要空格、[] 与命令行参数间也要空格 参数与符号间也要空格)
echo $str
else
echo $1
fi (结束if语句
3.
#!/bin/sh
for ((i=1;i<100;i++))
do
touch "test$i"
done (创建99个文件1~99)
4.
#!/bin/sh
num=2
for ((i=1;i<100;i++))
do
if [ $((i%num)) -eq 0 ];then (%为取余 -eq 等于equal 框架:for ( )
mkdir "test$i" -lt 小于less than do
fi -gt 大于great than if [ ];then
done 创建偶数个文件夹2~98 else
fi
done
5.
#!/bin/sh
if [ $1 -lt $2 ];then
echo "$1 is smaller than $2"
else
echo "$1 is bigger than $1" 命令后一定要加空格
fi 如果参数1比参数2小输出:参数1is smaller than参数2
否则输出:参数1 is bigger then 参数2
6.
#!/bin/sh
num=3 框架 while [ ]
i=1 do
while [ $i -lt 100 ]
do
if [ $((i%num)) -eq 0 ];then done
echo $i
fi
let i++ (输出1~100能被三整除的数)
done
gcc工具链
四个步骤:
1.预处理-E gcc -E -o hello.i hello.c
2.编译-S gcc -S -o hello.s hello.i
3.汇编-c gcc -c -o hello.o hello.s
4.链接-o gcc -o hello hello.o