awk与单引号
cat t.t | awk "{for(i=1;i<=NF;i+=2){printf \"'%s':'%s',\n\",\$i,\$(i+1)}}"
- 单引号内为纯文本,无法转译,不能包含特殊字符如单引号,所以一般awk后都接单引号,NF是本行内拥有的字段总数,FS是分隔字符(默认空格),NR是当前处理的行数。
test
test
可以用来检测是否存在某个文件等,在shell脚本中做判断条件。
sed
sed
用来在shell中直接修改文件内容。
VIM
- :SET LIST 显示所有tab和回车符
- :s/old/new/g g为单行内全部替换,如果是%s代表所有行替换
- :set nu 显示行号
- :set nonu 不显示行号
- :set list 显示空格符
- sudo vim /etc/vim/vimrc 编辑vim配置文件
- G最后一行
- :line 跳到第line行
- u撤销
- /str 搜索str
- n/N 向下/上搜索
- :set expandtab ts=4 # 消除tab符号,为4个空格
Device
- 显卡
# 看显卡信息 lspci | grep -i vga # 看更详细的 lspci -v -s 02:00.0 # 02...是上面看到的第一排数字 # 英伟达显卡 nvidia-smi
- cpu
cat /proc/cpuinfo # 查看CPU信息
- 操作系统
uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息
SHELL
- cat file输出到命令行
- awk -F ‘\t’ 把输入的文本按照行切割开,后面加上’{print $7}’输出第几个参数 ‘{printf(“%s\t%s\t%s\t%s\t%s\n”, $6, $3, $4, $5, $1);}’ > Summer1.xml
- grep -i(大小写敏感) xx 正则查找指定内容
- wc -l 数输入的内容行数
- tail -f file 显示文件
- crontab -e 编辑自动启动文件,主要要写绝对路径,编辑完以后sudo service cron restart,通过sudo service cron status查看当前自动执行脚本的状态和错误信息。
- nohup wget http://archive.ics.uci.edu/ml/machine-learning-databases/00251/WTD_upload.zip 2>&1 1>nohup.log & 把进程挂到1。
- uniq
- head -n 2
- tar -czf docs.tar.gz docs 压缩 #z是gzip, j是bz2
- tar -tfv docs.tar.gz 解压缩
- du -sh # 查看目录使用情况
- gzip 压缩和解压一个文件
- umask -S查看默认文件权限
- alias查看所有的别名
- echo $RANDOM # 生成一个随机数
- shell中,单引号是纯文本,双引号内可以存在变量”$name”,也可以是${PATH}。`uname -r`内是命令,也可以用$(uname -r),用法:cd /etc/modules/`uname -r`/。
- unset name,取消变量。
- type -a ls # 查看命令是什么
- stty -a 看到所有操作字符
- 重定向 2> dev/null 可以忽略错误流
- 错误流重定向 2>&1
-
tee -a filename 可以保持输出流向下管道程序, cat file tee f grep xxx - split 把大文件分割,
-
一般表示来自管道的数据(在文件位置) -
查找字符出现次数 grep -o “ch” file wc -l -
nl /etc/passwd sed -n ‘5,7p’ #输出5到7行, sed可以通过命令行编辑, -n 是安静模式,只输出更改部分, sed也可以通过s/xx/xx/g来进行替换,支持正则 - sed -i 可以直接修改文件
-
egrep 支持扩展正则表达式,例如分组 g(oo dd), -B, -A 是连同前/后多少行。 - awk ‘{FS=”:”} $3 < 10 {print $1 “\t “ $3}’ 注:NR是当前处理行数,NF切割字段总数,FS默认为空格
- xargs
- test,是否为文件夹,文件之间新旧比较 test -e /dmtsai && echo “exist” || echo “not exist” # -z 字符串是否为0
- select-editor 选择默认的编辑器
- at 是在指定时间执行某些命令,需要打开atd
- batch如at一样,但是在到达时间点时,CPU负载率高的情况下延迟执行。
- crontab -e 循环执行
- 可以利用软件实现RAID5
- su - 切换到root,sudo 是使用用户的密码获取root权限,/etc/passwd保存能否使用sudo。默认ubuntu没有开启root,设置passwd -u root。 sudo -s 使用的是/etc/passwd中的shell。
- pstree
- ps -aux
- top 中M是按内存排序,P是CPU
- kill -9 是非正常结束(vim 会留下swp文件),-15是正常结束
- linux不同用户可用文件系统大小,有一个soft和hard值。
- jobs -l可以查看挂起的job,fg和bg分别是恢复到前台和后台。ctrl+Z是暂停进程。用%job_num表示,如 kill -9 %1。
- Killall -i会询问是否杀死进程。
- free -m 空闲内存大小
- sudo nice -n -5 vim &,用nice执行程序,为程序指定一个NICE值,root可以指定-20~19,普通用户可以设置为0~20,进程执行优先级PRI_NEW = PRI_OLD + NICE
- renice [number] PID, 重新调整进程NICE值,一般用户仅可增大NICE值。NICE值会在父子进程之间继承。