本文介绍Linux中常用的命令行。
. 代表当前目录。.. 代表当前目录的上一级目录。rm 文件名:删除文件。rm -r 文件夹路径:删除文件夹及其下所有内容。rm -r /path/to/your/directory/*:删除文件夹下所有内容,但保留文件夹本身。-r 删除时会逐一确认。若使用 -rf 组合,则直接删除且无确认提示(操作需谨慎)。wget 文件地址:将文件下载到当前目录。wget --spider 文件地址:检查文件是否存在,可以测试网络状况、知晓数据大小,不实际下载。wget -P 文件夹 文件地址:将文件下载到指定文件夹。-O 参数用于重命名下载的文件。如果重命名路径中包含目录,则目录必须已存在。注意:-O 与 -P 参数冲突,若需指定路径和重命名,应使用 -O。下载提示:
?download=1 语句。https://url/dataset_files?arg1=value1&arg2=value2),建议先在桌面端通过网页下载,再从浏览器的下载记录中复制真实下载链接,以便在服务器上直接使用wget下载大文件,可节省上传时间。curl -O 文件地址:以远程文件的原始名称下载。curl -o 名称 文件地址:下载并指定本地文件名。cp source target(target可以是文件路径或目录路径)。cp -r source target。mv 当前路径 目标路径:移动文件或目录。若目标为目录,则会将源移动至该目录下。mv 现文件夹/* 目标文件夹。mkdir 目录名:创建目录。mkdir -p 目录路径:递归创建所需的上层目录,若目录已存在则不报错。cat 文件路径:在终端直接显示文件全部内容。less 文件路径:分页查看文本文件,支持搜索和翻页。head -n 1 文件名。tail -n 1 文件名。ls 目录路径:列出指定目录下的文件和一级子目录。
ls -lh:以长格式、人类可读大小列出详细信息(包含隐藏文件需加 -a 参数)。-rw-r--r-- 1 username groupname 15K Jul 18 21:36 example.txt):-普通文件,d目录,l链接等),后9字符为三组权限(所有者、所属组、其他用户)。例如:-rw-r--r-- 表示这是一个普通文件,拥有者有读和写权限,而组内成员和其他人只有读权限。-h 参数,这个大小将以人类可读的格式(KB、MB、GB等)展示)。ls -a:列出所有文件,包括隐藏文件。lsattr 文件名:显示文件的扩展属性(包括是否可以压缩(c)、是否可以进行安全删除(s)、是否可以备份(b)等)。主要用于底层文件系统管理。chattr:更改文件或目录的扩展属性。du -h 文件名:查看文件大小。du -ah --max-depth=1 目录名:查看目录及其下一级子目录/文件的大小。du -sh 目录名:仅显示目录总大小。-h:以人类可读格式输出。-a:显示目录及其中每个目录/文件的大小。-s:仅显示目录总大小,不显示子项。df 目录路径:查看指定路径所在文件系统的总空间与已用空间。df -h:以人类可读格式输出。conda clean -a~/.cache/huggingface/datasets,可执行 rm -rf ~/.cache/huggingface/datasets/ 清除。huggingface别的几个包也类似~/.cache/jedi 目录即可:rm -rf ~/.cache/jedi。pip cache purge~/.cache/torch/sentence_transformers 目录下的文件。wandb sync --cleanLinux系统通常不直接记录文件创建时间。某些文件系统(如ext4、btrfs)支持“birth time”(crtime)属性,可通过以下方式尝试查看:
sudo debugfs -R 'stat <inode>' /dev/sdaX | grep crtime,其中 <inode> 通过 ls -i 文件名 获取,/dev/sdaX 为磁盘设备。stat 文件名,若输出中包含 “Birth” 字段,则显示创建时间。若无此字段,则表明文件系统不支持。touch 文件名:若文件不存在则创建空文件;若存在则更新其访问和修改时间。scp -P 端口号 本地文件路径 用户名@IP地址:目标路径scp -P 端口号 用户名@IP地址:文件路径 本地目标路径scp -P 端口号 -r 本地目录路径 用户名@IP地址:目标路径scp -P 端口号 -r 用户名@IP地址:目录路径 本地目标路径注意:首次连接需要手动输入yes确认是否继续连接;需确认主机密钥(可以设置保存到系统中);传输过程中会显示进度和预估剩余时间(ETA, Estimated Time of Arrival)。
whereis 文件名:搜索二进制文件、源码和手册页的位置。locate 文件名:通过数据库快速查找文件(需提前更新数据库)。find:功能强大的实时搜索工具。find 路径 条件 动作find . 或 find . -print:列出当前目录及其子目录所有文件。find ./test -name "abc.txt":按文件名搜索。find ./test -name "*.php":使用通配符搜索。find ./test -type f -name 'abc*':仅搜索文件。find ./test -type d -name 'abc*':仅搜索目录。.tar:tar tf *.tar.tgz 或 .tar.gz:tar tzf *.tar.gz.tar.bz2:tar tjf *.tar.bz2tar -zxvf 压缩文件 -C 目标目录-c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件1、*.tar 用 tar –xvf 解压 2、*.gz 用 gzip -d或者gunzip 解压3、*.tar.gz和*.tgz 用 tar –xzf 解压 4、*.bz2 用 bzip2 -d或者用bunzip2 解压 5、*.tar.bz2用tar –xjf 解压 6、*.Z 用 uncompress 解压 7、*.tar.Z 用tar –xZf 解压 8、*.rar 用 unrar e解压 9、*.zip 用 unzip 解压zipinfo 压缩文件路径unzip 压缩文件路径unzip 压缩文件路径 -d 目标目录unzip 压缩文件路径 '内部文件路径' -d 目标目录bzcat *.bz2(不解压直接显示内容)。bunzip2 -v *.bz2(解压并显示详细信息)。unrar x 文件名.rar /目标/路径/top:动态查看进程信息。按 P 以CPU使用率排序,按 q 退出。top -p PID:监控指定进程。top -u 用户名:监控指定用户的进程。htop:增强的交互式进程查看器。nvidia-smi:显示NVIDIA GPU使用情况、温度、内存占用等信息。(更多CUDA管理技巧可参考我写的另一篇博文:Python深度学习的cuda管理)
pidof 进程名
ps -ef | grep 关键词:根据关键词(如用户名)过滤进程。ps aux | grep PID:根据PID查找进程及其所有者。ps -f -p PID:显示指定PID进程的完整信息。kill PID:向指定PID进程发送终止信号。KeyboardInterrupt)。lscpufree -m(以MB为单位显示)chmod u+x 脚本名.shOperation not permitted),需先解锁:chattr -i 文件名。(bash与sh的区别请见相关文档)
bash 脚本名.sh./脚本名.sh(需有执行权限)sh 脚本名.shsource 脚本名 或 . 脚本名:在当前Shell环境中执行脚本,使脚本中的变量和函数生效,常用于加载配置文件。for i in {1..5}; do echo "Iteration $i"donepython 程序路径(在对应虚拟环境中)。python -m 模块名:直接运行模块代码(在环境中通常无需python -m前缀)。gcc -o 可执行文件路径 .c文件 -Wall./可执行文件路径命令 2>&1 | tee 文件名> 会覆盖原文件,>> 会追加内容。which 命令名:在PATH环境变量中搜索命令并返回第一个找到的路径。java -versionvi 文件名 -> 按 i 进入插入模式。w保存,q退出,q!强制退出,wq保存并退出)。:set number;关闭行号::set nonumber。~/.vimrc)示例,设置4空格缩进和显示行号:set numberset ts=4set expandtabcode:启动VS Code。code .:在当前目录打开。code 文件或目录路径:打开指定项目。code --help:查看所有选项。nohup 命令 >> 日志文件 2>&1 &>> 表示追加日志,> 表示覆盖。CUDA_VISIBLE_DEVICES=0 nohup python -u 脚本.py >> log.txt 2>&1 &-u 参数禁用输出缓冲,使日志实时写入。jobs 查看,用 kill %作业号 终止。screen 或 tmux。tmux可以新建会话窗口,在后台独立运行,关闭SSH终端连接后不影响tmux窗口的运行情况。但是电脑关机也会把tmux全部关掉。
tmux 或 tmux new -s 会话名tmux attach -t 会话名tmux lstmux kill-session -t 会话名~/.tmux.conf 中添加:setw -g window-kill without-confirmation~/.tmux.conf 中添加 set -g mouse on,然后执行 tmux source-file ~/.tmux.conf。若希望关闭终端后进程继续运行:
bg %1 将其转入后台运行(fg %1 可转回前台)。disown %1 将其从Shell作业列表中移除,使其与当前会话脱离。注意:使用 disown 后,将无法再用 jobs 管理该进程。如需交互,请优先使用 tmux 或 screen。
ping 主机:测试网络连通性(默认持续进行)。traceroute 主机:显示数据包到达目标主机的路径。hostname:显示当前主机名。sudo hostname 新主机名:设置主机名(需root权限)。hostname -I:显示主机所有网络接口的IP地址。ufw status:查看防火墙状态及规则。ufw status numbered:显示带编号的规则列表。ufw disable:禁用防火墙。ufw enable:启用防火墙。cd 目录路径passwd 用户名(省略用户名则修改当前用户密码)。useradd 用户名(通常需要root权限)。clearexitsudo shutdown -h -t 秒数shasum 文件名:计算文件的SHA1校验和。shasum --algorithm 256 文件名:计算文件的SHA256校验和。export 变量名=值:设置环境变量(仅对当前终端有效)。export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/locale:查看终端编码格式。lsb_release -a:显示Linux发行版信息。
cat /etc/os-release:查看系统版本详情。
hostnamectl:显示主机名及相关系统信息。
uname -a:打印内核版本、主机名、处理器架构等系统信息。
yum install gitgit versiongit config --global user.name "用户名"git config --global user.email 邮箱mkdir 项目目录cd 项目目录git clone 仓库地址之前这个版本的Linux命令行教程不再更新:Linux常用命令行集锦(持续更新ing...)_huggingface 清缓存-CSDN博客[1]
本文撰写过程中参考了以下资料:
[1] Linux常用命令行集锦(持续更新ing...)\_huggingface 清缓存-CSDN博客: https://blog.csdn.net/PolarisRisingWar/article/details/125233887[2] Linux 命令 rm(文件管理)——想玩转linux就请一直看下去: https://baijiahao.baidu.com/s?id=1721610795606798937&wfr=spider&for=pc[3] Linux命令之rm(删除一切)\_rm删除隐藏文件\_单身bug的博客-CSDN博客: https://blog.csdn.net/qq_50424796/article/details/130158720[4] Delete a file or directory: https://www.digi.com/resources/documentation/digidocs/90002291/os/filesystem-remove-t.htm[5] 请教在linux 怎么用rm 删除目录和文件.不要提示\_百度知道: https://zhidao.baidu.com/question/1805986049937112907.html[6] Linux curl命令详解 - 都市烟火 - 博客园: https://www.cnblogs.com/duhuo/p/5695256.html[7] 【Linux】磁盘空间占用:查看某个文件或目录占用磁盘空间的大小\_Lucky@Dong的博客-CSDN博客\_linux查看文件夹占用空间: https://blog.csdn.net/zzddada/article/details/121651502[8] Linux基础教程 linux scp命令的用法详解 - 百度文库: https://wenku.baidu.com/view/104a31a03b3567ec102d8af8.html[9] linux利用scp远程上传下载文件/文件夹 | 《Linux就该这么学》: https://www.linuxprobe.com/linux-scp.html[10] Linux scp命令-菜鸟笔记: https://www.coonote.com/linux/linux-cmd-scp.html[11] 2021129:linux篇-查看压缩包里面的内容\_微风❤水墨的博客-CSDN博客\_linux查看gz文件内容: https://blog.csdn.net/lilai619/article/details/121602562[12] linux压缩文件有哪些类型 - CSDN: https://www.csdn.net/tags/MtTaUg4sMjgxOTctYmxvZwO0O0OO0O0O.html[13] Linux tar 命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-tar.html[14] Linux bunzip2命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-bunzip2.html[15] Linux tar.gz、tar、bz2、zip 等解压缩、压缩命令详解 | 菜鸟教程: https://www.runoob.com/w3cnote/linux-tar-gz.html[16] bunzip2\_百度百科: https://baike.baidu.com/item/bunzip2/495899[17] Linux如何查看文件内容?Linux常用命令\_ITPUB博客: http://blog.itpub.net/69952527/viewspace-2777822/[18] linux wget指定下载目录和重命名\_mob604756f56fd6的技术博客\_51CTO博客: https://blog.51cto.com/u_15127595/3535142[19] Linux cp 命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-cp.html[20] Linux ps 命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-ps.html[21] linux -- 进程的查看、进程id的获取、进程的杀死 - goodup - 博客园: https://www.cnblogs.com/hf8051/p/4494735.html[22] htop与top的区别\_热气球、的博客-CSDN博客\_htop和top: https://blog.csdn.net/weixin_42506599/article/details/105484230[23] Linux命令之touch命令\_恒悦sunsite的博客-CSDN博客\_linux touch: https://blog.csdn.net/carefree2005/article/details/122468099[24] Linux命令手册 - shasum命令手册,shasum命令详解: https://www.linux-man.cn/command/shasum/[25] 服务器后台运行程序(nohup/screen/tmux)\_zeronose的博客-CSDN博客\_服务器后台运行: https://blog.csdn.net/zeronose/article/details/122263384[26] Tmux 使用教程 - 阮一峰的网络日志: http://www.ruanyifeng.com/blog/2019/10/tmux.html[27] tmux无法使用鼠标滚轮滚动页面\_小xing在北方的博客-CSDN博客: https://blog.csdn.net/qq_51714354/article/details/124384655[28] Linux终端复用神器-Tmux使用梳理 - 散尽浮华 - 博客园: https://www.cnblogs.com/kevingrace/p/6496899.html[29] tmux 快捷键 不起作用\_kpiss的博客-CSDN博客\_tmux快捷键不能用: https://blog.csdn.net/svap1/article/details/39694713[30] tmux 命令快速入门\_tmux 删除\_lMasterSparkl的博客-CSDN博客: https://blog.csdn.net/lMasterSparkl/article/details/127775742[31] python将控制台输出保存至文件的方法 - 经验笔记: https://www.nhooo.com/note/qag8fd.html[32] 如何在 Linux 下查看进程是以哪个用户身份在运行的?\_surfirst的博客-CSDN博客\_linux查看进程用户: https://blog.csdn.net/surfirst/article/details/125581527[33] mkdir -p的用法\_Christo3的博客-CSDN博客: https://blog.csdn.net/weixin_41552975/article/details/122426076[34] 阿里云ECS服务器Linux创建新用户\_zhangvalue的博客-CSDN博客: https://blog.csdn.net/zhangvalue/article/details/104259255[35] 阿里云GPU服务器配置深度学习环境-远程访问-centos,cuda,cudnn,tensorflow,keras,jupyter notebook - 医疗兵皮特儿 - 博客园: https://www.cnblogs.com/Mjerry/p/9942498.html[36] 在Linux下简单编写、编译并执行一个C语言程序\_编写linux操作系统下可编译执行的一段c语言程序,包括二进制文件的创建、读写和关\_知Hu·醉卧沙场的博客-CSDN博客: https://blog.csdn.net/ZR_Lang/article/details/17080335[37] Linux lsattr命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-lsattr.html[38] Linux 输出重定向>和>>的区别\_吃鱼的羊的博客-CSDN博客\_linux重定向是创建文件还是: https://blog.csdn.net/hellojoy/article/details/77338286[39] python -m详解\_python-m\_洛蕾的博客-CSDN博客: https://blog.csdn.net/qq_45562973/article/details/122678347[40] Linux export命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-export.html[41] Jedi cache 1.5G · Issue #957 · davidhalter/jedi: https://github.com/davidhalter/jedi/issues/957[42] Linux vi/vim | 菜鸟教程: https://www.runoob.com/linux/linux-vim.html[43] Linux useradd 命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-useradd.html[44] Linux passwd命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-passwd.html[45] Linux scp命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-scp.html[46] tmux如何将内容复制到系统clipboard? - 知乎: https://www.zhihu.com/question/52120702[47] Linux traceroute命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-traceroute.html[48] Linux kill命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-kill.html[49] Linux find命令 - kennminn - 博客园: https://www.cnblogs.com/minn/p/9986188.html[50] Linux find 命令 | 菜鸟教程: https://www.runoob.com/linux/linux-comm-find.html[51] Linux 系统 less命令详解\_linux less命令\_大家都说我身材好的博客-CSDN博客: https://blog.csdn.net/u012581020/article/details/131637698[52] vi 怎么显示行号-百度经验: https://jingyan.baidu.com/article/e75aca852741a4142edac6fc.html[53] vim指令操作大全\_\_大太阳\_的博客-CSDN博客: https://blog.csdn.net/w144215160044/article/details/124532954[54] Linux lsb\_release 命令用法详解-Linux命令大全(手册): https://ipcmen.com/lsb_release[55] ubuntu版本查看命令 - Python技术站: https://pythonjishu.com/zheqkgmnjo/[56] Linux命令(61)之pidof\_linux pidof-CSDN博客: https://blog.csdn.net/z19861216/article/details/131779209[57] hostname command in Linux with examples - GeeksforGeeks: https://www.geeksforgeeks.org/hostname-command-in-linux-with-examples/[58] chmod: changing permissions of ‘xxx‘: Operation not permitted\_dockerfile chmod changing permission-CSDN博客: https://blog.csdn.net/a13568hki/article/details/126521692[59] 为什么chmod: changing permissions of'/ etc/ sysctl. conf': Operation not permitted\_百度知道: https://zhidao.baidu.com/question/467703397706410525.html
