Linux常用工具

VIM是上Linux非常常用的编辑器,很多Linux发行版都默认安装了vi(vim)。
vim有3个模式:插入模式、命令模式、低行模式。
插入模式:在此模式下可以输入字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等。
低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可以看作是命令模式里的)。

VIM的配置
1.VIM的配置文件的路径
  发现/usr/share/vim/vimrc和/etc/vim/vimrc指向是同一个文件,即vimrc,为vim的配置文件,修改这个文件即可。
.2、配置颜色
  配置VIM的颜色显示,使它能够高亮度显示一些特别的单词,这对编写程序很有用。后来打开文件发现里面其实已经有一行了,只是用引号注释掉了,只需将syntax on 所在行前面的引号去掉即可。
或者另外独立添加一行:syntax on 也行,另外编辑/etc/profile 增加一行alias vi="vim"就行了。
3、设置鼠标
使用VIM编辑文本时,如果想修文件中改离光标较远的位置,这时候想用鼠标定位,可默认情况下,鼠标是不可用的。如果你想使用鼠标,只需另起一行,写上:set mouse=a 即可.。
4、设置自动缩进
默认情况下,VIM都没有缩进的,每换一行,光标均定位在顶格,如果你想自动对齐,请将 set autoindent所在行前面的引号去掉,或者另外添加一行:set autoindent也可。
这与配置颜色类似。这样的设置的结果是按回车后新行与上一行自动对齐。
5、设置tab的缩进量
设置TAB键缩进量的方法:set shiftwidth=3 你也可以选一 个你自己喜欢的缩进量,比如2,或4。

VIM的基本操作
1.进入vim
  # vim myfile
进入vim之后,是处于「命令行模式」
2. 切换至插入模式(Insert mode)编辑文件
在命令行模式下按一下字母i就可以进入插入模式,这时候可以开始输入文字了。
3. Insert 的切换
处于插入模式,只能一直输入文字,如果发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到命令行模式再删除文字。
4.退出vi及保存文件
在命令行模式下,按一下:冒号键进入底行模式:
: w filename (以指定的文件名filename保存)
: wq (存盘并退出vi)
: q! (不存盘强制退出vi)

命令行模式功能键

  1. 插入模式
    按i切换进入插入模式,按“i”进入插入模式后是从光标当前位置开始输入文件;按i切换进入插入模式,按“i”进入插入模式后是从光标当前位置开始输入文件;
    按a进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
    按o进入插入模式后,是插入新的一行,从行首开始输入文字。
  2. 从插入模式切换为命令行模式 按「ESC」键。

1.打开文件、关闭、保存文件
vi filename //打开filename文件
:w //保存文件
:w vpser.net //保存至vpser.net文件
:q //退出编辑器,
如果文件已修改请使用下面的命令
:q! //退出编辑器,且不保存
:wq //退出编辑器,且保存文件

2.删除、恢复字符或行
x:删除当前字符
nx:删除从光标开始的n个字符
dd :删除当前行
ndd :向下删除当前行在内的n行
u :撤销上一步操作
U :撤销对当前行的所有操作

3.设置行号
:set nu :显示行号
:set nonu :取消显示行号

4.复制、粘贴
yy :将当前行复制到指定区域,
nyy :将当前行向下n行复制到指定区域,
p :粘贴剪切板里的内容在光标后,
P :粘贴剪切板里的内容在光标前

5.跳至指定行
n+ :向下跳n行
n- :向上跳n行
nG :跳到行号为n的
G :跳至文件的底部

6.替换
? /old/new :用new替换行中首次出现的old
?/old/new/g :用new替换行中所有的old
:n,m s/old/new/g :用new替换从n到m行里所有的old
:%s/old/new/g :用new替换当前文件里所有的old

gcc
GCC 已经不仅仅能支持 C 语言;还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。 GCC 是 GNU Compiler Collection 也即是 GNU 编译器家族的意思。
编译过程是分为四个阶段进行的:
即预处理(也称预编译,Preprocessing)、
编译(Compilation)、
汇编 (Assembly)和连接(Linking)。

预处理
gcc -E test.c -o test.i
或 gcc -E test.c
可以输出test.i文件中存放着test.c经预处理之后的代码。
gcc的-E选项,可以让编译器在预处理后停止,并输出预处理结果。

编译为汇编代码(Compilation)
预处理之后,可直接对生成的test.i文件编译,生成汇编代码:
gcc -S test.i -o test.s
gcc的-S选项,表示在程序编译期间,在生成汇编代码后,停止,-o输出汇编代码文件。

汇编(Assembly)
对于生成的汇编代码文件test.s,将其编译为目标文件,如下:
gcc -c test.s -o test.o

连接(Linking)
将程序的目标文件与所需的所有附加的目标文件连接起来,最终生成可执行文件。附加的目标文件包括静态连接库和动态连接库。
对于生成的test.o,将其与C标准输入输出库进行连接,最终生成程序test
gcc test.o -o test
在命令行窗口中,执行./test,
输出:HelloWorld!

gcc常用指令
-c :只是编译不链接,生成目标文件“.o”
-S :只是编译不汇编,生成汇编代码
-E :只进行预编译,不做其他处理
-g :在可执行程序中包含标准调试信息
-o file :把输出文件输出到file里

-v :打印出编译器内部编译各过程的命令行信息和编译器的版本
-I dir:在头文件的搜索路径列表中添加dir目录
-L dir :在库文件的搜索路径列表中添加dir目录
-static :链接静态库
-l library :连接名为library的库文件
“-I dir”选项可以在头文件的搜索路径列表中添加dir目录。
由于Linux中头文件都默认放到了/usr/incl

make和Makefile
make命令运行时,须要一个 Makefile 文件,以告诉make命令须要怎么样的去编译和链接程序。
一个Makefile文件包含五个方面的内容:
具体规则
隐含规则
定义变量
指令
注释
Makefile的基本结构虽然简单,但变化十分丰富,要动手编写一个大工程的Makefile并不容易。所幸有一些诸如Autoconf和Automake这样的工具可以自动生成Makefile文件,因而通常只要能读懂Makefile的内容,并根据需要进行修改就可以了。
Makefile内容的核心是一系列的规则,这些规则告诉make程序要做的事以及做这件事所依赖的条件。规则的基本格式是:
target: dependency
(Tab字符)command
target(目标): 通常是要产生的文件的名称
dependency(依赖): 指用来输入从而产生目标的文件
command(命令): 是make执行的动作,一个规则可以有多条命令,每个命令占一行。命令行的第一个字符是Tab。

GDB
GDB是GNU的调试工具,它可以跟踪被调试的程序,进行设置断点、单步执行等操作。当程序暂停执行时,可以使用命令查看程序中的变量值、CPU的寄存器值、内存的值以及函数调用栈等信息。
被调试的应用程序在编译时最好使用-g参数将调试信息编入目标文件中:
gcc -g app.c -o app
用以下命令启动对程序app的调试:
gdb app
如果程序app运行时需要参数,则用以下命令:
gdb --args app arg1 arg2 # arg1和arg2被视为app的参数,而不是gdb的参数 。

Sheel
Shell是命令解析器,将用户的输入的指令转化为机器可以运行的程序。
利用vi等文本编辑器编写Shell脚本的格式是固定的,如下:
#!/bin/sh
#comments
Your commands go here
下面我们从经典的“hello world”入手,看一看最简单的Shell脚本的模样。
#!/bin/sh
#print hello world in the console window
a = “hello world”
echo $a
例:hello.sh
变量
在shell编程中,所有的变量都由字符串组成,并且不需要预先对变量进行声明,例s1:
#!/bin/sh
#set varible a
a=“hello world”
#print a
echo “A is:”
echo $a
变量
有时候变量名很容易与其他文字混淆
如:
num=2
Echo “this is the $numned”
默认变量
$#:传入脚本的命令行参数个数
$:所有命令行的参数值,在各个参数值之间留有空格
$0:命令本身(shell文件名)
$1:第一个命令行参数
KaTeX parse error: Expected 'EOF', got '#' at position 15: 2:第二个命令行参数 变量 #̲!/bin/sh echo "…#
echo “values of vars:”$

echo “value of var1:”$1
echo “value of var2:”$2
echo “value of var3:”$3
echo “value of var4:”$4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值