Linux小知识点
1. &
表示在后台运行
2. 如何在vim页面下打开两个文档
使用vs命令。采用crtl+ww进行切换
3. 如何直接进行多行缩进呢?
直接在命令行模式下:敲出[5,12>]按下回车表示将5到12行进行缩进,如果是[5,12<]按下回车表示缩
在命令行模式下,将光标放到要缩进的行首,按下[行数+>>]表示缩进几行,[行数+<<]表示缩回几行
4. 如何进行多行注释
第一步:首先进入到正常模式
第二步:使用
crtl+v
进入到块选择模式第三步:使用
h,j,k,l
分别表示左下上右,这里只用j和k,进行上下选择块第四步:选择好了之后,就使用
shift+i
进入得到插入模式第五步:直接输入
//
第六步:按下
Esc
进入到插入模式就好了
5. 如何判断一个文件存在还是不存在
-
//access系统调用函数 #include <unistd.h> int access(const char* pathname, int mode); 参数: pathname:路径名,也就是文件名 mode:检查文件的各种选项,四个 1. F_OK 检查文件是否存在 2. R_OK 检查文件存在并且是否具有读权限 3. W_OK 检查文件存在并且是否具有写权限 4. X_OK 检查文件存在并且是否具有执行权限 返回值: 正确的话返回0,失败返回-1
6. 如何在linux下使用C++的标准
对于一般的linux下的g++编译器都是支持c++98的,如果想让其支持c++11编译的话,那就只需要显式打开c++11就好了
#include <iostream> #include <typdinfo> using namespace std; int TestAuto() { return 10; } int main() { int a = 10; auto b = a; auto c = 'a'; auto d = TestAuto(); cout << typeid(b).name() << endl; cout << typeid(c).name() << endl; cout << typeid(d).name() << endl; //auto e; 无法通过编译,使用auto定义变量时必须对其进行初始化 return 0; }
对于上面的代码,具有c++11的新语法auto,如何对其进行编译呢?
g++ -o auto auto.cpp //采用这种编译的话,就显示 //‘b’ does not name a type //表示该编译器不支持c++11,所以就要显式的使用c++11编译 g++ -std=c++11 -o auto auto.cpp //这种进行编译的话就不会出错,显式的使用c++11
7. 64位的linux下gcc如何编译出32位的程序
加
-m32
参数即可
8. 如何在vim下替换内容
8.1 多行替换
A,Bs/test/return
参数A表示开始行,B表示结束行。如果B为$表示为最后一行。
此命令表示从A行到B行结束的每行的第一个test替换为return
A,Bs/test/return/g
表示从A行到B行的每一个test替换为return
8.2 全文替换
%s/test/return
表示将全文的test都替换为return
9. 如何修改linux下命令行输入的前面的提示符
第一步:非root用户下,进入~/.bashrc
第二步:添加
PS1='[\u@\d||YK||\#]\$ '
。u代表用户,d代表时间,#表示本次进入linux下输入的函数第三步:出去使用
export PS1='[\u@\d||YK||\#]\$ '
即可
10. strace命令
strace能够显示所有由用户空间程序发出的系统调用:直接在命令行上使用
该命令可以以一行的方式显示调用的系统调用的名字,参数以及返回值
常见的一些参数:
-f -F 选项告诉strace同时跟踪fork和vfork创建出来的进程
-o xxx.txt 输出到某个文件
-e execve 只记录execve这类的系统调用
-p pid 绑定到一个正在运行的进程号为pid的进程
输出的每一行都是系统调用
=的左边是系统调用函数的名字和参数,等号右边是返回值
【原理】:
使用ptrace系统调用来跟踪调试运行中的进程
11. awk文本处理工具
12. 如何对于vim中的代码进行语法高亮并且取消高亮
12.1 高亮
当处于一个代码的时候,进入到命令模式,然后按下#就可以了
12.2 取消高亮
处于末行模式的时候,输入nohl(no high light)之后,按下enter即可,取消高亮
13. 如何进行静态编译
在进行编译的时候加上
- static
即可