Linux常见操作积累

1. linux 中文乱码

设置iterm2终端的profiles-Edit profiles-terminals-GBK

2. 经常 ssh 掉线

在home路径vim .bash_profile 中添加export TMOUT=0

3. 磁盘已满

vi编辑某文件,保存时报错,提示:E514: write error (file system full?)写入错误,磁盘满了。
查看磁盘空间:df -h
根目录磁盘空间已满,used%100。
清理文件,释放空间后,再次编辑文件,保存正常。
du用来查看文件或目录所占用的磁盘空间的大小。
du -a:使用此选项时,显示目录和目录下子目录和文件占用磁盘空间的大小。
du -s:使用此选项时,du只显示目录所占用磁盘空间的大小,而不显示其下子目录和文件占用磁盘空间的信息。
du -sh:查看当前目录总共占的容量。而不单独列出各子项占用的容量
du -lh --max-depth=1:查看当前目录下一级子文件和子目录占用的磁盘容量。

4. 目录切换

参考
用cd -和cd $OLDPWD都可以在最近所操作的两个目录之间进行切换。
pushd:切换到作为参数的目录,并把原目录和当前目录压入到一个虚拟的堆栈中。
如果不指定参数,则会回到前一个目录,并把堆栈中最近的两个目录作交换。
pushd +n:n是一个数字,有此参数时,是切换到堆栈中的第n个目录,并把此目录以堆栈循环的方式推到堆栈的顶部。堆栈从第0个开始数起。
popd:弹出堆栈中最近的目录dirs: 列出当前堆栈中保存的目录列表。
pushd 和 popd 都可以只影响堆栈而不切换目录用 -n 参数即可。

5. 查找命令

find path -name filename
find . -name filename
grep -nr ‘targetname’ --color=auto path
grep -nr ‘targetname’ --color=auto .
nm filename | grep targetname -B5
nm main.c | grep main -B5
nm --help
cat log/ads_server.log | grep -C5 ‘tag’
-C 上下,-B后,-A前

6. 显示端口

netstat -a 列出所有端口
netstat -at 列出所有tcp端口
netstat -au 列出所有udp端口
列出所有处于监听状态的 Sockets
netstat -l 只显示监听端口
netstat -lt 只列出所有监听 tcp 端口
netstat -lu 只列出所有监听 udp 端口
netstat -lx 只列出所有监听 UNIX 端口
1024以下系统,1024到65535我们编程可以用。这个不是Linux规定的,是socket规定的。
port的取值范围是 0 - 65535(即2的16次方),0到1024是众所周知的端口(知名端口,常用于系统服务等,例如http服务的端口号是80)。个人写的应用程序,尽量不要使用0到1024之间的端口

7. 进程

挂起进程 ctrl+z
查看进程号 ps -ef | grep vim
杀死进程号为2301的进程 kill -9 2301
ps -ef | grep 进程号 或者 kill -9 进程

8. 查看虚拟内存 free -g

top -p pid
查看oom-score
cat /proc/32516/oom_score 显示15-16

9. 后台执行命令

  1. 用户直接退出开发机,退至跳板机,因此程序被kill,可能原因:通过终端显示,在开发机跳板机和本地电脑之间通信过于频繁。
    尝试在后台运行,然后看是否用户退出时,所有后台程序是否依然在运行。
    后台执行命令 nohup command &
    程序输出到 nohup.out
  2. 另外指定了输出文件:nohup command > myout.file 2>&1 &
    2>&1解析
    command > out.file 2>&1 &
    command > out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。
    2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。
    试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出。
    查看输出 less nohup.out,:G 跳至文件末尾

10. 进程操作

ctrl+z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态。
ctrl+c 终止前台命令。
jobs 查看当前有多少在后台运行的命令。
jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。

11. fg bg区别

ps 列出系统中正在运行的进程;
kill 发送信号给一个或多个进程(经常用来杀死一个进程);
jobs 列出当前shell环境中已启动的任务状态,若未指定jobsid,则显示所有活动的任务状态信息;如果报告了一个任务的终止(即任务的状态被标记为Terminated),shell 从当前的shell环境已知的列表中删除任务的进程标识;
bg 将进程搬到后台运行(Background);
fg 将进程搬到前台运行(Foreground);
将job转移到后台运行:
如果你经常在X图形下工作,你可能有这样的经历:通过终端命令运行一个GUI程序,GUI界面出来了,但是你的终端还停留在原地,你不能在shell中继续执行其他命令了,除非将GUI程序关掉。
为了使程序执行后终端还能继续接受命令,你可以将进程移到后台运行,使用如下命令运行程序: #假设要运行xmms
$xmms &
这样打开xmms后,终端的提示又回来了。现在xmms在后台运行着呢;但万一你运行程序时忘记使用“&”了,又不想重新执行;你可以先使用ctrl+z挂起程序,然后敲入bg命令,这样程序就在后台继续运行了。

12. 文件转码

iconv -f GBK -t UTF-8 file1 -o file2
UTF8 GBK 介绍
https://blog.csdn.net/u010821666/article/details/78611504
https://zhidao.baidu.com/question/133119038.html

13. Git 基础

git clone 克隆整个代码库,不同分支全部克隆下来
git branch 查看当前代码分支
git checkout group3 切换到group3代码分支
git commit -m “MATEAM3-1199”
icode与卡片icafe建立联系
git commit --amend 重复对上一版本的修改,无需建立新版本发起新的审核
git push
git pull
冲突后 git rebase origin group3
git blame 查看责任人

14. Linux 中命令行的快捷键

ctrl + w —往回删除一个单词,光标放在最末尾
ctrl + k —往前删除到末尾,光标放在最前面(可以使用ctrl+a)
ctrl + u 删除光标以前的字符
ctrl + k 删除光标以后的字符
ctrl + a 移动光标至的字符头
ctrl + e 移动光标至的字符尾
ctrl + l 清屏,相当于clear。
其他ctrl:
ctrl + c 杀死当前进程。
ctrl + d 退出当前 Shell。
ctrl + r 搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history
ctrl + t 交换光标位置前的两个字符
ctrl + y 粘贴或者恢复上次的删除
esc组合:
esc + d 删除光标后的一个词
esc + f 往右跳一个词
esc + b 往左跳一个词
esc + t 交换光标位置前的两个单词。

15. valgrind 相关

make出错:Error: no such instruction: `rdtscp’
机器的cpu版本太老了,导致valgrind较高版本编译失败,将valgrind版本换成3.8.0,编译成功

16. vim cscope

E262: error reading cscope connection 0
E257: cstag: tag not found
解决办法
:cs reset cscope.out
:cs kill 0
:cs add cscope.out

18. 查看文件目录大小

du -h --max-depth=1

19. Linux的perf使用

http://wiki.baidu.com/pages/viewpage.action?pageId=467215125

20. nohup 多个任务后台运行

nohup sh -c ‘./cmd2 >result2 && ./cmd1 >result1’ &
nohup sh -c ‘sh build.sh publish > publish.out 2>&1 && sh build.sh launch --no-whitelist > launch.out 2>&1’ &

21. 文件转码iconv

将文件file1转码,转后文件输出到fil2中:
iconv file1 -f GBK -t UTF-8 -o file2

22. 统计目录下代码行数

find . -name “*.cpp” |xargs cat|grep -v ^$|wc -l

23. 查看端口占用情况

netstat -ntulp | grep 47909

24. linux批量替换

sed -i "s/xbox_tablename.yacl.h/xbox_table_name.yacl.h/g" `grep xbox_tablename.yacl.h -rl . `

25. grep 多个文件后缀

grep -nr set_query_context --include=*.{cpp,h} .

26. sed截取文件行数

sed -n ‘100,200p’ filename

27. 线上机和开发机临时传数据

nc -l 7777 | tar xv
tar cv file | nc 10.77.128.112 7777

28. b2log解析方法

/usr/bin/codex -p proto_file -m message -b data_file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值