1、文本按语法对齐:gg=G
2、查看man配置:man xx
例如:man pthread_mutex
man 7 ip //第7卷中ip里面可以找到struct sockaddr_in
man 2 accept
3、vi mian.c +30 //直接转到第30行
4、nc 127.0.0.1 8888 //net connect 目标主机ip 和端口号
网络测试时,当做客户机,使用该命令进行测试,可以省略了客户端程序的编写。
5、查看if对应的两边大括号,选中一边{---->按%
6、shift+k //查看系统函数的定义或者使用大写K也可以。或者使用esc :!man 2 socket
7、同时用vi打开两个文件:先用vi打开某一个文件,然后按esc --> :vsp 新文件 保存多个文件用:wqall
:vsp 直接输入这个的话,是重新打开了当前文件
8、查看端口号 netstat -apn | grep 端口号
这个命令,经常用来查看我们绑定的端口号的状态是listen或是established,即,listen时,表示服务器程序启动;
established态,表示有客户端连接。
当不知道端口号是多少的时候,可以通过netstat -an 来查看所有的端口号的状态。
9、使用fgets()函数,backspace会被当做字符输入,此时使用ctrl+backspace即可删除掉错误字符。
10、date:查看当前日期和时间
10、kill -l 查看所有的信号 man 7 signal 查看详细说明
11、gdp调试:
段错误调试
1)通过gcc -g test.c -o test 编译会生成core文件。
2)gdb 进程名
3)run //停止的位置为段错误(gdb通过core文件来查验到)
12、使用shell打开文件的时候,想查看函数配置方法: 先esc 再:!man lseek (前面有:!)
13、netstat -an 查看所有与本地计算机建立连接的IP 、proto(连接方式)、local address(本地连接地址)、foreign address(和本地建立连接的地址)、state(当前端口状态)
netstat -a IP地址 //查看该ip的相关信息
netstat -an|grep 9600 //只显示连接该端口号的连接
14、id 查看用户id,同时也能查看当前登录的用户名
15、$PATH 查看环境变量配置,为了在任意目录下可执行程序都能执行,我们会设置环境变量;实际中,我们可以通过环境变量来判断配置了哪些程序。
16、cat 文件 当只需要查看文件内容的时候,用cat命令最好,这样可以避免vim命令打开文件的繁琐操作。
17、df -h (东风)以GB,MB的形式查看磁盘目录大小
18、alias ll ='ls -l' 给命令ls -l 起了个别名ll,简单的名,方便以后使用
19、find 路径 -name ‘文件名’ //用来查找文件的,路径放在find之后,
20、grep -r “字符串内容” 路径 //用来找文件中的内容的,路径放在末尾
21、ulimit -a :查看资源的上限,比方说栈的最大为8192kb,open file的最大个数默认为1024
22、ps -ef :查看进程的pid...
ps axf :显示包含子进程的信息
23、vim中查找相关内容
按”/“键,在状态栏(也就是屏幕左下脚)就出现了 “/” 然后输入你要查找的关键字敲回车就可以了。
找到相关文字以后:
(1)按下小写n,向下查找
(2)按下大写N,向上查找
将光标定位的某一行---->查找错误时,定位到错误的地方。
:行号
24、n dd --->删除或剪切n行
25、n yy ----->复制n行
26、p ---当前行的下面复制;P 当前行的上面复制。
27、u 撤销上一步操作
28、ctrl + r---->u的反操作,u了1次,就可以通过ctrl+r 来恢复1次,u了n次,就可以ctrl+r n次恢复。。
28、touch 命令创建新文件
或者直接 vim 文件名 也能创建文件。
29、ls -la ---->显示包含隐藏的所有文件
ls -lh ---->以MB等形式显示 文件
30、du -h filename 显示文件的大小,也可以用ls -lh 命令实现(显示的大小不同?)
31、>fillename 清空文件夹 或者使用 true>filename
32、echo "hello world" > filename 向文件中写入helloworld
ls -lh >filename 将当前目录下的内容重定向到filename中
33、which ls ->使用which命令查找可执行程序的位置;//查找ls的位置
which which -->查找which命令的位置
当系统环境相同时,直接拷贝可执行程序到别的电脑中,就可以直接使用,因为ls.mv 等命令实际上也是可执行程序。
34、vim中同时打开多个文件,分屏显示文件
1)vim file1.c file2.c--->同时打开了2个文件,但是当前只能看到一个文件,需要使用:n切到下一个文件,:N切换到上一个文件;
:qall 同时退出所有文件
2)上述方法不能同时看多个文件,我们想左右屏或上下屏同时看到两个文件:
打开某一个文件 vim file1.c
:split 上下分屏,不带文件名的话,会将当前文件复制到另一个竖屏中;
:vsplit 左右分屏,不带文件名的话,会将当前文件复制到另一个横屏中;
:split file2.c 与file1.c 竖屏显示
:vsp file2.c 与file.c横屏显示
ctrl+ww 多个屏幕间的切换
Ctrl+w+方向键——切换到前/下/上/后一个窗口(不太好用)
多屏显示的优点:可以使用 pp y在多屏之间进行复制粘贴。
35、输入某个命令的前几位,然后按两次tab,会显示所有的相关命令(仅限于命令)
36、vim file.sh 后,是无可执行权限的,需要增加可执行权限:
chmod a+x file.sh 都具有可执行
去掉可执行权限
chmod a-x file.sh
也可以省去a不写;
37、两个命令同时使用:
cd ..;ls -l ----->打印了上级目录中的内容,且回到了上级目录
(cd ..;ls -l)------->打印了上级目录中的内容,但是还在当前目录。
38、将终端清屏 clear 命令或 ctrl + l
ctrl +u 将光标前的命令清除;------>故要清除整个命令,需要先ctrl+e
ctrl+a 将光标定位到命令开始位置
ctrl+e将光标定位到命令结尾位置
39、查看登录的用户名 w 或者 whoami //当su root之后,w命令显示的还是最初登录的用户名;
hostname:查看主机名----->root@ubuntu: ubuntu就是主机名。//区别于用户登录名
使用ping 命令,当不知道ip的时候,ping 主机名也是可以的,此时会显示主机对应的ip.
40、使用history 查看曾输入终端的命令
使用!首列数字 ------>执行原命令
例如:
history
!2007
41、vi中替换文本
:%s/原串/目标串/g ------>/g 表示一行有多次出现的替换。
42、top 命令查看进程cpu,mem占有率
也可以先 ps -ef|grep 进程名; top -p 进程号 ----------->查看某一进程的cpu,mem占有率。
(详细参考linux top -p PID说明(tomcat应用内存情况)_秋夜无霜的博客-CSDN博客)
43、man手册的使用
man man :查看man手册
第一章是基本命令 man 1 ls
第二章是标准系统调用
第三章是标准库函数 man 3 fopen
第7章是机制 :man 7 socket man 7 tcp
44、gcc - E test.c //预处理---->只添加了-E参数,可以将.c中的宏全部替换,此功能可以查看某个函数的模样,其实是否是个宏。
45、diff 文件1 文件2 //比较两个文件是否相同
46、errno:全局变量,存储当前出错信息,要及时打印,否则会被覆盖。
信息位于:
/usr/include/asm-generic/errno errno.h errno-base.h
fprintf(stderr,"%d",errno);
47、当.c文件报错在第n行时,在vim中:n回车,光标会定位在第n行。
48、vim中光标跳到文件首 gg
跳到文件尾 G
跳到当前行首 home键
跳到当前行尾 end键
49、vim中按照ctrl键,在拖动鼠标选中代码,此时不会选中行号,Qt中是alt键
50、:set nu --显示行号
51、ll -t 是按时间降序排列;
ll -t | tac 是按时间升序排列
52、top用来查看cpu及内存的使用情况。
top -p 进程号 --------->用来查看某个进程的执行情况。
53、查看文件夹下有多少个文件
ls | wc -l //实际文件个数。
ls -l |wc -l 比上述命令大1,是包含了本身的目录吗?
54、vi中使用选择一个大括号后,使用%可以找到对应的另一半大括号。
55、vi中使用 [ d 可以查看宏定义