编程常用命令


0. man 的使用
linux man手册包括如下几个章节:
1、Standard commands (标准命令)
2、System calls (系统调用)
3、Library functions (库函数)
4、Special devices (设备说明)
5、File formats (文件格式)
6、Games and toys (游戏和娱乐)
7、Miscellaneous (杂项)
8、Administrative Commands (管理员命令)
9 其他(Linux特定的), 用来存放内核例行程序的文档。

使用时,可指定章节



1.常用快捷键

1.1:程序控制
1.1.1:显示桌面: X4+D/*(winkey键)键暂称为X4键,即win 键*/
1.1.2:最小化所有窗口:X4+M
1.1.3:打开我的电脑:X4+E
1.1.4:搜索文件或者文件夹:X4+f
1.1.5:还原最小化窗口:X4+M+shift
1.1.6:打开“运行”对话框:X4+r
1.1.7:打开“工具管理器(内有放大镜 +屏幕键盘)”:X4+U
1.1.8:关闭当前程序:alt + F4
1.1.9:切换程序:alt + table
1.1.10:取消当前任务:esc

1.2: 程序内控制
1.2.1:F2:重命名所选项目
1.2.2:F3:搜索文件或者文件夹
1.2.3:F4:显示我的电脑或者资源管理器中的地址栏列表
1.2.4:F5:刷新当前窗口
1.2.5:F10:激活当前程序的菜单条
1.2.5:F4+ctrl:在允许同时打开多个文档的程序中关闭当前文档

1.3:word 绝活
1.3.1:连续3个“=”,然后回车,输出一条双直线
1.3.2:连续3个“~”,然后回车,输出一条波浪线
1.3.3:连续3个“*”或者“#”,然后回车,输出点线或者一条三直线,其中中间较粗
1.3.4:Ctrl+[ 缩小文字 Ctrl+] 放大文字
1.3.5:Ctrl+B 粗体
1.3.5:Ctrl+W :关闭程序
1.3.6:Alt+回车 查看文件属性 Alt+双击文件 查看文件属性
1.3.7:Shift+空格 半\全角切换
1.3.8 快速选择 :SHIFT+任何箭头键在窗口或桌面上选择多项,或者选中文档中的文本




1.4:快速关机: win + U + U
快速重启: win + U + R
快速待机: win + U + S

2.tcp/ip
2.1:私有IP
10.0.0.0-10.255.255.255
126.15.0.0-126.31.255.255
192.168.0.0-192.168.255.255
2.2:ip范围
A类网络的IP地址范围为:1.0.0.1-127.255.255.254;
B类网络的IP地址范围为:128.1.0.1-191.255.255.254;
C类网络的IP地址范围为:192.0.1.1-223.255.255.254。


3.编译生成动态链接库
3.1 编译:gcc -fPIC -c xxx.c
3.2 链接:gcc -shared -o libxxx.so xxx.o
3.3 链接时指定入口函数:ld a.o b.o -e main -o ab
3.4 链接时指定控制脚本:ld -T link.script

4.linux shell 命令
4.1 管道: ls |wc -l /*会显示执行ls命令后显示的行数,即文件个数*/

4.2 输入重定向:wc<"标识,输入最后一行后回车*/
>abcd ef

/* ,会统计出行数,字数,字节数等*/
>gh,shu
>flag
2 3 11
4.3 输出重定向/*用>符号也可以,但是会将存在的内容覆盖掉*/
4.2.1:输出重定向:make >>tmp /*会将make执行时显示的内容输出到tmp文件*/
4.2.2:错误输出重定向:make 2>>tmp2 /*会将错误输出都输出到tmp2中*/
4.2.3:make &>>tmp2 /*会将标准输出及错误输出都输出到tmp2中*/

4.4 使shell脚本可以执行:
4.4.1 :chmod 777 file
4.4.2 :sh ./file
4.5 shell脚本求和
vi sum /*编译脚本*/

sum=`expr $1 + $2`
echo $1 + $ 2 = $sum

sh ./sum 5 6 /*执行程序*/
4.5 samba
4.5.1 : a.创建samba帐户
b.创建共享目录
c.如果linux不能访问windows,就关闭防火墙或者开启445端口
如果windows不能访问linux,就关闭防火墙(service iptables stop)
或者开启445端口及139端口(vi /etc/sysconfig/iptables,然后开启两个端口)
4.5.2 :配置
a. 主要的配置文件:/etc/samba/smb.conf
b. 如果在windows下没有权限,则在linux下修改共享文件夹的权限s

4.6.find grep
4.6.1: find : find [path] [expression]
example : find ./ -name 'makefile'
4.6.2: grep : grep [option] PATTERN [file] /*PATTERN :正则表达式*/
example :grep -n "led" makefile
4.7. 普通命令
4.7.1:fdisk:磁盘相关操作
4.7.2: modprobe:加载内核模块或程序
lsmod:查看内核模块
4.7.3:ls -lh:显示的文件列表中的 文件大小为 按 K 或者 M 显示

4.8. route: route add -net 192.168.62.0 netmask 255.255.255.0 gw 192.168.1.1
route del -net 192.168.122.0 netmask 255.255.255.0

4.9. a.cut: 显示每行从开头算起 num1 到 num2 的文字
b.paste: paste指令会把每个文件以列对列的方式,一列列地加以合并
join:找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
c.patch: 修补文件
d.split:切割文件(split可将文件切成较小的文件,预设每1000行会切成一个小文件。)
e.tee: tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
f.vim -d file1 file2
用vim突出显示单个字符的更改来表示区别.
h.
i.
4.10.反汇编 :objdump

注:-r选项按照文件目录递归创建修补文件.
-u还是统一模式
-N是指当diff遇到一个只存在于两个树中的一个树中的文件时,默认情况下跳过文件并且打印一个警告到stderr.这个行为可以通过-N选项来更改,这也导致了diff认为丢失的文件实际上是存在的,但它是空的.采用这种方式,一个修补文件可以包括已经创建的文件.然后应用修补程序创建新的文件.
4.11.2 打补丁到old目录:
patch --dir old < mypatch.diff
4.11.3 恢复old目录的内容
patch --dir old -R < mypatch.diff

4.12 shell程序退出码
echo $?

4.13 设置环境变量
export 环境变量=xxx /*请务必注意:"=" 前后不能有空格*/

4.14 readelf
readelf -h App.bin /*查看文件头*/
readelf -l App.bin /*查看程序头*/

4.15 ldconfig
当系统中安装或更新一个共享库时,就需要运行这个工具,它会遍历所有的默认共享目录,然后更新所有的软链接。

4.16 LD_DEBUG 环境变量 /*可以打开动态链接器的调试功能*/
LD_DEBUG=files ./HelloWorld.out /*可以打印出整个装载过程*/

5.makefile
5.1 make --debug=b /*(备选选项 a v i j m)*/
5.2 = /*前面的变量可以使用后面的变量*/
:= /*前面的变量不可以使用后面的变量,避免无穷递归*/
+= /*追加变量,当第一次赋值时,自动退化成 = 或者:=*/
5.3 '',""组合:
5.3.1. s1 = ‘abcd’
s2 = ‘efg’
echo "$(s1)$(s2)" /* 'abcd''efg' */

s1 = "abcd"
s2 = "efg"
echo "$(s1)$(s2)" /* abcdefg */
5.3.2 ‘ ’和“ ”差别:单引号和双引号都能关闭shell对特别字符的处理 。不同的是,双引号没有单引号严峻,单引号关闭所有有特别作用的字符,而双引号只请求 shell漠视 大多数,具体的说,就是①美元符号②反引号③反斜杠,这3种特别字符不被漠视 。 不漠视 美元符号意味着shell在双引号内部也进行变量名调换。
5.4.模式相关
5.4.1 静态模式: $(objects):%.o:%.c
gcc -c $< -o $@
5.4.2 变量替换: foo := a.o b.o c.o
bar := $(foo:.o=.c)
或:bar := $(foo:%.o=%.c)

6.linux_file
6.1. 文件颜色:
6.1.1 红色:压缩文件
6.1.2 绿色:可执行文件
6.1.3 蓝色:目录
6.1.4 白色:普通文件
6.1.5 紫色:链接文件
6.2.

7.名词解释:
7.1 spinLock:自旋锁

8.c基础
8.1 逻辑移位和算术移位:在C语言标准中,只规定了无符号数的移位操作是采用逻辑移位(即左移、右移都是使用的逻辑左移和逻辑右移)。
而对于有符号数,其左移操作还是逻辑左移,但右移操作是采用逻辑右移还是算术右移就取决于机器了!(算术右移和逻辑右移的区别是:算术右移不右移符号

位,即最高位,右移后前补0还是1取决于符号位的值;逻辑右移执行时将移动符号位,右移后前补0)
因此,一个程序如果使用了有符号数的右移位操作,它就是不可移植的了。

8.2



9.svn
9.1 locale 当用svn服务器不能下载中文文件名的文件时,用 locale命令查看语言设置:export LC_ALL=en_US.UTF-8

10.vi
10.1 : 寄存器下的操作:
在复制前可以先指定一个寄存器,方法是在双引号后跟一个字母,例如"a指定了寄存器a,"B指定了寄存器B。所以,"ayy把当前行放进了寄存器a,以后就可以用"ap来粘贴寄存器a里的内容了。如果不确定寄存器里放了什么内容,可以使用:reg来查看。
Vim提供了一个很有用的特殊寄存器"+,它的内容就是系统剪贴板的内容。可以在Vim里用"+p粘贴出来。
10.2:删除:
dd: 删除一行
dw: 删除一个单词,需将光标移到单词的第一个字母。
d$: 删除当前光标到该行的行尾的字母
daw: 删除一个单词,光标在单词任意位置
dnw: 删除N个单词
dnj: 向下删除n行
dnk: 向上删除n行
J: 删除换行符,将光标移到改行,按shift+j删除行尾的换行符,下一行接上来了。

x:剪切当前字符到剪切板,前面可以加数字
s:类似x,但其后进入插入模式

10.3:复制:
yy: 复制一行
yw: 复制一个单词,需将光标移到单词的第一个字母。
yaw: 复制一个单词,光标在单词任意位置
ynw: 复制N个单词
ynj: 向下复制n行
ynk: 向上复制n行
10.4:修改:
cl: 更改当前字符
cw: 修改当前单词到结尾
cc: 修改当前行

10.5: 移动:
fx:移动光标到当前行的下一个x处
Fx:往回找
w:光标往前移动一个单词
b:向后移动一个单词
0:到行首(数字0)
$:行末

H:到屏幕上面
M:到屏幕中间
L:到屏幕下面

G:到文件尾
gg:到文件首
ma:在当前位置标记一个名字为a的书签
`q:到书签a处
`.:到上次编辑文件的地方

10.6 高效查找:
*:读取光标处的字符串,并且移到它再次出现的地方
#:和*类似,但是反向
/text: 从光标处搜text
?test:从光标处搜text,后续可按n继续

10.7 高效输入:
自动完成功能:ctrl + N(P),可多次操作,(在插入模式下)
快速删除并进入插入模式:c{motion}
c$ :删除到行末,并进入插入模式
ct! :删除到!,但不删除!
d{motion},和c差不多,但不进入插入模式
。:重复上一次的命令(令人惊奇的命令)

10.7: 命令

set nu: 显示行号


11.SourceInsight
11.1 快捷键 F3,F4 :分别回到查找到的单词的上一处、下一处
11.2 改变函数内部的某变量名:0) 选中需替换的变量;1)按右键;2)点 Smart Rename;3)弹出框后一定要选择 smart reference match;4)注意被替换的变量是带函数名时才好使
11.3 列操作功能: 按住 【alt】后选择即可直接按列选中;
11.4 处理如下操作时:
a[0] = 1;
a[1] = 2;
a[2] = 3;
变为:(方法:在a[0] = 1;前面填一句a[0] = 0;然后列选下表,再用Renumber功能(按【ctrl】+ 【R】)弹出,设置start 数字就OK了)
a[0] = 0
a[1] = 1;
a[2] = 2;
a[3] = 3;

14.5 如何屏蔽不关注的分支,对形如:
#ifdef dev1
//hhh
#else
//xxx
#endif

/*选中该条件,如 dev1,然后鼠标右键,点击,然后其他分支都会灰掉,以避免其他分支影响视听*/

14.6 配置快捷键:在菜单 option/key assignments/ 对话框里
14.7 快捷菜单一揽:https://www.360docs.net/doc/b114544849.html,/view/73502d0216fc700abb68fc6e.html
【ctrl】+ 【K】 ==> 复制当前行
小键盘【+】/【-】 ==> 移到下一个/上一个函数
14.8 todo注释实现:“///TODO:”开始时,便会高亮黄色显示












相关文档
最新文档