常用命令

Linux 常用命令

 tags 文件的生成与更新

ctags 默认是不会自动生成 ctags 文件的,常用的 3 个生成命令如下:

$ ctags *
$ ctags -R
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
  • -R: 循环生成子目录的 tags
  • *: 当前目录下的所有文件,不递归
  • –c++-kinds=+px : 记录 c++ 文件中的函数声明和各种外部和前向声明
  • –fields=+iaS : ctags 要求描述的信息,其中i表示如果有继承,则标识出父类;a 表示如果元素是类成员的话,要标明其调用权限(即是 public 还是 private);S 表示如果是函数,则标识函数的 signature。
  • –extra=+q: 强制要求ctags做如下操作—如果某个语法元素是类的一个成员,ctags默认会给其记录一行,可以要求ctags对同一个语法元素再记一行,这样可以保证在VIM中多个同名函数可以通过路径不同来区分。

Vim + ctags 配置

set tags=tags;  " ; 不可省略,表示若当前目录中不存在tags, 则在父目录中寻找。
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR> 

#ffmpeg 通过brew 安装扩展

#如果已经请使用reinstall

brew uninstall –ignore-dependencies ffmpeg

brew cleanup

brew reinstall  ffmpeg  –with-fdk-aac –with-ffplay –with-freetype –with-frei0r –with-libass –with-libvo-aacenc –with-libvorbis –with-libvpx –with-opencore-amr –with-openjpeg –with-opus –with-rtmpdump –with-schroedinger –with-speex –with-theora –with-tools ––enable-gpl

#将当前目录(包括子目录)中所有txt文件中的yyyy字符串替换为xxxx字符串

sed -i s/yyyy/xxxx/g `grep yyyy -rl –include=”*.txt” ./`

参数解释:

sed:

-i 表示操作的是文件,“括起来的grep命令,表示将grep命令的的结果作为操作文件

s/yyyy/xxxx/表示查找yyyy并替换为xxxx,后面跟g表示一行中有多个yyyy的时候,都替换,而不是仅替换第一个

grep:

-r表示查找所有子目录

-l表示仅列出符合条件的文件名,用来传给sed命令做操作

–include=”*.txt” 表示仅查找txt文件

./ 表示要查找的根目录为当前目录

注:如果不需要查找子目录,仅需要在当前目录替换,用sed命令就行了,命令如下:

sed -i s/xxxx/yyyy/g ./*.txt

要删除符合条件的行,命令为:

sed -i /xxxx/d ./*.txt

 

#搜索目录内的文件内容

# * 代表当前目录 -r :递归搜索,-n:显示行号

grep -rn “hello,world!” *

#搜索指定目录

grep -rn “hello,world!” /data/www/yun.51baocuo.com/

#搜索安装包:

yum whatprovides libGLU.so*

# 搜索出来后

yum install mesa-libGLU-9.0.0-4.el7.x86_64

#gdb

Centos下安装gdb

sudo yum install gdb

#uwsgi后台运行

uwsgi code_deploy.ini —daemonize /var/log/gitlab/nginx/uwsgi.log

#Linux 安装Python 插件时提示error: command ‘gcc’ failed with exit status 1错误

yum install gcc libffi-devel python-devel openssl-devel

Centos 版本下载:

https://wiki.centos.org/zh/Download

bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。
与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例
说明一下:
# tar -cjf all.tar.bz2 *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个
bzip2压缩过的包,包名为all.tar.bz2
# tar -xjf all.tar.bz2
这条命令是将上面产生的包解开。

#sudo -i

无密码切换到root账户

#su root

有密码切到root账户

#uname [-a|-r]

lsb_release -a

查看服务器系统(这个命令适用于所有的linux,包括Redhat、SuSE、Debian、Centos等发行版。)

#sudo apt-get install python-dev

ubuntu安装python-dev

#本地生成rsa密钥

ssh-keygen -t rsa

#将rsa公钥追加在authorized_keys后面实现无密码登录

cat id_rsa.192.168.0.240.pub >> ~/.ssh/authorized_keys

#实现无密码登录

ssh [-p 22] root@192.168.0.55

#wget模拟POST发送数据

wget –post-data=”user=user1&pass=pass1&submit=Login”  http://127.0.0.1:8000/web_hook/push

ubuntu下安装fabric

1、sudo apt-get install build-essential libssl-dev libffi-dev python-dev

2、sudo pip install fabric

Linux下查看进程占用端口:
查看程序对应进程号:ps –ef|grep 进程名

REDHAT :查看进程号所占用的端口号:netstat –nltp|grep 进程号
ubuntu:查看进程占用端口号:netstat -anp|grep pid

Linux下查看端口号所使用的进程号:
使用lsof命令: lsof –i:端口号

 

Git常用命令

git 获取最近一次提交的commit id:

1、获取完整commit id(如:14123c8877e6ebdc220e205d92fc70feaf06dab1)

git rev-parse HEAD

2、获取short commit id(如:14123c8)

git rev-parse —short HEAD

 

git制作增量包用于更新代码

1 先找到指定的开始提交id,比如 05104e3475f63e1e49fbfcbd424a4a3801b95645

2 找到结束的提交id,比如 a0eb9bc6d4e1801062877fd435eefb81f11598b8

3 在命令行下进入到git代码目录中,敲命令制作增量包

git archive -o hot-fix-20151001.zip HEAD $(git diff 05104e3…a0eb9bc –name-only)

注:git diff 后边的commit id, 可以只取前7位或全部写上都可以

3 命令执行完成后,在当前目录生成一个.zip的文件,这个就是增量包文件了

Tips: 其实还可以把zip文件生成到指定目录中,把上边git archive的命令改一下

git archive -o /root/hot-fix-20151001.zip HEAD $(git diff 05104e3…a0eb9bc –name-only)

Leave a Comment