Linux 常用命令记录
1. 磁盘命令
1.1 查看各个磁盘大小
df
1.1 查看文件夹所占大小
主要参考博文
# 查看当前目录占用磁盘的大小,并列出子目录及文件占用磁盘的大小
du
# 查看特定目录占用磁盘的大小,并列出子目录及文件占用磁盘的大小
du ~/Downloads
# 查看时仅输出总大小,不输出子目录及文件占用磁盘的大小
du -s ~/Downloads
2. 文件夹命令
2.1 制作文件链接(软or硬)
制作链接的含义是:创造一个和源文件夹(or文件)保持同步的目标文件夹(or目标文件)。无论是改动源文件夹还是目标文件夹,两者都将保持同步。差异在于,软链接只会在指定位置生成一个源文件夹的镜像,并不占用磁盘空间;硬链接则真的会生成一个与源文件夹完全一样的目标文件夹,并保持同步。
主要参考博文
# 制作链接的命令为
ln
# 制作软链接
ln -s source_dir destination_dir
# 制作硬链接
ln source_dir destination_dir
Windows 中的链接制作(cmd中)
# 目录软链接 mklink /D destination_dir source_dir # 文件软链接(不加参数默认是文件的软链接) mklink destination_file source_file # 硬链接 mklink /H destination_dir source_dir
2.2 压缩和解压
2.2.1 zip and unzip
zip 命令和 unzip 命令是压缩/解压的互为对应的命令
zip 命令参考博文
unzip 命令参考博文
# zip 压缩
# 基本用法是:zip [参数] [打包后的文件名] [打包的目录路径]
# 参数:
# -r 将指定的目录下的所有子目录以及文件一起处理
# -q 安静模式,在压缩的时候不显示指令的执行过程
zip -r ./data/ ./data.zip
# unzip 解压
# 和 zip 命令相对应
# 注意参数为 -d ,是小写d
unzip ./data.zip -d ./data
3. 进程管理相关
3.1 进程管理
-
ps
# 显示现行终端机的所有程序,包括其他用户的程序 ps a # 显示所有进程 ps -A # 同 A 参数 ps -e # 列出程序时,显示每个程序真正的指令名称,不包含路径,参数或常驻服务的表示 ps c # 树状结构显示 ps -H # 以用户为主的格式来显示程序状况 ps u # 列出目前所有的正在内存中的程序 ps aux # 最常用的查询特定进程的方法:查询带key_str的进程,并进行特定操作 ps aux | grep key_str
-
top
实时动态显示进程(和线程情况),参考 百度经验
# 显示所有Linux线程 top -H # 输出特定进程的情况,进程号为 pid_number top -p pid_number # 输出 pid_number 进程内运行的线程状况 top -H -p pid_number
-
htop
# 查看所有的进程信息,可以用鼠标进行点选 # 按F2,再选择 Display options,可以设置视图 # 例如 tree view(将进程以树状表示)等 htop # 查看用户"user"的进程信息 htop -u user
-
kill
杀死特定进程
杀不死的僵尸进程
# 杀死 pid_number 的进程 kill pid_number # 强制杀死 pid_number 的进程 kill -9 pid_number # 注意,zombie(僵尸)进程无法杀死
Windows 杀死进程(cmd),其它选项可以参考 博文
#强行终止 pid_number 的进程 taskkill /F /PID pid_number
待续
3. 文件搜索
-
find
# 常用格式,pathname是为了指定查找文件的范围 find pathname -options # 在 库文件夹 中按照名字寻找特定库 find /usr/local/lib -name cv2.so # -user: 按照文件属主查找 # -prune:不在指定的 pathname 中查找 # -perm: 按照文件权限进行查找
-
locate
根据每天例行工作的contab程序建立的数据库,在数据库中进行检索,检索字符串是文件(夹)名的一部分即可被检索出来,貌似无法指定查询路径,参考博客
# 根据数据库来检索(字符与数据库中的文件名进行匹配) locate cv2.so # 立即更新数据库,在/var/lib/slocate/下生成 slocate.db updatedb
-
whereis
和locate一致,从linux文件数据库 /var/lib/slocate/slocate.db 中寻找,文件名是全匹配
测试发现,和 locate 相比,很多都找不到即便文件名匹配也找不到
参考博文
# 寻找 numpy whereis numpy
-
which
只能寻找执行文件,在PATH变量中寻找
# 查询 ipython 命令所在的路径 which ipython
待续
3. 文本文件处理
3.1 文件分割
-
linux
和下面的cat对应,采用split命令
# 对文本文件按照每 10 行进行切割,切割出来的文件名字是 some.txt.aa, some.txt.ab 等 # 如果不指定 最后的参数,则切割出来的文件是 xaa, xab等 split -l 10 some.txt some.txt. # 对文件按照大小进行切割 # 注意最后的参数的点不可删除,这代表切割出来的文件的名字是 a.tar.gz.aa, a.tar.gz.ab 等 # 如果不指定 最后的参数,则切割出来的文件是 xaa, xab等 split -b 5m a.tar.gz a.tar.gz. # 注意,可以将切割的文件再合并起来,可以检验 a.tar.gz 的大小和 a_copy.tar.gz 完全一致 cat a.tar.gz.a* > a_copy.tar.gz
windows待续