常用命令行
删除:
rm -rf <file_or_folder_name>复制:
ctrl+insert/ 光标选中粘贴:
Shift + insert/ 滚轮按下 / 触摸板双指重命名/移动文件:
mv A B(将A重命名为/移动到B)查看内存使用:
top- 查看本机硬盘信息
- 查看已挂载的硬盘信息:
df -h - 查看本机上所有(包括未挂载的)硬盘信息:
lsblk - 关于硬盘的挂载与卸载,可以参考这里
- 查看已挂载的硬盘信息:
- 修改文件权限:
chmod- Linux下文件的权限类型一般包括读
r,写w,执行x三种;Linux下权限的粒度有拥有者u、群组g、其它组o三种。使用数字表示权限:规定数字 4 、2 和 1表示读、写、执行权限,则同时增加读、写、执行则对应数字4+2+1=7,为拥有者u、群组g、其它组o均赋予上述权限的命令为。 参考:Linux权限详解 - 给某一文件增加权限:
chmod 777 <fileName> - 给文件夹下所有文件增加权限:
chmod -R 777 <dirName>
- Linux下文件的权限类型一般包括读
- 刷新
ldconfig动态库缓存文件:ldconfig- 不管做了什么关于library的变动后,尤其是最好都
ldconfig一下,否则可能发生找不到链接库的错误。
- 不管做了什么关于library的变动后,尤其是最好都
- 查看程序运行所需要的共享库:
ldd <exe_name>- 常用来解决因为缺少某些库文件或链接至错误库导致程序不能正常运行的问题。
- 通过符号(symbol)来还原函数名称:
c++filt <symbol>- 比如遇到undefined symbol报错时可根据后面给出的symbol进行函数还原,进而进行错误定位。
- 参考:C++中的名字修饰
实时查看GPU使用情况:
watch nvidia-smi清空终端:
clear或reset- 软链接:
- 创建:
ln -s 源文件 目标文件 - 删除:
unlink 已有的软连接
- 创建:
使用
ssh登录远程服务器:ssh <username>@<ip_addr> -p <port>- 文件信息相关:
- 显示隐藏文件:
ls -a - 查看文件大小(权限等):
ll -h - (递归)显示当前目录下所有文件夹大小:
du -h - 显示当前目录的所有文件总大小:
du -sh - 仅显示第一层级的目录大小:
du -h --max-depth=1
- 显示隐藏文件:
- 网络相关
- 查看网络接口配置信息:
ifconfig [-a] - 参考
- 查看网络接口配置信息:
查看进程信息
top命令- 按
c可展开显示具体的执行命令command
- 按
根据进程号
pid查看进程信息:ps -p <pid> -f-p为--pid的缩写,后跟进程号;-f指定展开显示执行的命令(It causes the command arguments to be printed.)- 参考
一些工具命令
grep命令
从files中寻找满足pattern的文件(参考):
1
grep -rn <pattern> <files>
find命令
在path下搜寻文件名为name的文件:
1
find <path> -name <name>
scp命令
scp是 secure copy 的缩写,相当于cp命令 + SSH,用来在两台主机之间加密传送文件。基本用法为:
1
scp source destination
**示例**
1
2
3
4
5
# 从远程复制到本地
scp [-P xxx] user@host:<scr_path> <dst_path>
# 从本地复制到远程
scp <scr_path> user@host:<dst_path>
解压和压缩文件
Tips:包含大量小文件的文件夹,打包/压缩后传输可极大提升传输效率。
.tar.gz文件、 .tgz文件
1
2
3
4
# .tar.gz 和 .tgz
tar -zxvf FileName.tar.gz # 解压
tar -zcvf FileName.tar.gz DirName # 压缩DirName和其下所有文件(夹)
tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径
.rar文件
1
2
3
# linux并没有自带rar,需要先下载: sudo apt install rar
rar x FileName.rar # 解压
rar a FileName.rar DirName # 压缩
.zip文件
1
2
3
# .zip文件
unzip FileName.zip # 解压
zip FileName.zip DirName # 压缩
apt
apt(Advanced Package Tool)命令是一个功能强大的命令行工具,它不仅可以更新软件包列表索引、执行安装新软件包、升级现有软件包,还能够升级整个 Ubuntu 系统(apt 是 Debian 系操作系统的包管理工具)。它的一些常用命令记录如下
- 安装包:
sudo apt install <package_name> - 安装本地的deb文件:
sudo apt install name.deb - 删除(使用
apt install安装的)包:sudo apt remove <package_name>
screen——管理你的远程程序
当本地关闭终端时,会kill掉远程在该终端运行的程序。screen工具可以将程序放入后台运行,让用户安全地在本地关闭终端。这对程序运行时间较长,但本地需要频繁开关终端的情况尤其有帮助。妈妈再也不用担心我边骑自行车边监视笔记本终端了(雾。
创建screen窗口并运行程序
打开并命名一个新的
screen窗口:screen -S <screen_name>也可直接
screen创建一个默认窗口,该窗口会获得一个自动分配的窗口名,但该窗口名不便于记忆。在该
screen窗口内运行你的程序:python a.py此时可以安全关掉该终端(或
Ctrl+a,再按下d离开该screen窗口)
恢复程序
- 查看后台运行程序:
screen -ls - 恢复某个程序,可采用两种方法:
- 根据
pid:screen -r <pid>(pid对应list前的数字) - 根据
screen窗口名:screen -r <screen_name>list中正常可恢复程序状态为
detached,若程序状态因不明原因变为attached,则无法正常恢复,此时使用screen -D -r <pid>,先踢掉前一用户,再登陆。link
- 根据
据说
nohup命令也可实现上述类似效果,而且可以将输出写入一个日志文件。需要时可以了解下。
销毁screen窗口
当前screen窗口工作完成后,在该screen窗口下执行
1
$ exit
即可销毁并退出该窗口。
其他
当screen窗口下无法上下翻行时,先按下 Ctrl+a,再按下[即可翻行。
信息查询
查看程序信息
- 查看哪些路径安装了该程序:
whereis <exe_name> - 查看默认选择的版本路径:
which <exe_name> - 查看默认选择的版本:
<exe_name> --version - 使用
pip查看程序信息总览:pip show <package_name> - 查看文件传输进度:
progress工具- github repo,可监控
cp, mv, dd, tar, gzip/gunzip, cat的进度 - 使用方法,如在终端输入
watch progress -q即可显示正在监控的进程进度
- github repo,可监控
- 查看cpu信息:
lscpu - 查看GPU信息(NVIDIA):
lspci | grep -i nvidia(如果输出版本号为十六进制数,则到The PCI ID Repository See also一栏进一步查询)nvidia-smi
- 根据进程号查看进程详细信息:
ll /proc/<PID>
查看系统信息
- 查看系统版本:
more /etc/lsb-release- or:
cat /etc/issue
- or:
其他
更改硬盘名称
参考 (在桌面环境下)Show Applications -> Disks -> select disk to change name -> setting icon -> edit filesystem -> change -> done
kworker & ksoftirqd using high CPU constantly
重新安装系统后,发现kworker和ksoftirqd持续占用80+%和20+%的内存。这个问题竟然在插入装系统的U盘后就自动消失。但是我的U盘也不能一直插在电脑上,所以找了一下解决办法,尝试有效(disable USB autosuspend)
Ubuntu 18.04 gnome-shell high CPU usage
参考 可以尝试重启gnome,做法:Alt+F2,然后在弹出的对话框中输入r,点击确认。
Linux环境变量
关于Linux的环境变量,可参考这篇
终端历史命令自动补全
- 打开
/etc/inputrc文件; - 取消
history-search-backward和history-search-forward两行前的注释。
No space left on the device
临时解决办法:去~/.cache/中删除一些缓存文件。