Linux学习记录(一):终端常用命令
此篇文章为博主在Linux学习过程中的一些记录,记录在此方便查阅。
文件系统
-
ls 显示目录内容 (list directory contents)
ls
不显示隐藏的文件和子目录ls -a
显示目录中所有的文件和子目录(包括隐藏文件)ls -l
显示目录中文件和子目录的详细信息(包括权限、大小、创建/修改时间等)ll
为ls -l
的别名(alias):https://www.cnblogs.com/kongzhongqijing/p/3488884.html
ls -lh
文件大小以KB/MB为单位- Linux统计文件夹下的文件个数
-
cd 切换目录 (change working directory)
cd -
返回上一步的目录
-
pwd 打印当前工作目录(Print Working Directionary)
-
mkdir 创建目录 (make a directory)
mkdir -p A/B
新建目录A和A中的目录B,无需mkdir两次
-
touch 用于新建文件(这可能是最基本的用法了)
touch log.txt
新建一个文本文件
-
rm 删除 (remove)
- 删除文件夹
rm -rf my_folder
删除文件夹my_folder及文件夹中的文件 (⚠️慎重使用)
- 删除文件夹
-
cp 复制 (copy)
- 复制文件夹
cp -r <source_folder> <destination_folder>
-r/-R为recursive的意思
- 复制文件夹
-
mv 移动文件/目录(可用作重命名)
- mv 移动文件夹时无需加
-r
- mv 移动文件夹时无需加
-
man 显示命令的详细使用说明,即使用手册 (manual)
-
echo 可用于在shell脚本中输出变量/常量
echo "Hello, World!" > my_file.txt
> vs >>
(output-vs-append)- echo打印字符串,需要加双引号
''my string''
-
printf 格式化输出(同C语言用法)
-
cat/head/tail: 打印文件内容/开始10行/末尾10行
-
文件夹/文件权限
- Linux查看文件读写权限
- chmod指令修改权限
- 添加可执行权限:
chmod +x xxx.sh
- https://blog.csdn.net/pythonw/article/details/80263428
chmod 777 file/dir
- 添加可执行权限:
-
df 查看磁盘可用空间 (Disk Free)
df -h
查看磁盘信息,-h
选项为根据大小适当显示(--human-readable)
-
du 显示磁盘使用情况 (Disk Usage)
du /my_dir
du -h /my_dir
du -sh /my_dir
终端(Terminal)中常用快捷键(shortcuts)
Ctrl+L
清屏(并不是真正意义上的清屏,和Windows中cls还是有差异的)Ctrl+U
清除当前命令Ctrl+A
移动到行首Ctrl+E
移动到行尾- 复制/粘贴需要按住Shift键
- 复制
Ctrl+Shift+C
- 粘贴
Ctrl+Shift+V
- 复制
解压/压缩命令
Linux上常见的压缩包类型:.zip
.7z
和 .tar
系列
-
zip文件
- 解压缩:
- 解压文件:
unzip xxx.zip
(解压速度快于解压软件) - 查看压缩包内容
unzip -l xxx.zip
无需解压文件-l list files
- 解压到指定文件夹
unzip xxx.zip -d dir_name
其中-d
为directory目录的缩写
- 解压文件:
- 压缩:
- 压缩文件:
zip archive_name.zip file1 file2 file3
- 压缩文件夹:
zip -r archive_name.zip directory_name
,其中-r
为递归处理,将指定目录下的所有文件和子目录一并处理。
- 压缩文件:
- 解压缩:
-
7z文件
- 解压
7z x abc.7z
其中abc.7z为待解压的文件
- 解压
-
tar.xz文件
- 解压
tar -xf xxx.tar.xz
- https://cloud.tencent.com/developer/article/1626115
- 解压
-
tar.gz文件
- 解压
tar -zxvf xxx.tar.gz
- 解压
-
tar.bz2文件
- 解压
tar -xvjf xxx.tar.bz2
- 参考:https://blog.csdn.net/qq_29695701/article/details/86088250
- 解压
-
.tgz文件
- 解压
tar xvf xxx.tgz
- 解压
-
.bz2文件
文件/内容查找
- 根据文件名查找文件
find ./ -name "xxx.cpp"
- 根据关键词查找文件内容
grep "关键词" -r 搜索目录
其中-r
为--recursive
的意思(即递归查询、搜索) - 文件目录中包含abc名称:
ll my_dir | grep -i abc
-i
表示ignore大小写
- 查看文件类型:
file
- 查看图像文件
- 查看
so
库文件
dos2unix my_file.txt
用于去除Windows系统文本文件末尾的^M
符号
操作系统版本相关
uname -a
或cat /proc/version
- 波浪线
~
和$HOME
均为当前用户的主目录路径
软件包安装
sudo apt-get install <package>
其中apt
为Advanced Package Tools的缩写- Linux系统apt-get安装和源码安装的区别
系统软件更新相关
sudo apt-get update
更新源/查找更新sudo apt-get upgrade
一键更新可以更新的软件- update与upgrade之间的区别:https://blog.csdn.net/get_set/article/details/50706276
NVIDIA GPU相关
nvidia-smi
查看GPU显存占用情况,参数详细说明 http://www.manongjc.com/article/64818.htmlnvidia-smi -l 2
按指定时间间隔(2s)查看GPU显存占用情况,还有第二种方法:watch -n 2 nvidia-smi
- 算力(Compute Capability)查询 https://developer.nvidia.com/cuda-gpus#collapse4
- 查看nvcc版本
nvcc --version
注意是两个--, 因为version没有缩写 - 利用
gpustat
库来监控显存占用pip install gpustat gpustat -i
线程相关
ps aux | grep PID
查看线程号为PID的线程
ps为process status(进程状态)的缩写ps -eo pid,lstart,etime,cmd | grep PID
查看线程号为PID的线程的开始时间&持续时间
注意:逗号之间不要有空格! etime 我认为是elapsed time的缩写kill -9 PID
杀死线程号为PID的线程
其中PID
为线程号- Linux线程
https://linux.cn/article-9344-1.html
Misc
nohup
不挂断地运行命令,nohup命令用于解决终端意外关闭的问题,为no hangup(挂断)的缩写- 如何使用
nohup your_cmd
,例如nohup python xxx.py
- watch指令
watch -n 2 nvidia-smi
同nvidia-smi -l 2
其中-n
为时间间隔的意思。 - 查看可执行文件所依赖的动态链接库:
ldd
(list dynamic dependencies), 参考 - alias 别名
远程文件传输scp
语法:scp [可选参数] file_source file_target
,参考链接
将本地文件复制至远程服务器:scp file username@ip:location
新建/删除用户
su
: Super User即系统管理员useradd
: 新建用户userdel
: 删除用户passwd
: 修改密码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)