linux命令常用2-ps-indent-tmux-fasd

一:编程代码整理测试

1,indent

 indent可辨识C的原始代码文件,并加以格式化,以方便程序设计师阅读

#iindentfilename

2,PC-LINT 

PC-Lint是一个历史悠久,功能异常强劲的静态代码检测工具。它的使用历史可以追溯到计算 编程的远古时代(30多年以前)。经过这么多年的发展,它不但能够监测出很多语法逻辑上的隐患,而且也能够有效地帮你提出很多程序在空间利用、运行效率上的改进点,在很多专业级的软件公司,比如Microsoft, PC-Lint检查无错误无警告是代码首先要过的第一关,

二:

在linux中查看线程数的三种方法

1、top -H
手册中说:-H : Threads toggle
加上这个选项启动top,top一行显示一个线程。否则,它一行显示一个进程。

2、ps xH
手册中说:H Show threads as if they were processes
这样可以查看所有存在的线程。

3、ps -mp <PID>
手册中说:m Show threads after processes
这样可以查看一个进程起的线程数。

 4、prstat -a

5、ps -Lf <pid>

L显示LWP(轻量级进程)和NLWP(进程中包含的轻量级进程的个数)。

线程和进程:

(1)LWP是轻权进程的意识,这里你可以认为它就是CPU,用户空间的线程一旦获得了LWP,也就是说它获得了可执行能力,它可以随时被操作系统调度。
,用户空间的thread和内核空间的LWP并不是一对一的关系,而是N对M的关系,那么由那个线程获得LWP,这个调度的完成是由线程库来完成的,而不需要内核的参与,也就是这种方式的线程上下文切换比较快,并且很明显这种方式更节省内核资源,solaris根据一定的策略提供一个LWP池,供上面更多的线程分享,这种线程就是所说的unbound线程。
(2)用户空间的线程thread和LWP是one-to-one的对应关系,每一个线程都有一个永久的LWP为它服务,很明显这种方式的线程的实时调度性要好,但是这种线程的上下文切换需要KERNEL的参与,并且由于LWP本身是消耗操作系统资源的,因此这种方式要比上面的那种方式浪费资源,这种方式的线程就是所谓的bound线程。

(3)one-level:solaris上可选实现模型

可以通过设置 ulimit -s 来增加每进程线程数。 每进程可用线程数 = VIRT上限/stack size 其中 VIRT 上限: 32位x86 = 3G 64位x64=64G statck size 默认是 10240 因此在默认情况下 32位系统上单进程最多可以创建300个线程, 64系统在内存充足的情况下最多可以创建 6400 个线程。 在机器硬件固定的情况下,可以通过 ulimit -s 降低stack size 的设置值来获得更多的每进程线程数。

6,iotop 事实查看硬盘读写操作最多的程序

iotop,

安装

yum install iotop

使用方法和top差不多

7,

下载

apt-get install tmux 或者git下载

$ git clone https://github.com/zuorn/tmux.conf
$ cp tmux-config/.tmux.conf ~/.tmux.conf

重启 tmux restart tmux 或者 在 tmux 窗口中,先按下 Ctrl+b 指令前缀,然后按下系统指令:,进入到命令模式后输入 source-file ~/.tmux.conf,回车后生效。

https://cloud.tencent.com/developer/article/2173566

因为 setw 不是 bash 里面的命令所以无效,需要使用如下命令来生效配置文件

tmux source ~/.tmux.conf
set -g prefix C-q #
unbind C-b # C-b 即 Ctrl+b 键,unbind 意味着解除绑定
bind C-q send-prefix # 绑定 Ctrl+q 为新的指令前缀

# v2.1及以上的版本
set-option -g mouse on
#新版简化为 set -g mouse on

#复制模式更改为 vi 风格
#注意: 进入复制模式 快捷键:prefix + [

setw -g mode-keys vi # 开启vi风格后,支持vi的C-d、C-u、hjkl等快捷键

bind -t vi-copy v begin-selection # 绑定v键为开始选择文本
bind -t vi-copy y copy-selection # 绑定y键为复制选中文本
bind p pasteb # 绑定p键为粘贴文本(p键默认用于进入上一个窗口,不建议覆盖)

bind-key k select-pane -U
bind-key j select-pane -D
bind-key h select-pane -L
bind-key l select-pane -R

tmux 2.1 中,对鼠标模式进行了重写,因此新版只需要增加一段设置即可:

set -g mouse on 然后就可以复制了, 步骤是这样的, 按住shift 选择要复制的内容,在看你终端的复制快捷键是哪个

tmux 2.6版本配置文件

1,创建session

创建session:

tmux new -s session1

2,会话之间切换

会话之间切换方法:tmux switch -t session名称 或者 ctrl + b s

窗口之间切换方法:tmux select-window -t window名称

会话和窗口的选择可以通过快捷键:ctrl + b w来进行自由选择

3、tmux ls

列出所有tmux会话

4、tmux a

恢复上一次的会话

5、删除会话

tmux kill-session -t foo # 删除名称为 foo 的会话

tmux kill-server # 删除所有的会话

 6,窗口创建
创建一个新的名为window2的窗口,执行如下命令即可

tmux new-window -n window2

窗口重命名
将当前窗口改名为window1,执行如下命令即可

将当前窗口改名为window1: tmux rename-window window1

8,fasd 

安装

git clone https://github.com/clvv/fasd.git
cd fasd
make install

配置

ZSH:

# fasd
fasd_cache="$HOME/.fasd-init-zsh"
if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
  fasd --init posix-alias zsh-hook zsh-ccomp zsh-ccomp-install >| "$fasd_cache"
fi
source "$fasd_cache"
unset fasd_cache

BASH:

fasd_cache="$HOME/.fasd-init-bash"
if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
  fasd --init posix-alias bash-hook bash-ccomp bash-ccomp-install >| "$fasd_cache"
fi
source "$fasd_cache"
unset fasd_cache
您可以在~/.bashrc中添加自己的别名,充分利用fasd的权限,如下例所示:
eval "$(fasd --init auto)"
fasd_cd ()
{
if [ $# -le 1 ]; then
fasd "$@";
else
local _fasd_ret="$(fasd -e 'printf %s' "$@")";
[ -z "$_fasd_ret" ] && return;
[ -d "$_fasd_ret" ] && printf %s\\n "$_fasd_ret" && cd "$_fasd_ret";
fi
}

alias a='fasd -a' # any
alias s='fasd -si' # show / search / select
alias d='fasd -d' # directory
alias f='fasd -f' # file
alias sd='fasd -sid' # interactive directory selection
alias sf='fasd -sif' # interactive file selection

alias z='fasd_cd -d' # cd, same functionality as j in autojump
alias zz='fasd_cd -d -i' # cd with interactive selection

alias j='z'
alias jj='zz'
alias v='f -e vim'

a foo 列出最近操作的路径匹配'foo'的文件与目录
f foo 列出最近操作的路径匹配'foo'的文件
d foo 列出最近操作的路径匹配'foo'的目录
s foo 列出最近操作的路径匹配'foo'的文件与目录,并可以通过序号选择
sf foo 列出最近操作的路径匹配'foo'的文件,并可以通过序号选择
sd foo 列出最近操作的路径匹配'foo'的目录,并可以通过序号选择
z foo cd到最近操作的匹配'foo'并且得分最高的目录
zz foo 列出最近操作的路径匹配'foo'的目录,通过序号选择,然后cd进目录
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值