Linux基础认识(持续更新)
Linux可能对于在校的非计算机相关专业的同学会比较陌生,比如狗头,之前的感觉一直是“可以,但是没必要”,一直依赖于图形界面。但是工作之后,尤其是要在服务器上做操作时,Linux可太重要了,因为所有的任务基本都是要在Linux环境下进行的,最近狗头就凭借之前的一点点印象,一边工作一边积累Linux 的一些用法,然后也在这边做一些分享。(重点就是一定要实操,多用!)
先说明一下,因为狗头平时用的机子是macbook pro,然后macOS自带的的terminal和Linux语法基本一样,狗头之后的内容都是基于本机上的,如果有特殊的情况(比如区分大小写的情况)会给大家注明,有疑问的地方也欢迎评论交流。另外,本文是持续补充更新的,内容都是学习工作中遇到好多次的知识点,所以一些生僻或者狗头还没接触的到就暂时不做分享啦!
基本操作
mkdir dir1/file # 创建一个目录
cd dir1/file # 进入一个目录
cd .. # 返回上一级目录
pwd # 显示当前路径
ls # 显示当前目录下的文件
ls -a # 显示当前目录下的全部文件(包括隐藏文件)
ll # 显示目录下文件的详细信息
du -h # 查看文件大小
rm file # 删除文件
rm -rf file # 强制删除文件
mv dir1/file dir2/ # 移动文件
cat file # 显示文件内容(少)
more file # 分页显示文件内容(多)
head -n file # 显示文件前n行
tail -n file # 显示文件后n行
sed -n '9p' part-09999 # 显示第9行
sed -n '9,15p' part-09999 # 显示9-15行
sed -n '9p;15p' part-09999 # 显示9,15两行
uniq file # 去掉重复行
cut -f2 # 剪切出第二列
sort data # 排序
clear # 清屏 等同于 control + L
which name # 查找进程路径
grep # 搜索相关匹配
ps -aux # 查看进程
fuser -v /dev/invidia* # 查看当前进程
kill -9 PID # 杀进程
举个栗子:
vim # 使用VIM文本编辑器
gpustat # 查看gpu状态(需要安装)
export CUDA_VISIBLE_DEVICES = n # 使用n号gpu
export -p # 查看所有export信息
VIM相关操作
正常模式与输入模式的切换:
i # 在当前光标所在字符的前面,转为输入模式
I # 在当前光标所在行的行首,转换为输入模式
a # 在当前光标所在字符的后面,转为输入模式
A # 在当前光标所在行的行尾,转换为输入模式
o # 在当前光标所在行的下方,新建一行,并转为输入模式
O # 在当前光标所在行的上方,新建一行,并转为输入模式
ESC # 按下esc键回到正常模式
在输入模式下:
:q # 退出
:wq # 保存并退出
:q! # 不保存并退出
:w # 保存
:w! # 强行保存
在正常模式下:
^ # 定位到行首
$ # 定位到行尾
0 # 跳到当前行的开头
h, j, k, l # 可以控制左,下,上,右
yy # 复制行
dd # 删除、剪切行
p # 粘贴到下一行
:n # 跳到第n行
/xxxx # 匹配XXXX(支持正则匹配)
如果你们中文文档用vim打开是乱码,可以如下设置一下
vi ~/.vimrc 加入
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
高级操作实例
# 修改每一列的数据格式
cat data.csv | awk '{printf("%.4f\t%.4f\t%.4f\t%.4f\t%d\n", $1, $2, $3, $4, int($5))}' > data2.csv
# 统计第三列每个数字个数占比
$ cat my_data | cut -f3 | awk '{hash[$0]+=1;a+=1}END{for(x in hash){print x"\t"hash[x]"\t"hash[x]/a}}'