本文基于使用经验&主要参考 菜鸟-Linux 命令大全
生成密码 openssl rand -base64 1
pip install ipykernel
python -m ipykernel install --user --name=py39
CUDA_VISIBLE_DEVICES="1" python xxx
nvidia-smi
watch -n 0.1 nvidia-smi
ps -p PID -o user
kill-9 PID
df -h
du -h --max-depth=1
(默认是当前所有目录)du -h --max-depth=1 dst_dir
diff a b
python train.py aa | tee output.txt
pip freeze > requirements.txt
pip install -r requirements.txt
ls -l | grep -c "^-"
ls file_dir | wc -l
先写到一个list中
cat 01.list | xargs -i rm {} ---xargs管道明令
vim ~/.bashrc
在文件最后对PS1进行修改(自动覆盖之前的命令)
PS1='\[\033[00;32m\]\u@\h\[\033[0m\]:\[\033[00;33m\]\w\[\033[01;36m\]$(__git_ps1 "[%s]")\[\033[01;33m\]\$\[\033[00m\] '
export GIT_PS1_SHOWDIRTYSTATE=true GIT_PS1_SHOWSTASHSTATE=true
# fake __git_ps1 when git-prompts.sh not installed
if [ "$(type -t __git_ps1)" == "" ]; then
function __git_ps1() { :; }
fi
~/.vim/colors/
下边,如果没有创建此文件夹set nu
set autoindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
"set cursorline
syntax enable
"set background=dark
"let g:solarized_termtrans = 1
"set t_Co=256
"colorscheme solarized
"set list
"set listchars=tab:▸-,eol:↩︎,trail:-
set encoding=utf-8
set bg=dark
set hlsearch
vi ~/.vimrn
set tabstop=4 设定tab宽度为4个字符
set shiftwidth=4 设定自动缩进为4个字符
set expandtab 用space替代tab的输入
修改 /
set encoding=utf-8
set fileencodings=gb18030, cp936
file xx.txt
:set fenc
set fenc=utf-8
,修改编码格式,但是这样直接改有时候格式改了,但是显示并没有起到作用iconv -f 'gbk' -t 'utf-8' src.txt>tar.txt
export http_proxy=http://bjrz-squid4.lf:11080 && export https_proxy=http://bjrz-squid4.lf:11080 ##代理设置
export LANG=zh_CN.utf8 #添加设置
apt-get install language-pack-zh-hans
^\s\+print --以空格+print开头的字符
:set nu
:$
, 到第某行:n
/word
,检索到按n
跳到下一个shift+n
?word
查找,n
向前方索引上一个:set nonu
:f
:!pwd
:sp
vsp xx
第一步:按下组合键“CTRL+v” 进入“可视 块”模式,选取这一列操作多少行
第二步:按下d 即可删除被选中的整块
第一步:按下组合键“CTRL+v” 进入“可视 块”模式,选取这一列操作多少行
第二步:按下shift+i(或者大写的字母"i")
第三步:输入要插入的内容
第四步:按ESC,之后就会看到插入的效果。
编辑~/.vimrc文件,加上如下几行:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
:set hlsearch #对搜索内容高亮现实
:%s/str//g 删除文件中所有的str字符
:%s/str/g 替换文件中所有的str字符为g
#如果遇到no pattern的情况,可能是:比如删除`sil]`,其中‘]'是有意义的字符,要转译一下,`:%s/sil\]//g`
## 删除特征字符所在的行
:g/str/d
打乱文本行
shuf input_file.txt -o output_file.txt
#替换文件中的指定字符
`:%s/vivian/sky/`(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
`:%s/vivian/sky/g`(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
# 字符串正则匹配
/{"id":\d\+,"text":" \d\+是匹配整数,正常使用是\d+,这里对+也要进行转译
:%s#{"id":\d\+,"text":"##g 批量删除 {"id":123,"text":"的字符串
```python
:%s#\([A-Z]\)#\1 #g 将所有大写字符后面加空格,\1是()中字符的代指
%s#\([A-Z]\)\(\d\)#\1-\2#g.
-----#\([a-z]\)\(\d\) 括号括起来才能算变量,后边 \1 \2引用第一个/第二个变量
#字符串匹配到之后再复制回去
:%s#\d+|#&str# ------匹配到 (‘数字’+‘|‘)的组合,然后替换成 (‘数字’+‘|’+'str")
`:` 表示后面输入的是vim命令参数
`g` 表示范围是全局
`str` 是匹配上的字符串
`d` delete 表示删除
14. 行删除
:%norm jkdd 删除奇数行
:%norm jdd 删除偶数行
:n,m d 删除n-m 行
两个文件复制到新的文件,每行对应 paste en16 en24 > tmp,然后替换其中\t为想要的字符
wc -l xx.txt
:%s#\n#s#g 替换换行符为s
:%s#s#\r#g 替换s为换行符
(1)ctrl+v, 进入列处理模式
(2)shift+g,到最后一行,然后箭头挪到需要处理的列
(3)shift+i, 插入想要的字符
(4)esc,回车,结束操作
(1)进入命令行模式,按ctrl + v进入 visual block模式(可视快模式),按小写字母L横向选中列的个数,例如 // 需要选中2列
(2)按字母j,或者k选中注释符号
(3)按d键就可全部取消注释
yy
,然后在同一编译器下p
,即可复制一行strl+v
进入快操作,选中要复制的多行多列,按y
复制。 此时vim 会自动将光标定位到选中文本的开始的地方,并退出可视模式。移动光标到文本结束的地方,按 p
粘贴。apt-get install ctags
ctags -R *
g+]
,然后根据弹出提示选择跳转数字ctrl+]
ctrl+t
strl+w, ]
,新开一个窗口同时查看1.地址 ctags 5.8
2. 解压后
cd ctags-5.8
./configure
make
ctags -R *
ctrl + ] (没有其他同时操作的按键)
,ctrl + t
sort -r -t "|" -k 3 -n training/train_ppgs353_bn_lpc.txt > tmp2
示例
原始文本
[ericshenMacPro@root duweixin]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
想要实现按照第二列数字(:分隔,1开始计数)排列
[ericshenMacPro@root duweixin]$ sort -n -k 2 -t : facebook.txt >>tar.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
参考sort排序示例介绍
cat 1.txt 2.txt > all.txt
sed -n '10,100p' src.txt >>tar.txt src.txt的10-100行cp到tar.txt中
head file
tail file
head -n 20 file #查看前20行的内容
tail -n 20 file # 查看后20行内容
tail +20 file #查看20行以后的所有内容
head -c 20 runoob.log # 查看文件前20个字符
tail -c 10 notes.log # 查看文件最后10个字符
根据PID kill掉进程kill -9 PID
比如上述,可以用kill -9 15975
杀掉某个用户的所有进程
可以通过top的方式查看username
pkill -u username
grep用于查找文件中包含指定字符串
grep numpy xx_name
(查找范围在当前目录下)grep numpy *.py
,或者以某种字符开始或者结束的文件,以此类推grep –i "被查找的字符串" 文件名
grep -r "被查找的字符串" 路径地址
e.g. grep -r numpy /home/usr_name
用于查找指定路径下文件名包含指定字符串的文件
find /home/usr_name -name "*.c
find . -type f
find . -ctime -20
find . -name “*.in” | xargs grep “thermcontact”
diff用于逐行比较文件中的不同,并打印输出
常用比较方法 diff file_a file_b
比较的结果会间隔打印出来
想要将比较的结果并排显示
diff file_a file_b -y -W 50 -y或--side-by-side 以并列的方式显示文件的异同之处。
-W<宽度>或--width<宽度> 在使用-y参数时,指定栏宽。
-W 50 指并排显示的字符长度,可以自行按需变大or缩小
tar zxvf FileName.tar.gz
tar -jxvf xx.tar.bz2
unzip xx.zip
jar xvf xx.zip
tar -xf xx.tar
gzip -d
解压tar –xzf
解压bzip2 -d
或者用bunzip2
解压tar zcvf FileName.tar.gz DirName
zip FileName.zip DirName
linux 压缩和解压缩命令gz、tar、zip、bz2
csdn博客
百度经验贴
Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。
chmod a=rwx file
-rw------- (600) 只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。
https://www.cnblogs.com/wangqiguo/p/8905081.html
安装
apt-get install tmux
或者
sudo yum install tmux
tmux新开一个窗口tmux new -s new_name
ctrl+b,d
退出当前窗口,但不关闭
tmux kill-session -t name关闭名字为name的tmux窗口
tmux ls 终端环境查看会话列表
tmux a -t session1
从终端环境进入会话
debug:
can't create socket
解决:sudo chmod 777 /tmp
划分上下两个窗格
$ tmux split-window
划分左右两个窗格
$ tmux split-window -h
pane 切换(快捷键控制)
ctrl+b, 方向键
pane切换 (命令控制)
光标切换到上/下/左/右方窗格
$ tmux select-pane -U/-D/ -L/-R
关闭分屏
tmux kill-pane
python xx.py &>tmp.log &
打印日志到文件
python xx.py | tee output.log
ubuntu常见错误–Could not get lock /var/lib/dpkg/lock解决
通过终端安装程序sudo apt-get install xxx时出错:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it
出现这个问题可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因可能是上次运行安装或更新时没有正常完成,进而出现此状况,解决的办法其实很简单:
在终端中敲入以下两句
rm /var/cache/apt/archives/lock
rm /var/lib/dpkg/lock
tmux detach -a
,-a
意思是kill掉除了当前界面的所有其他用户tmux ls
0: 1 windows (created Tue Sep 22 17:19:04 2020) [125x40] (attached) -----多个client在用
1: 1 windows (created Wed Sep 23 17:37:36 2020) [167x41] (attached)
2: 1 windows (created Tue Sep 29 16:19:44 2020) [121x56]
ctrl+b,shift+d
选择detach哪个用户1. 前后按键的快速移动
mac>偏好设置>键盘>时间设置为最短
2. 左|右移动一个单词
Esc b 左移一个单词[back]
Esc f 右移一个单词[forward]
注意:每次按下快捷键,需抬起后再按下快捷键,方可多次移动单词。
3. 光标快速切换到行尾行首
ctrl+a 行首
ctrl+e 行尾
openssl version
libssl.so.10: cannot open shared object file: No such file or directory
首先进入制定地址,kml的地址是 /usr/lib/x86_64-linux-gnu
ll libssl.so*
ll libcrypto.so*
## 软链接
然后在指定目录下对已有版本进行软链
ln -s /usr/lib64/libssl.so.1.0.0 libssl.so.10
ln -s /usr/lib64/libcrypto.so.1.0.0 libcrypto.so.10
# 软链接数目
find . -type l -name "*.wav" | wc -l
# 移除软链接---如果失效,注意是否加了‘/‘
rm -rf libcrypto.so.10
工程解决:
export LD_LIBRARY_PATH=/home/zhangying13/.jupyter/ppgs_extractor/mandarin_ppgs/asrtest_tts/lib:$LD_LIBRARY_PATH
ln -s src_file tar_file 对指定目录进行软链接
shell 多线程设计
if [ $name == 'root' ]
then
echo "welcome"
else
echo "hacker"
fi
#!/bin/sh
aa="August 15, 2012"
bb="August 15, 20122"
cc="123"
dd="123"
-o或
if [ "$aa" = "$bb" -o "$cc" = "$dd" ]; then
echo "yes"
else
echo "no"
fi
-a and ! -a 与,!非
if [ "$aa" != "$bb" -a "$cc" = "$dd" ]; then
echo "yes"
else
echo "no"
fi
ps -ef | grep python | grep -v grep | awk '{print $2}' | xargs kill -9
进入htop, ⬆️/⬇️选择到指定的进程, fn+F9,然后‘9'SIGKILL
ps -A | grep defunct
ps -ef | grep defunct | more
kill -9 PPID
jobs
查看正在执行的kill %jobs_id
lsof -i :端口号
kill -9 $(lsof -i tcp:进程号 -t)
pip3 install --upgrade pip
pip3 install jupyter # 报错把pip3改成pip就可以了
apt-get install lrzsz
rz
上传本地的文件sz
下载文件到本地scp -P 2222 /home/lnmp0.4.tar.gz usrname@hostip:/root/lnmp0.4.tar.gz
scp -P 50562 Downloads/_ProsodyPro.praat.zip usrname@hostip:
scp -P 50562 -r usrname@hostip:/home/liry/ruyun/kaldi/egs/sre10 .
scp -P 50562 usrname@hostip:file_dir local_path
本地上传到服务器
scp local_file remote_username@remote_ip:remote_folder
因为网络问题上传会遇到stalled的报错
scp -C -P 50562 usrname@hostip:file_dir local_path
添加 -C快速下载
ls min_* > lst ------min开头的都写到lst中,然后把想保留的在lst中删除
cat lst | xargs -i rm {} --------删除lst中的文件
cat training/multi_speaker/multi_speaker_train.txt | awk -F '|' '{printf("%s|%s|%s|en_%s|%s", $1, $2, $3, $4, $5)}'
cat pkl_data/singbase_librosa/singbase_librosa2k-train | awk -F "|" '{printf("%s|%s|/mmu-audio-ssd/tts/zhangying/sing_data/singbase_librosa_norm/mfcc20_from_mel80_wavegan/%s|%s\n", $1, $2, $3, $4)}' >> tmp
F awk
命令行显示文件行数
cat xx.txt| wc -l
for f in $(ls); do echo $f; ls $f| wc -l; done
for f in $(); do awk "NR%2==1" $f; done
sed操作命令
sed -i 'N,Md' filename
sed -i '/指定字符/d' filename
sed -n 'N,Mp' filename
// -i 会直接修改原始文件
sed -i 's/原始字符/替换字符/' filename
/ 删除每一行的所有特定字符 “#1”
sed 's/#1//g' prosodylabeling/all_clean.txt
// 输出到终端,可以自行重定向
sed 's/原始字符/替换字符/' filename
// 指定行的英文小写字符替换为 字符+空格
sed -i '1280,3818s/\([a-z]\)/\1 /g' filename