Linux 程序员备忘录

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

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

firewall-cmd --get-active-zones

ShellCopy

2、执行如下命令命令:

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

ShellCopy

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

firewall-cmd --reload

ShellCopy

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

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

ShellCopy

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

查看每个目录大小

du -h --max-depth=1

ShellCopy

vim 编辑的时候 sudo 保存文件

:w !sudo tee %

ShellCopy

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

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

ShellCopy

安装 oh-my-zsh

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

ShellCopy

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'

ShellCopy

然后

source ~/.bashrc

ShellCopy

全局配置就修改 / 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

ShellCopy

5. 登录 redis

redis-cli -h 10.208.134.162 -p 9099

ShellCopy

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

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

ShellCopy

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

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

ShellCopy

7. 安装 gcc g++

yum install gcc gcc-c++

ShellCopy

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

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

ShellCopy

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

pgrep live_writer

ShellCopy

然后 kill 掉

pgrep live_writer | xargs kill -9

ShellCopy

10. 进入 redis,显示中文

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

ShellCopy

// 批量删除 keys

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

ShellCopy

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"

ShellCopy

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

ShellCopy

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文件

ShellCopy

17. 解压操作:

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

ShellCopy

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

ShellCopy

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

yum -y install wget

ShellCopy

19. 解压安装 pip

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

ShellCopy

20. 批量复制查找的文件

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

ShellCopy

21. 连接数据库

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

ShellCopy

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

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

ShellCopy

23.vim 全局替换

:%s/foo/bar/g

ShellCopy

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

:w !sudo tee %

ShellCopy

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都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的.

ShellCopy

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

stty erase ^h

若要恢复Ctrl+Backspace组合键删除功能,可执行以下命令:
stty erase ^?
© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享