Linux程序员备忘录

技术教程 · 2017-09-11
Linux程序员备忘录

工作中的一些积累
采用倒序方式更新

Centos7开启端口
1、运行命令:

firewall-cmd --get-active-zones

2、执行如下命令命令:

firewall-cmd --zone=public --add-port=6379/tcp --permanent

3、重启防火墙,运行命令:

firewall-cmd --reload

4、查看端口号是否开启,运行命令:

firewall-cmd --query-port=6379/tcp

yum install glibc-devel.x86_64 --disablerepo=adobe*

查看每个目录大小

du -h --max-depth=1

vim编辑的时候sudo保存文件

:w !sudo tee %

linux中文乱码设置
在RedHat/CentOS系统下,记录系统默认使用语言的文件是/etc/sysconfig/i18n,如果默认安装的是中文的系统,i18n的内容如下:

LANG="zh_CN.UTF-8" 
SYSFONT="latarcyrheb-sun16" 
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"

安装oh-my-zsh

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

1.chmod -- 修改文件或目录权限
r     --     1,读
w    --     2,写
x     --     4,执行
u     --     user,用户
g     --     group,组
o     --     other,其他
a     --     all,所有人
d      rwx      ---   --- 2 kun775 kun   4096 4月  26 15:48 kun775
目录 u          g     o       用户      组       
chmod a+x test 所有人都能访问test
chmod u+rwx test 给当前用户添加读写执行权限
chown -- 修改文件或目录的所有者
chown [选项]... 所有者] 文件...

2.Linux alias永久生效
在~/.bashrc 或 ~/.bash_profile里添加

alias rm='rm -rf'
alias grep='grep -i --color=auto'

然后

source ~/.bashrc

全局配置就修改/etc/bashrc
 
3.gdb调试
设置断点
b 函数名:行号
调试运行中的进程
gdb attach 进程id

4.清空redis

redis-cli -h 10.208.134.162 -p 9099 KEYS "live_*" | xargs  redis-cli -h 10.208.134.162 -p 9099 DEL

5.登录redis

redis-cli -h 10.208.134.162 -p 9099

================================================================================

6.Linux安装sz rz
首先通过sftp工具把安 装文件上传到/tmp目录下.

cd /tmp
wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20
./configure && make && make install

上面安装过程默认把lsz和lrz安装到了/usr/local/bin/目录下, 下面创建软链接, 并命名为rz/sz:

cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz

7.安装gcc g++

yum install gcc gcc-c++

8.关闭终端不停止命令继续执行

nohup command >/dev/null 2>&1 &

9.获取某个进程pid
pgrep 进程名,例如:

pgrep live_writer

然后kill掉

pgrep live_writer | xargs kill -9

10.进入redis,显示中文

/usr/local/redis/bin/redis-cli -p 41000 --raw

//批量删除keys

./redis-cli -p 61000 -a duiduiyou KEYS "*" | xargs ./redis-cli -p 61000 -a duiduiyou DEL

11.修改Linux系统默认语言

vim /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

ulimit -c 来查看core dump文件的大小,一般ulimit -c 1024 或者 ulimit -c unlimited

12.gdb调试
ulimit -c unlimited
设置断点
b 行号
调试运行中的进程
gdb attach 进程id
调试带参数的进程

gdb filename
(gdb)set args [参数列表]
在gdb中,和调试步进相关的命令主要有如下几条:
• continue    继续运行程序直到下一个断点(类似于VS里的F5)
• next        逐过程步进,不会进入子函数(类似VS里的F10)
• setp        逐语句步进,会进入子函数(类似VS里的F11)
• until        运行至当前语句块结束
• finish    运行至函数结束并跳出,并打印函数的返回值(类似VS的Shift+F11)

12.SSH命令行上传/下载文件
上传:
scp /path/file(这部分为本地的路径) user(远端目标用户名)@host(远端目标IP):/pathorfile(文件存储路径)
下载:
scp user(远端用户名)@host(远端IP):/path/file(下载文件在远端的路径) localpathorfile(本地文件存放路径)
查看目录或文件:
ssh user@host command ls "/path/*.tgz"

13.sh的单行和多行注释
单行注释    
多行注释     :<<! 注释内容 !
                  :' 注释内容 '

14.main参数使用
agrv和字符串的比较
strncmp(argv[1], "hello", 5) == 0

15.查看端口被占用情况

netstat -tunlp |grep 22

16.压缩

tar -cvf /usr/local/auto_bak/test.tar /usr/local/test 仅打包,不压缩

tar -zcvf /usr/local/auto_bak/test.tar.gz /usr/local/test 打包后,以gzip压缩 在参数f后面的压缩文件名是自己取的,习惯上用tar来做,如果加z参数,则以tar.gz 或tgz来代表gzip压缩过的tar file文件

17.解压操作:

tar -zxvf /usr/local/test.tar.gz

18.安装pip
下载pip到/usr/local/src

cd /usr/local/src
wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gzmd5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate

如果提示:-bash: wget: command not found
那么安装wget,执行如下:

yum -y install wget

19.解压安装pip

tar -xzvf pip-1.5.4.tar.gz
cd pip-1.5.4
python setup.py install

20.批量复制查找的文件

find . -name "*.sh" | xargs -i cp {} ~/

21.连接数据库

mysql -h10.189.30.55 -P3312 -utv_user -p'kt!@123' --default-character-set=utf8 d_v_idx

22.pip install 安装出现问题:UnicodeEncodeError: 'ascii' codec can't encode characters in position XX的解决办法
解决办法如下:
在python目录 Python27\Lib\site-packages 建一个文件sitecustomize.py
里面的内容是:

import sys 
sys.setdefaultencoding('UTF-8') 

23.vim全局替换

:%s/foo/bar/g

24.如何在vim保存时获得sudo权限

:w !sudo tee %

25.Linux任务前后台的切换

Shell支持作用控制,有以下命令实现前后台切换:
  1. command& 让进程在后台运行
  2. jobs 查看后台运行的进程
  3. fg %n 让后台运行的进程n到前台来
  4. bg %n 让进程n到后台去
      5. kill %n 杀死job
  PS:"n"为jobs命令查看到的job编号,不是进程编号.
  fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的.

按Backspace键删除出现^H的解决方法

stty erase ^h

若要恢复Ctrl+Backspace组合键删除功能,可执行以下命令:
stty erase ^?
linux
Theme Jasmine by Kent Liao