linux常用工具

linux常用工具
1.vim编辑器
vim的三种模式
1.命令:vim打开文件就是命令模式
1.1.可以移动光标
1.2.x:删除字符 nx:删除n个字符
dd:删除一行 ndd:删除n行
p:粘贴 np:粘贴n行
yy:复制一行 nyy:复制n行
gg:回到第一行 shift+g:跳到代码最后一行
按下*查找光标所在字符串,再按下“n”为查找下一个
u:撤销操作 shift+zz:保存退出 (一定在命令模式下)
2.插入:按下a或i 进入插入模式 按esc回到命令模式
3.底行 :按下“shift+:”进入底层模式,wq:保存退出 w:保存 q:退出
wq! w! q!表示强制
3.1.":"+数字 直接跳到对应数字那行
3.2.sp 文件名 :可以打开另一个文件 ctrl+ww:上下移动光标
3.3.另一种查找方法:/+需要查找的字符串来进行查找该字符串
3.4.“:”+%s/old字符串/new新字符串/g 替换操作
3.5.set nonu 关闭行号 set nu 打开行号
2.gcc编译器
1.gcc+文件名 把文件编译为二进制文件
2. ./文件名
编译指令:gcc hello.c -o hello ( -lm是链接数据 )
编译分为哪几步?
预处理:.gcc -E hello.c -o hello.i
编译:gcc -S hello.i -o hello.s 把c代码翻译成汇编代码
汇编 :gcc -c hello.s -o hello.o 把汇编代码翻译成二进制文件
链接:gcc 所有.o文件 -o hello 链接程序需要用到的其他文件
gcc -I 指定头文件路径
gcc test.c -o test -I … 去上层找头文件
gcc -static 静态链接
3.makefile
target:dependcy
[root@localhost home]# vim hello.c
[root@localhost home]# cat hello.c
#include <stdio.h>

int main()
{

    print ("hello world\n");

    return 0;

}

[root@localhost home]# vim print.c
[root@localhost home]# cat print.c
#include <stdio.h>
void print(char*s)
{
printf("%s\n",s);
}
[root@localhost home]# vim Makefile
[root@localhost home]# cat Makefile
Target=hello
Object=hello.o print.o

( T a r g e t ) : (Target): (Target):(Object)
gcc $(object) -o $(Target)
make clean :清理以 .o文件结尾 clean但也需要在makefile中定义下

.PHONY :
clean:
rm*.o hello 删除以.o为名的文件以及hello
4.gdb调试工具
1.mkdir gdb
cd gdb/
vim test.c
#include <stdio.h>
int add(int x, int y)
{
int sum;
printf(“helloworld!\n”);
sum = x + y;
return sum;
}
int main()
{
int a = 1, b=2;
int c;

printf(“helloworld!\n”);
c = add(a,b);
printf(“c = %d\n”,c);
return 0;
}
gcc test.c -o test -g
gdb test
list +数字 :若list 5,则显示第五行的前五行和后五行
list 不加数字:则会显示10行
gdb run 运行程序
gdb b+数字(1,2,3…) 设置断点(1,2,3…)
gdb break main
gdb info b
gdb delete b +数字 删除 第1,2,3…个断点
gdb n
gdb step
gdb p c
5.shell 脚本
处理批量命令 如创建10个目录,若要分别,则费时,则把命令放在shell里会方便
vim hello.h
处理脚本时必加 “#!/bin/bash”
1.echo “hello world”
echo“hello>hello.txt”(>重定向) echo显示字符串中的内容
cat …/makefile/hello.c》hello.txt cat显示文件内容
chmod 777 hello.sh 改权限
./hello.sh 运行脚本

#脚本使用变量
TMP=“hello 1234“
echo ${TMP}或【echo $TMP】
# 1 表 示 第 一 个 命 令 行 参 数 e c h o “ 第 一 个 参 数 是 : 1表示第一个命令行参数 echo “第一个参数是: 1echo
echo “第二个参软是:$”
echo $* 所有参数
echo $# 几个参数
vim circule.sh
1.
for (( i=o;i<5;i++))
do
echo “hello world”
done
2.
for i in aaa bbb ccc ddd
do
echo $i
done
.\circule.sh aa bb cc dd
3.
for i in $1 $2 $3 $4
do
mkdir $i
cd i e c h o &gt; i echo &gt; iecho>i.c
"
#include <stdio.h>
int main()
{
printf(“hello world!\n”);
return 0;
}”
cd …
done
./ cricule.sh aa bb cc dd
vim if.sh
4.判断数字大小关系
#!/bin/bash
if [$ -eq 0 ];then
echo “第一个参数等于0”
fi
if [ $2 -gt 0 ];then
echo “第二个参数大于0”
fi
if [ $2 -lt 0 ];then
echo “第二个参数小于0”
else
echo“第二个参数等于0”
fi
chmod 777 if.sh
./if.sh 0 1
5.判断路径
if [ -d $3 ];then
echo “第三个参数目录”
elif [ -f $3];then
echo“第三个参数是文件”
fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值