#方法一 ssh -N -f -p 22 -D 9527 userid@ip #方法二 ssh -N -f -p 22 -D 9527 -l userid ip
Category Archives: Shell
Linux常用命令11Linux文本处理示例
0.AWK常变量含义
常变量名 | 含义 |
ARGC | 命令行变元个数 |
ARGV | 命令行变元数组 |
FILENAME | 当前输入文件名 |
FNR | 当前文件中的记录号 |
FS | 输入域分隔符,默认为一个空格 |
RS | 输入记录分隔符 |
NF | 当前记录里域个数 |
NR | 到目前为止记录数 |
OFS | 输出域分隔符 |
ORS | 输出记录分隔符 |
1、统计文本中单词数量,并进行排序
grep -Eo "[a-z|A-Z]+" words.txt|awk '{word_cound[$1]++}END {for(aword in word_cound){print aword,word_cound[aword]|"sort -rn -k2"}}'
2、电话号码验证
规则:
A、(xxx) xxx-xxxx
B、xxx-xxx-xxxx
grep -Eo '^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$' phonelist.txt
3、行列转换
awk '{for(i=0;++i<=NF;)t[i]=t[i]?t[i] FS $i:$i}END {for(i=0;i++<NF;)print t[i]}' transport.txt
4、输出第10行
awk 'NR==10{print}' tenth.txt
Linux常用命令10Vim常用操作
0.基本操作
0.1多行复制
0.1.1、复制方法一
A、将光标移动到要复制的起始行
B、如果复制1行,则按下yy,如果是复制n行,则按下nyy
C、光标移动到粘贴地点,按下p
0.1.2、复制方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no co target_line_no
0.1.3、复制方法三(方法二+标签)
A、将光标移动到要复制的起始行,输入ma
B、将光标移动到要复制的结束行,输入mb
C、将光标移动到要复制的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b co ‘c
0.1.4、剪切方法一
A、将光标移动到要剪切的起始行
B、如果剪切1行,则按下dd,如果是剪切n行,则按下ndd
C、光标移动到粘贴地点,按下p
0.1.5、剪切方法二
A、ESC,:进入命名模式
B、start_line_no,end_lin_no m target_line_no
0.1.6、剪切方法三(方法二+标签)
A、将光标移动到要剪切的起始行,输入ma
B、将光标移动到要剪切的结束行,输入mb
C、将光标移动到要剪切的目标行,输入mc
D、ESC,:进入命名模式
E、’a,’b m ‘c
1.正则表达式
1.1.行首、行尾及空格
1.1.1 符号具体含义
^表示行首 $表示行尾 \s表示空格
1.1.2 应用举例
在全局范围内删除开始空格 :%s/^\s\+/ 删除末尾空格 :%s/\s\+$/ 删除空行 :g/^$/d 删除空白行 :g/^\s\+$/d 删除-开始的行 :g/^-/d
2.Table与空格互转
2.1、空格转TAB
:set ts=8 :set expandtab :%retab!
2.2、TAB转空格
:set ts=8 :set noexpandtab :%retab!
3.删除重复行
3.1、方法一
先排序 :sort 然后删除的重复项的后面一项 :g/\%(^\1$\n\)\@<=\(.*\)$/d
3.2、方法二
先排序 :sort 然后删除重复项的前面一项 :g/^\(.*\)$\n\1$/d
3.3、方法三
先排序 :sort 然后将所有重复记录替换为第一条 :%s/^\(.*\)\(\n\1\)\+$/\1/
4.奇偶行
4.1、删除奇数行
%s/\(^.*$\)\n\(^.*$\)/\1
4.2、删除偶数行
%s/\(^.*$\)\n\(^.*$\)/\2
4.3、奇偶行合并,以tab分隔
%s/\(^.*$\)\n\(^.*$\)/\1\t\2
或
%s/\n\(.*\n\)/\t\1
5.生成行号
5.1、方法1
:r !seq 1 100
5.2、方法2
:let n=0 | g/^/s//\=n/|let n+=1
6、每行首字母大写
%s/^\([a-z]\)/\U\1/
7.将行调整为固定宽度
:s/\v(.{80})/\1\r/g
Linux常用命令09tar压缩解压文件
1、压缩文件
#只归档不压缩 tar –cf OUT_FILE_NAME.tar PATH_TO_FOLDER #归档后用gzip压缩 tar –czf OUT_FILE_NAME.tar.gz PATH_TO_FOLDER #归档后用bzip2压缩 tar –cjf OUT_FILE_NAME.tar.bz2 PATH_TO_FOLDER #归档后用compress压缩 tar –cZf OUT_FILE_NAME.tar.Z PATH_TO_FOLDER
2、解压文件
#解压tar tar –xvf IN_FILE_NAME.tar #解压tar.gz tar -xzvf IN_FILE_NAME.tar.gz #解压tar.bz2 tar -xjvf IN_FILE_NAME.tar.bz2 #解压tar.Z tar -xZvf IN_FILE_NAME.tar.Z
Linux常用命令08cp命令强制覆盖文件
最近,用cp命令拷贝文件夹时,发现即使用了-f选项,覆盖文件夹时,仍然要一个文件一个文件的确认,吐血啊。
后来发现,我调用的cp命令其实是一个别名,用alias命令就可以看到了。
alias cp=’cp -i’
额,系统为了安全,默认强制大家在覆盖前,逐个进行确认。知道了原因,那解决问题就简单了。
方法一、用管道,对每个提醒直接进行确认
yes|cp -fr src dest
方法二、取消别名
unaslias cp
方法三、强制使用cp命令,而不是使用别名
\cp -fr src dest
Linux常用命令07Linux下合并文件夹
Linux常用命令06设置环境变量
Linux常用命令05scp上传及下载文件
1、从服务器上下载文件
scp username@servername:/remote_path/remote_filename /local_path
2、上传本地文件到服务器
scp /local_path/local_filename username@servername:/remote_path
3、从服务器下载整个目录
scp -r username@servername:/remote_path/remote_foldername /local_path
4、上传目录到服务器
scp -r /local_path/local_foldername username@servername:/remote_path
Linux常用命令04网络基本操作
Linux常用命令03挂载及硬件信息
1、挂载NTFS文件系统:
mount -t ntfs-3g /dev/sdb1 /mnt/winc -o force
2、挂载VirtualBox共享目录:
mount -t vboxsf 共享名称 /mnt/vbshare/
3、改变目录及文件所属
chown -R usergroup:user path_to_folder
4、查找
find path -name filename find path -type f -exec grep -l - l stringtofind {} \;
5、枚举文件夹下文件大小
du -h
6、查看文件夹大小
du -sh
7、查看硬盘使用情况
df -lh
8、查看内存使用情况
vmstat free -m