常用的命令及快捷键
本文最后更新于 2025年1月8日 上午
本文主要分享了自己在使用Linux和Windows系统及各种软件过程中常用的命令及快捷键。
注意中文
—
和英文字符-
Linux
Win = Super
快捷键
一般
快捷键 | 作用 |
---|---|
Win+L | 锁屏 |
Ctrl+Alt+T | 新建终端 |
Ctrl+Alt+A(自定) | flameshot 截图 |
Ctrl+Alt+F(自定) | fsearch 搜索文件 |
Ctrl+Shift+N | 新建文件夹 |
Win+I(自定义) | 打开设置中心 |
Ctrl+L | 全选文件夹路径 |
F2 | 文件(夹)重命名 |
Win | 活动大纲 |
Win+Tab/Alt+Tab | 切换应用程序 |
Ctrl+Alt+上/下箭头,点击桌面左上角的“Activities” | 切换工作区(同一屏幕的全部内容) |
Alt+Enter | 查看选择文件/文件夹的属性,代替单击右键选择属性 |
Ctrl+1/2 | 改变文件夹视图查看方式,图标视图/列表视图 |
Ctrl+H | 显示隐藏文件 |
双击Ctrl(自定) | 打开uTools |
启动位于任务栏的程序 | Win + 数字键 |
窗口
快捷键 | 作用 |
---|---|
Win+E(自定义) | 新建文件夹窗口 |
win+H | 隐藏窗口 |
Win+D | 隐藏或显示全部应用窗口 |
Win+A | 显示应用程序菜单 |
Super+箭头 | 移动窗口位置(左/右:贴左/右;上:最大化;下:恢复) |
Ctrl+W | 关闭标签页 |
Ctrl+Q/Alt+F4 | (强制)关闭应用程序(窗口)。ALT+F4是基于任务管理器连接结束进程项,CTRL+Q只是关闭的快捷键 |
Alt+空格(自定) | 激活窗口菜单(内含置顶选项,也适用于没有系统标题栏的应用) |
Win+Shift+向上/下翻页 | 将窗口上/下移一个工作区 |
Win+Shift+上/下/左/右箭头 | 将窗口上/下/左/右移一个显示器 |
Alt+F7(自定义) | 使用键盘方向键移动窗口,按住Shift键快速贴边,按Enter键确认 |
目录
快捷键 | 作用 |
---|---|
Backspace | 返回上一级目录 |
Alt+左箭头 | 回退(搭配Backspace回到下一级目录) |
Alt+右箭头 | 前进(只能响应回退操作) |
打开文件夹之后,按backspace删除键就可以返回上一级;或者Alt+←也是可以返回上一级,用Alt+←返回上一级后,按Alt+→键就可以倒退回去一级。
鼠标
- 直接拖拉在最大化时的窗口标题可以还原窗口大小,再拖放回去就最大化。
- 在音量控制处用鼠标滚轮滚动可以直接调整音量,在任务栏中滚动滚轮可以切换任务栏,工作区则切换工作区。
- 工作区里的小窗口可以在不同工作区内拖拉,即移动到另一个工作区的功能。
- 按住
Shift
拖动窗口可以吸附上下边缘的移动。 - 水平滚动文件,请在按住
Shift
的同时转动鼠标滚轮。 - 双击选中词,三击选中整句。
- 按住Alt,鼠标可以选中带链接的内容(而不打开链接)。
- 按住Shift,鼠标在开头和结尾点击,可以选中全文(不用拖动了)。
- 拖动选中可直接完成复制粘贴的操作(对于某些禁止复制粘贴的网站)。
- 在Win11,按住Shift,点击鼠标右键,呼出旧版菜单。
- 鼠标中间有快捷关闭的功能。
路径
-
对于在
.zshrc
等文件中使用export
命令时,举例说明:1
2
3
4
5export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/melodic/lib:/path/else
export PATH=/home/uusama/mysql/bin:$PATH
# 例如新增LD_LIBRARY_PATH,注意
# 1. 使用$LD_LIBRARY_PATH来引用前面定义的LD_LIBRARY_PATH,防止后面的覆盖掉了前面的。
# 2. 路径之间用英文:分隔,中间不需要加空格。系统查找命令时按照冒号分割顺序从前向后依次查找。
配置路径的文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19sudo updatedb # 更新数据库
sudo gedit ~/.bashrc
source ~/.bashrc
sudo gedit ~/.zshrc
source ~/.zshrc
sudo gedit /etc/profile # 此文件涉及系统的环境,即环境变量相关。这里修改会对所有用户起作用。
# 不能对zsh直接生效?需要在命令行里运行一遍source ~/.zshrc才能生效。
source /etc/profile # 让环境变量生效
sudo gedit /etc/ld.so.conf.d/opencv.conf
sudo ldconfig # 运行配置
sudo gedit /etc/ld.so.conf
sudo ldconfig # 运行配置
sudo gedit /etc/bash.bashrc
source /etc/bash.bashrc -
Ubuntu快捷方式图标的存放位置:
/usr/share/applications
/usr/share/icons/Mojave-CT-Night/mimes/scalable
-
打开回收站:
1
cd ~/.local/share/Trash/files
-
wine软件安装路径:
/home/lll25655/.wine/drive_c/'Program Files (x86)'
-
打开eDiary:
1
wine /home/lll25655/.wine/drive_c/'Program Files (x86)'/eDiary-4.2.2-win64/eDiary.exe
-
第三方库库默认安装路径
-
/usr/include
-
/usr/local/include
-
-
字体安装路径:
/usr/share/fonts
命令
软件、库的安装、卸载和升级
1 |
|
优先级:
- < 0:永远不会安装,
- 1..99:仅当尚未安装其他版本的软件包时才会安装,
- 100..499:仅当其他发行版中没有安装或提供其他更新版本时才会安装,
- 500....989:仅当目标发行版中没有安装或没有更新的版本时才会安装,
- 990..1000:将安装,除非安装的版本较新,
- > 1000:将始终安装,即使它强制 APT 降级到旧版本。
默认情况下,每个已安装的软件包版本的优先级为 100,未安装的软件包的优先级为 500。同一软件包可能有多个不同优先级的版本。APT 会安装优先级较高的版本,除非安装的版本较新。
查找查看
辅助搭配
Linux
grep
(global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。
1
ls -l /usr/local | grep cuda # 查询`/usr/local`路径下的软链接,且要求包括`cuda`字符串。
常用选项::
-i
:忽略大小写进行匹配。-v
:反向查找,只打印不匹配的行。-n
:显示匹配行的行号。-r
:递归查找子目录中的文件。-l
:只打印匹配的文件名。-c
:只打印匹配的行数。
当前终端
1 |
|
环境变量
1 |
|
内存
1 |
|
文件系统和挂载点
1 |
|
文件(夹)大小
1 |
|
文件(夹)修改时间
1 |
|
版本信息
1 |
|
用户手册
Linux man 命令是 "manual" 单词的缩写,用于查看各种命令、函数和配置文件的手册页面。
1 |
|
查找文件
1 |
|
目录列表
1 |
|
文件内容
1 |
|
查找过去编辑的文件
1 |
|
历史命令
1 |
|
文件新建、复制、移动、重命名和删除
基本
处理(特别是包含众多小文件的)大文件夹推荐使用[rsync](# rsync)命令。
1 |
|
rsync
基本语法
1 |
|
-a
,--archive
: 归档模式,表示以递归的方式传输文件,并保持所有文件属性不变--delete
: 删除那些target中有而source没有的文件--exclude
: 指定排除不进行同步的文件,比如--exclude="*.iso"
。-h
: 以人类可读的格式输出。--progress
: 显示进度-v
: 详细输出模式
用法
rsync
命令不仅可以传输文件夹,还可以传输单个文件。
复制/移动大文件夹
本机使用 rsync 命令时,可以作为cp
和mv
命令的替代方法,将源目录同步到目标目录。
1 |
|
删除大文件夹
在删除包含许多小文件的大文件夹时,可以考虑使用rsync
命令,以提高删除速度。以下是具体步骤:
- 使用
rsync
将文件夹同步为空目录,达到快速删除文件的效果。 - 删除空目录。
具体命令如下:
1 |
|
请替换/path/to/your/folder/
为你要删除的文件夹的实际路径。
增量备份
rsync 的最大特点就是它可以完成增量备份,也就是默认只复制有变动的文件。
除了源目录与目标目录直接比较,rsync 还支持使用基准目录,即将源目录与基准目录之间变动的部分,同步到目标目录。
具体做法是,第一次同步是全量备份,所有文件在基准目录里面同步一份。以后每一次同步都是增量备份,只同步源目录与基准目录之间有变动的部分,将这部分保存在一个新的目标目录。这个新的目标目录之中,也是包含所有文件,但实际上,只有那些变动过的文件是存在于该目录,其他没有变动的文件都是指向基准目录文件的硬链接。
--link-dest
参数用来指定同步时的基准目录。
1 |
|
上面命令中,--link-dest
参数指定基准目录/compare/path
,然后源目录/source/path
跟基准目录进行比较,找出变动的文件,将它们拷贝到目标目录/target/path
。那些没变动的文件则会生成硬链接。这个命令的第一次备份时是全量备份,后面就都是增量备份了。
下面是一个脚本示例,备份用户的主目录。
1 |
|
上面脚本中,每一次同步都会生成一个新目录${BACKUP_DIR}/${DATETIME}
,并将软链接${BACKUP_DIR}/latest
指向这个目录。下一次备份时,就将${BACKUP_DIR}/latest
作为基准目录,生成新的备份目录。最后,再将软链接${BACKUP_DIR}/latest
指向新的备份目录。
mkcd
将mkdir
和cd
命令合并为一个mkcd
命令:
1 |
|
这个函数接受一个参数($1
),首先使用mkdir -p
命令创建一个目录,然后使用cd
命令进入这个目录。-p
选项可以确保如果目录已经存在,mkdir
命令不会报错。
你可以将这个函数添加到你的bash配置文件(如~/.bashrc
或~/.bash_profile
)中,这样每次打开一个新的终端时,这个函数都会被定义。
使用这个函数的方式如下:
1 |
|
这将创建一个名为new_directory
的新目录,并立即进入这个目录。
下载
测试网络连接:
1ping www.baidu.com
wget
1 |
|
下载超时,尝试添加参数
--no-cookie --no-check-certificate
。
curl
1 |
|
目录(跳转)
1 |
|
-
把目录结构信息保存到文本中,树状图:
1
tree > /home/luke/tree.txt
-
在终端打开文件管理器:
nautilus
或xdg-open
[空格]目标路径。1
2
3
4
5nautilus /path/to/directory # or
xdg-open /path/to/directory
# 打开当前终端所在目录
nautilus . # or
xdg-open .
压缩解压缩
zip
1 |
|
tar
.tar.gz = .tgz
1 |
|
-c
: 创建新的归档文件-z
: 使用 gzip 压缩归档文件-v
: 显示详细输出,列出被添加到归档中的文件-f
: 指定归档文件的名称
tar.xz
1 |
|
xz的参数:
-z, --compress
: 强制压缩-d, --decompress
: 强制解压-k, --keep
: 保留(不删除)输入文件
pigz
1 |
|
设置文件权限
chmod命令的语法
指令名称:chmod
使用权限:所有使用者
使用方式:chmod [-cfvR] [--help] [--version] mode file...
参数格式:
u
:表示该档案的拥有者。g
:表示与该档案的拥有者属于同一个群体(group)者。o
:表示其他以外的人。a
:表示这三者皆是。+
:表示增加权限。-
:表示取消权限。=
:表示唯一设定权限。r
:表示可读取。w
:表示可写入。x
:表示可执行。X
:表示只有当该档案是个子目录或者该档案已经被设定过为可执行。R
:对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
1 |
|
此外chmod
也可以用数字来表示权限,语法为:chmod abc file
,其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
一般是三个数字:
- 第一个数字表示文件所有者的权限。
- 第二个数字表示与文件所有者同属一个用户组的其他用户的权限。
- 第三个数字表示其它用户组的权限。
权限分为三种:读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。
所以,chmod 755
设置用户的权限为:
- 文件所有者可读可写可执行
- 与文件所有者同属一个用户组的其他用户可读可执行
- 其它用户组可读可执行
777就是rwxrwxrwx,意思是该登录用户(可以用命令id查看)、他所在的组和其他人都有最高权限。
chmod 4755
与chmod 755
的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。具有root的权限。
chmod a=rwx file
和chmod 777 file
效果相同。
chmod ug=rwx,o=x file
和chmod 771 file
效果相同。
1 |
|
root用户把某个文件权限给到普通用户
1 |
|
软/硬链接
区别
- 硬链接:
- 对源文件创建硬链接,修改源文件,被硬链接的文件也会被修改;修改被硬链接的文件,源文件也会被修改。
- 删除源文件,被硬链接的文件不受影响,因为硬链接和源文件指向相同的文件数据,只有当所有指向该数据的链接都被删除时,文件数据才会被删除。
- 不允许给目录创建硬链接。
- 硬链接只有在同一个文件系统中才能创建。(例如,电脑文件硬链接不到 U 盘)
- 软链接:
- 对源文件创建软链接,类似于对源文件创建快捷方式。
- 删除源文件,软链接会失效,因为软链接只是指向源文件路径的引用。
- 软链接可以对目录进行链接。
- 软链接可以跨文件系统 ,硬链接不可以。
总结:
- 硬链接:多个文件名指向同一个文件数据,删除其中一个文件名不会影响文件数据的存在。
- 软链接:一个文件名指向另一个文件名,删除源文件会导致软链接失效。
创建
1 |
|
-s
: 软链接(符号链接)-v
: 显示详细的处理过程
1 |
|
如果为源文件创建的目标(硬)链接是文件夹,则会在该文件夹下创建于源文件同名的文件。
你可以使用 find
命令结合 ln
命令来为指定目录下的所有文件在另一个目录下创建硬链接。以下是一个示例脚本,假设你要为 source_dir
目录下的所有文件在 target_dir
目录下创建硬链接:
1 |
|
以下是如何在Python中创建硬链接和软链接的示例代码:
创建硬链接:
1 |
|
创建软链接:
1 |
|
查看
-
软链接:
1
ll
-
硬链接。在Linux终端中,可以使用ls命令配合-i选项来查看文件的inode号,从而识别硬链接。所有具有相同inode号的文件都是同一个文件的硬链接。以下是具体步骤:
1
2
3
4
5# 使用ls -i命令查看文件的inode号:
ls -i file1
# 使用find命令查找具有相同inode号的所有文件:
find . -inum <inode_number> # . 表示载当前目录及其子目录下进行查找,可以换成其它指定目录。
# 这样,你就可以看到所有指向同一个inode的硬链接文件。
硬盘
挂载硬盘
1 |
|
其中,
/dev/sdX1
是U盘的设备名,你可以使用lsblk
或fdisk -l
命令来查找U盘的设备名。例如,插入硬盘前后,使用
lsblk
发现新增:
1
2sdc 8:32 0 7.3T 0 disk
└─sdc1 8:33 0 7.3T 0 part
硬盘类型
在Linux系统上,可以使用以下命令来查看硬盘是机械硬盘(HDD)还是固态硬盘(SSD):
1 |
|
将sdX
替换为硬盘的设备名,比如sda
。如果输出是1
,则表示是机械硬盘;如果输出是0
,则表示是固态硬盘。
除了查看/sys/block
目录下的信息外,你还可以使用lsblk
命令结合-o
选项来获取更多详细信息,包括硬盘类型:
1 |
|
lsblk
列出所有块设备。-d
选项只显示磁盘本身,不显示其分区。-o
选项指定要显示的列,其中name
表示设备名,rota
表示是否是旋转设备(0表示固态硬盘,1表示机械硬盘)。
通过这种方式,你可以在一个命令中看到所有硬盘的类型。
模拟鼠标键盘
https://github.com/jordansissel/xdotool
作用:xdotool
允许您以编程方式(或手动)模拟键盘输入和鼠标活动、移动窗口和调整窗口大小等。
用户文档:https://github.com/jordansissel/xdotool/blob/master/xdotool.pod
安装
- Debian and Ubuntu:
apt-get install xdotool
- Fedora:
dnf install xdotool
- FreeBSD:
pkg install xdotool
- macOS:
brew install xdotool
orsudo port install xdotool
- OpenSUSE:
zypper install xdotool
使用
xdotool 支持在一次调用中运行多个命令。
在 GNOME 终端中使用
xdotool key Ctrl+c
是成功的,使用xdotool key Ctrl+C
是失败的(xdotool key ctrl+c
在 ROS 下失败),关键在于字母c
要小写。在 Terminator 窗口下没有此现象。因此,干脆没有特殊要求就直接用小写吧。
帮助
1 |
|
键盘
1 |
|
模拟打字并按回车键:
1
2
xdotool type "s
"
1 |
|
1 |
|
鼠标
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
窗口
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
sleep
Linux sleep命令可以用来将目前动作延迟一段时间。
1 |
|
--help
: 显示辅助讯息--version
: 显示版本编号number
: 时间长度,后面可接 s、m、h 或 d。其中 s 为秒,m 为 分钟,h 为小时,d 为日数
1 |
|
后台运行
有时,您需要执行一个即使在您注销终端会话后也会继续运行的命令。nohup
(无挂起)命令允许您在后台运行进程而不会中断。例如,使用nohup long_running_command &
在后台启动命令,即使在关闭终端后也能保持其运行。此功能对于执行需要在没有持续监督的情况下持续存在的冗长任务或脚本特别有价值。
并行运行
1 |
|
定时关机
https://www.runoob.com/linux/linux-comm-shutdown.html
1 |
|
参数说明:
- -t seconds : 设定在几秒钟之后进行关机程序。
- -k : 并不会真的关机,只是将警告讯息传送给所有使用者。
- -r : 关机后重新开机。
- -h : 关机后停机。
- -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
- -c : 取消目前已经进行中的关机动作。
- -f : 关机时,不做 fsck 动作(检查 Linux 档系统)。
- -F : 关机时,强迫进行 fsck 动作。
- time : 设定关机的时间。
- message : 传送给所有使用者的警告讯息。
1 |
|
1 |
|
小贴士
Linux顺序执行多行命令
- 分号
;
- 没有任何逻辑关系的连接符。当多个命令用分号连接时,各命令之间的执行成功与否彼此没有任何影响,都会一条一条执行下去。
- 逻辑或
||
- 当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行。
- 逻辑与
&&
- 当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与
||
正好相反。
- 当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与
- 管道符
|
- 当用此连接符连接多个命令时,前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。
在Linux中使用AppImage
-
使其可执行。右键-属性-权限-允许将文件作为程序执行;或,命令行执行:
1
2
3
4chmod u+x <AppImage File>
# u user 文件所有者
# + 为指定的用户类型增加权限
# x 执行权限 设置为可执行权限 -
运行 AppImage 文件。使 AppImage 文件可执行后,只需双击它即可运行它。它将看到该软件正在运行,就像您在系统上安装它一样;或,命令行执行:
1
./app.appimage # sudo
-
卸载 AppImage 软件。由于从未安装过该软件,因此无需“卸载”它。只需删除关联的 AppImage 文件,您的软件就会从系统中删除。
其它
-
Linux diff 命令用于比较文件的差异。
diff
以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff
会比较目录中相同文件名的文件,但不会比较其中子目录。 -
指令需要root权限,要么命令前加
sudo
进行提权,要么以root
身份执行。1
2
3
4
5
6
7
8
9
10
11
12
13
14# Ubuntu 首次进入 root 用户模式
# 开启一个新的终端
# 设置 root 用户密码(Linux下输入的密码默认不会显示出来)
sudo passwd root
# 输入一个新的密码: yourpassword
# 请在确认一遍密码: yourpassword
# 切换到root用户
su root
# 输入刚刚设置的密码
# 退出root用户
exit -
$
表示普通用户,#
表示root用户。 -
定义环境变量:
1
2sudo gedit ~/.bashrc
export OPENAI_API_KEY={Your OpenAI API Key here} -
timeout
是用来控制程序运行的时间,运行指定的命令。如果在指定时间后仍在运行,则杀死该进程。1
2
3
4
5timeout 5s ping www.baidu.com # 5分钟之后终止ping操作
s : 秒 (默认)
m : 分钟
h : 小时
d : 天 -
等等。
小贴士
- 直接在当前文件夹窗口打字,可以搜索该目录及子目录下的文件(夹)。按
ESC
键退出。 Application
键即位置在键盘上右Ctrl
键左边的那个键,作用相当于单击鼠标右键。- 误按
Ctrl+Alt+F7
(进入文字界面)黑屏后按Ctrl+Alt+F1
回到图形界面。 - 直接将"文件管理器"中的文件拖到"终端"中就可以在终端中得到完整的路径名。
终端Terminal
命令行解释器Shell
终端负责是从用户这里接收输入(键盘、鼠标等输入设备),扔给 Shell,然后把 Shell 返回的结果展示给用户(比如通过显示器)。而 Shell 负责从终端那里拿到用户输入的命令,解析后交给操作系统内核去执行,并把执行结果返回给终端。
Bash
快捷键 | 作用 |
---|---|
Tab | zsh自动补全 |
Ctrl+C | 终止进程/命令 |
Ctrl+V | 插入特殊字符。当你按下Ctrl+V后,终端会等待你输入下一个字符,然后将其ASCII值插入到当前位置。例如,如果你按下Ctrl+V然后按Enter,终端将插入一个表示换行的特殊字符。 |
Shift+Ctrl+C | 复制 |
Shift+Ctrl+V | 粘贴 |
Shift+Ctrl+F | 查找 |
Shift+Ctrl+T | 新建标签页 |
Shift+Ctrl+N | 新建同路径窗口 |
Shift+Ctrl+W | 关闭标签页 |
Shift+Ctrl+Q | 关闭窗口 |
Ctrl+A | 光标移动到开始位置 |
Ctrl+E | 光标移动到最末尾 |
Ctrl+K | 删除此处至末尾的所有内容 |
Ctrl+U | 删除此处至开始的所有内容 |
Ctrl+W | 当在控制台或一个xterm窗口敲入文本时, CTRL+W 会删除从在光标处往后(回)的第一个空白符之间的内容。在某些设置里, CTRL+W 删除光标往后(回)到第一个非文字和数字之间的字符。 |
Ctrl+L | 相当于clear,即清屏 |
Ctrl+Y | 将之前已经清除的文本粘贴回来(主要针对CTRL+U或CTRL+W)。 |
Ctrl+S | 冻结终端 |
Ctrl+Q | 解冻终端 |
Ctrl+T | 将光标位置的字符和前一个字符进行位置交换 |
Ctrl+R | 以交互方式搜索命令历史记录 |
Ctrl+PGUP/PGDN | 切换到上/下一个标签页 |
Terminator
更方便的终端,区别于默认GNOME终端。
快捷键
快捷键 | 作用 |
---|---|
Ctrl+Shift+E | 垂直分割窗口 |
Ctrl+Shift+O | 水平分割窗口 |
F11 | 全屏 |
Ctrl+Shift+C | 复制 |
Ctrl+Shift+V | 粘贴 |
Shift+Ctrl+W | 关闭(当前)终端 |
Shift+Ctrl+Q | 关闭窗口 |
Ctrl+Shift+N/Ctrl+Tab | 在分割的各窗口之间切换 |
Alt+Up/Down/Left/Right | 移动到上/下/左/右边的终端 |
Ctrl+Shift+Up/Down/Left/Right | 在水平/垂直分割的终端中将分割条向上/下/左/右移动 |
Ctrl+Shift+X | 将分割的某一个窗口放大至全屏使用 |
Ctrl+Shift+Z | 从放大至全屏的某一窗口回到多窗格界面 |
选中即复制,鼠标中键粘贴。对于单词,双击即可选中,三击选中一行。
配置
修改打开的窗口的默认大小:
1 |
|
修改 layouts - default - window0 - size(没有就新增)(对应的是像素值)
1 |
|
保存,关闭文件。关闭所有终端后,再重新打开就应用更改了。
zsh
特性
- 色彩高亮:不同的颜色表明当前命令的类型,并且路径有无下划线表示路径是否存在。
- 智能补全:在使用cd切换路径时,按下tab会列出当前目录下的目录和文件,如果是bash,它会提示你手动输入,但是zsh中你可以继续按一下tab进入选择模式,继续使用tab选择,或者使用方向键选择目标目录而不需手动输入。
- 按键盘右方向键
->
直接确定整个补全提示。Ctrl+->
按整词顺序依次确定。 d
命令“回车”后,会列出我们最近进入的目录历史,并且会给这些目录加上序号,只需要输入对应目录的序号,即可重新进入该目录。
插件
路径:~/.oh-my-zsh/plugins
1 |
|
-
zsh-autosuggestions————命令提示/补全。提示和补全有不同实现机制,好用之处在于补全,输入命令会根据输入的历史自动补全,并且随着输入不断修正,如果补全是你期望的结果,按下右方向键接受,再回车即可。
如果你用缓冲区末尾的光标按下→ key (forward-char widget)或 End (End-of-line widget) ,它就会接受这个建议,用这个建议替换命令行 buffer 的内容。
配置:
-
当您键入命令时,您将看到在光标之后提供的一个柔和的灰色的完成。可以通过设置
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE
变量来更改此颜色。默认值是
fg = 8
,它将从256色调色板中将前景色设置为8色。如果您的终端只支持8种颜色,您将需要使用一个介于0和7之间的数字。还可以设置背景颜色,建议可以设置粗体、下划线或突出。例如,这将在青色背景上显示带有粗体、下划线、粉红色文字的建议:
1
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ff00ff,bg=cyan,bold,underline"
-
等等。
-
-
autojump:这个插件会自动统计我们经常cd的目录,不同目录会有不同的权重。在我们想要进入某个目录时,使用
j <dir-name>
即可以帮助我们快速跳转到目标目录。 -
extract:将各种解压命令集合成使用
x <archived file>
来提取压缩文件。 -
sudo:双击两次
ESC
自动在句首添加sudo
。
报错
-
zsh: corrupt history file /home/XXX/.zsh_history
1
2
3
4
5
6
7
8
9# 解决:
cp .zsh_history zsh_history
rm -f .zsh_history
strings zsh_history .zsh_history
# 或
cd ~
mv .zsh_history .zsh_history_bad
strings .zsh_history_bad > .zsh_history
fc -R .zsh_history -
等等。
Powerlevel10k
下面都是以Oh My Zsh框架为例,其它方式详见Powerlevel10k官方文档。
安装
-
克隆仓库:
1
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k # for Oh My Zsh
-
Set
ZSH_THEME="powerlevel10k/powerlevel10k"
in~/.zshrc
.
(重新)配置:
1 |
|
配置向导根据您的偏好创建 ~/.p10k.zsh
。可以通过编辑此文件来完成其他提示自定义。它有大量注释可以帮助您浏览配置选项。
例如:
-
配置终端路径显示层数:
1
2
3
4
5
6
7
8
9
10
11# If set to "first" ("last"), remove everything before the first (last) subdirectory that contains
# files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is
# /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first)
# or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers
# and other directories don't.
#
# Optionally, "first" and "last" can be followed by ":<offset>" where <offset> is an integer.
# This moves the truncation point to the right (positive offset) or to the left (negative offset)
# relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0"
# respectively.
typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=first:-1 # default false默认显示全路径,现在配置成了显示倒数两个文件夹。
更新
-
更新仓库:
1
git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull # for Oh My Zsh
-
更新 Powerlevel10k 后重新启动 Zsh。不要使用
source ~/.zshrc
。
卸载
-
从
~/.zshrc
中删除所有对“p10k”的引用。您可能会在顶部看到此片段:1
2
3if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi底部是这样的:
1
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
这些是由配置向导添加的。删除它们。
-
从
~/.zshrc
、~/.zpreztorc
和~/.zimrc
中删除所有对“powerlevel10k”的引用(其中一些文件可能会丢失 - 这是正常的)。这些引用是您在安装 Powerlevel10k 时手动添加的。如果需要提醒,请参阅安装说明。 -
验证所有对“p10k”和“powerlevel10k”的引用均已从
~/.zshrc
、~/.zpreztorc
和~/.zimrc
中消失:1
grep -E 'p10k|powerlevel10k' ~/.zshrc ~/.zpreztorc ~/.zimrc 2>/dev/null
如果此命令产生输出,则仍然引用“p10k”或“powerlevel10k”。你需要删除它们。
-
删除Powerlevel10k配置文件。该文件由配置向导创建,可能包含您自己的手动编辑。
1
rm -f ~/.p10k.zsh
-
删除Powerlevel10k源文件。这些文件已在您安装 Powerlevel10k 时下载。删除它们的命令取决于您选择的安装方法。如果需要提醒,请参阅安装说明。
1
rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k # for Oh My Zsh
-
重新启动 Zsh。不要使用
source ~/.zshrc
。 -
删除 Powerlevel10k 缓存文件:
1
rm -rf -- "${XDG_CACHE_HOME:-$HOME/.cache}"/p10k-*(N) "${XDG_CACHE_HOME:-$HOME/.cache}"/gitstatus
-
完成。
导出配置文件
bash
1 |
|
zsh
1 |
|
gnome-terminal
1 |
|
报错:
-
错误:密钥文件不以组开头
-
原因: .dconf 文件的引导行是问题所在:
default='...'
-
解决:用这个替换引导线似乎使它可以加载:
[/]
因此,如果它有帮助,您尝试加载的文件应具有如下所示的格式。请注意标题中的列表项与下面的条目一一对应。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25[/]
list=['22cb430e-3fde-42cb-a167-cc35a6b788cc', '4b1f055e-9bc4-4b58-bb12-eb5657db78fc']
[:22cb430e-3fde-42cb-a167-cc35a6b788cc]
audible-bell=false
background-color='rgb(255,255,221)'
cursor-shape='ibeam'
foreground-color='rgb(0,0,0)'
palette=['rgb(46,52,54)', 'rgb(204,0,0)', 'rgb(58,43,143)', 'rgb(196,160,0)', 'rgb(52,101,164)', 'rgb(117,80,123)', 'rgb(6,152,154)', 'rgb(211,215,207)', 'rgb(85,87,83)', 'rgb(239,41,41)', 'rgb(150,52,226)', 'rgb(252,233,79)', 'rgb(114,159,207)', 'rgb(173,127,168)', 'rgb(52,226,226)', 'rgb(238,238,236)']
use-theme-colors=false
visible-name='light'
[:4b1f055e-9bc4-4b58-bb12-eb5657db78fc]
audible-bell=false
background-color='rgb(0,0,0)'
background-transparency-percent=17
cursor-shape='ibeam'
font='Monospace 12'
foreground-color='rgb(172,228,255)'
palette=['rgb(46,52,54)', 'rgb(175,95,255)', 'rgb(0,102,255)', 'rgb(196,160,0)', 'rgb(255,7,168)', 'rgb(117,80,123)', 'rgb(6,152,154)', 'rgb(211,215,207)', 'rgb(85,87,83)', 'rgb(235,148,255)', 'rgb(0,229,255)', 'rgb(252,233,79)', 'rgb(114,159,207)', 'rgb(173,127,168)', 'rgb(52,226,226)', 'rgb(238,238,236)']
use-system-font=true
use-theme-colors=false
use-theme-transparency=false
use-transparent-background=true
visible-name='hi'
Terminator
1 |
|
Powerlevel10k
1 |
|
小技巧
Shell脚本一次性启动多个程序(对应多个终端)
经常开发ros环境的应该知道,当节点太多难以控制的时候,不如写个脚本直接启动多个节点(对应多个终端)。
先介绍一下gnome-terminal
命令的使用:
1 |
|
了解上面后我们可以创建属于自己的脚本了:
-
在ROS工作空间(例如,
catkin_ws
文件夹)下创建一个脚本文件,例如runROS.sh
。 -
写入内容,例如:
1
2
3
4
5
6#!/bin/bash
gnome-terminal --window -- bash -c "source ./devel/setup.bash && roslaunch PACKAGE_NAME *.launch; exec bash"
sleep 3s
gnome-terminal --window -- bash -c "source ./devel/setup.bash && rosrun PACKAGE_NAME NODE_NAME *.yaml; exec bash"
sleep 3s
gnome-terminal --window -- bash -c "rosbag play /yourfolder/*.bag; exec bash"需要什么节点按照这个模块添加即可。
对于使用Terminator终端和zsh shell,修改文件内容为:
1
2
3
4
5
6#!/bin/zsh
terminator -e "zsh -c 'source ./devel/setup.zsh && roslaunch PACKAGE_NAME *.launch; exec zsh'"
sleep 3s
terminator -e "zsh -c 'source ./devel/setup.zsh && rosrun PACKAGE_NAME NODE_NAME *.yaml; exec zsh'"
sleep 3s
terminator -e "zsh -c 'source ./devel/setup.zsh && rosbag play /yourfolder/*.bag; exec zsh'"这里播放
rosbag
前面需要加上source ./devel/setup.zsh
,否则会报错zsh:1: command not found: rosbag
。如果
exec zsh
命令未能在命令运行完成后保持终端窗口打开,可以尝试修改terminal的配置,在terminal点右键,选择Profiles->Profile Preferences,然后找到Title and Command,里面有一项When command exits,后面选择为Hold the terminal open。因为
roscore
和roslanuch
打开ROS节点后不会自行关闭,需要使用快捷键Ctrl+C
手动关闭,所以不会运行到exec zsh
这一步。而且,使用快捷键
Ctrl+C
手动关闭ROS节点后,终端会直接退出,也就是关闭窗口(这个BUG?反而能自动关闭终端窗口,减少了自己的操作?)。如果
Ctrl+C
后不想关闭终端,可以在terminal点右键,选择Profiles->Profile Preferences,然后找到Title and Command,里面有一项When command exits,后面选择为Hold the terminal open。不过即使这样,当前终端也不再能输入命令,只能使用Terminator的功能水平分割/数值分割另起一个终端。当我手动 Ctrl + C 关闭 gnome-terminal + zsh,时,程序完全退出后才会关闭终端窗口。但当我使用 xdotool 模拟 Ctrl + C时,就算保持窗口常开,程序也会直接退出(留下一个临时文件),而不像手动时会处理完临时文件后再退出。相反,当我使用 gnome-terminal + bash 时,程序总会完全退出并保持窗口。这在有些情况下反而是可取的。
-
给脚本文件授予权限:
1
sudo chmod 755 runROS.sh
chmod 755
设置用户的权限为:- 文件所有者可读可写可执行。
- 与文件所有者同属一个用户组的其他用户可读可执行。
- 其它用户组可读可执行。
-
运行脚本文件:
1
2cd catkin_ws
./runROS.sh -
完成。
Shell脚本在语句报错后终止运行
shell
脚本在语句报错后默认仍会继续向下执行,解决方法为:
1 |
|
默认情况下,脚本执行后,屏幕只显示运行结果,没有其他内容。如果多个命令连续执行,它们的运行结果就会连续输出。有时会分不清,某一段内容是什么命令产生的。
set -x
用来在运行结果之前,先输出执行的那一行命令。执行echo bar
之前,该命令会先打印出来,行首以+
表示。这对于调试复杂的脚本是很有用的。
Shell脚本自动输入密码
1 |
|
Shell脚本按下Ctrl+C后仍可以执行功能
How to handle ctrl+c in bash scripts
1 |
|
trap
命令允许捕获信号(Ctrl+C是SIGINT信号)并在捕获后执行命令,trap
语法如下:
1
trap function_command_to_execute SIGNAL
- 为什么你使用 echo 两次?
- 按 ctrl+c 而不输入换行符会弄乱输出。
- 为什么将 stderr 重定向到
/dev/null
?
/dev/null
是一个特殊的设备名称,充当黑洞!你扔在那里的所有东西都会消失!这样,如果我们尝试删除的文件已经被删除,则屏幕上不会显示错误,这可能会无缘无故地让用户感到困惑!- 为什么用
exit 1
退出脚本?
- 退出代码非常有用!退出代码 0 表示程序/脚本按预期完成,其他任何值都可能表示因异常方式或错误退出。
- 这使得故障排除更加容易,而且还允许控制流,我们可以使用 $? 读取脚本或程序的退出状态。这允许 bash 脚本决定如果另一个脚本或程序异常退出时该怎么做。
为Shell脚本中的文本着色
Linux: How to colorize text in bash scripts
Shell脚本调试
在 Shell 脚本中,可以使用 exit
命令来终止脚本的执行。exit
命令会立即停止脚本的运行,并可以选择性地返回一个状态码。
你可以选择性地提供一个状态码,例如 exit 1
,表示脚本以错误状态退出。
文件备份与同步
-
使用操作系统的文件同步工具
-
Windows: 使用
robocopy
命令。创建一个批处理脚本来定期同步文件:
1
2
3
4
5
6
7@echo off
set src_file="C:\path\to\your\file.txt"
set dest_file="D:\path\to\backup\folder\file.txt"
:loop
robocopy %src_file% %dest_file% /MIR
timeout /t 60
goto loop -
Linux: 使用rsync命令。
创建一个Shell脚本来定期同步文件:
1
2
3
4
5
6
7#!/bin/bash
src_file="/path/to/your/file.txt"
dest_file="/path/to/backup/folder/file.txt"
while true; do
rsync -av --delete "$src_file" "$dest_file"
sleep 60
done
-
-
使用文件系统监控工具
你可以使用Python中的watchdog库来监控文件的更改,并在文件发生更改时自动复制到备份文件夹。
1
pip install watchdog
编写Python脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31import time
import shutil
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class FileChangeHandler(FileSystemEventHandler):
def __init__(self, src_path, dest_path):
self.src_path = src_path
self.dest_path = dest_path
def on_modified(self, event):
if event.src_path == self.src_path:
shutil.copy2(self.src_path, self.dest_path)
print(f"File {self.src_path} has been backed up to {self.dest_path}")
def monitor_file(src_path, dest_path):
event_handler = FileChangeHandler(src_path, dest_path)
observer = Observer()
observer.schedule(event_handler, path=src_path, recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
if __name__ == "__main__":
src_file = "path/to/your/file.txt"
dest_file = "path/to/backup/folder/file.txt"
monitor_file(src_file, dest_file) -
使用云存储服务。你可以使用云存储服务(如Dropbox、Google Drive、OneDrive等)来自动同步文件。将文件放在云存储的同步文件夹中,云存储服务会自动同步文件到云端和其他设备。
Windows
快捷键
快捷键 | 作用 | 自定义 |
---|---|---|
虚拟桌面 | ||
Win+Ctrl+D | 创建新的虚拟桌面,并切换到它 | |
Win+Ctrl+<-/-> | 切换桌面 | Ctrl+Alt+↑/↓ |
Win+Tab | 打开任务视图 | |
窗口 | ||
Ctrl+N | 新建当前窗口 | |
Ctrl+Shift+N | 新建文件夹 | |
Win+ D | 将所有打开的窗口最小化,并转到桌面,再次按下即刻恢复所有内容 | |
Win+<-/-> | 可以自动将应用窗口完全贴靠到屏幕两侧 | |
Win+ ↑ | 可以将应用窗口最大化 | |
Win+ ↓ | 可以将应用窗口最小化。若是当前窗口处于最大化状态,则按住 Win 键不放,连续按两下 ↓ 键即可将窗口最小化。 | |
Win+V | 查看剪切板历史 |
其它一些可参考Linux快捷键。
其它:
- 将窗口移动到另一个虚拟桌面(不幸的是,Windows不包括直接用于在虚拟桌面之间移动窗口的键盘快捷键):Win+Tab打开任务视图后,使用鼠标拖动应用窗口到另一个虚拟桌面。
- Windows 10 系统 Win+<-/-> 分屏失效处理方法:控制面板-外观和个性化-轻松使用设置中心-使鼠标更易于使用-取消勾选"将窗口移动到屏幕边缘时不要自动排列窗口"。
- 设置快捷键:开始菜单-找到“Anaconda Powershell Prompt”-右键:打开文件位置-属性-快捷方式-快捷键:Ctrl+Alt+T。
Powershell
-
Powershell 配置 alias:
-
打开 Powershell,执行
echo $PROFILE
命令,确定新建文件的名称和位置。 -
例如:在
C:\Users\username\Documents\WindowsPowerShell
文件夹下新建Microsoft.PowerShell_profile.ps1
文件。 -
按格式输入命令:
1
2function 别名 { 需要替代的命令 }
Set-alias 's' 'Select-Object' -
以管理员身份打开Powershell 执行命令:
1
2Set-ExecutionPolicy RemoteSigned
# `Set-ExecutionPolicy RemoteSigned` 是一个 Windows PowerShell 命令,用于设置 PowerShell 执行策略。执行策略用于控制是否允许在系统上运行脚本,以及允许哪些来源的脚本运行。 -
重启Powershell。
-
-
Powershell 执行多条命令:
1
2
3# 在powershell7上已经支持&&操作,如低于该版本请继续往下看
(mkdir test) -and (cd test)
mkdir test;cd test -
将cmd/powershell中的打印信息输出保存为txt文本文件:
1
ping www.baidu.com >D:/log.txt
保存界面上已经执行过的输出内容:点击powershell左上角的下三角形,或直接
Ctrl+Shift+P
打开命令面板,找到“导出文本”选项,确认保存位置。 -
打开网址:
1
2
3
4# starts with default browser and adds to open browser
Start-Process -FilePath www.google.com
# starts with a specific browser
Start-Process -FilePath iexplore -ArgumentList www.google.com -
等等。
命令
复制文件(夹)
robocopy
发现如果直接在桌面拖动文件夹进行复制,如果被复制的文件夹内有不正常的文件,整个复制过程就不会被执行。因此,使用命令行执行复制操作。原意是查看是哪个文件破坏了整个复制过程,结果发现可以直接跳过不正常的文件。
1 |
|
最好以管理员方式启动终端?以保证复制过程没有文件权限问题。
无论文件夹路径最后加不加
\
,都是将 source 文件夹下的内容复制进 destination 文件夹,而不是复制进 source 文件夹本身。所以要提前新件号 destination 文件夹。
source
: 指定源目录的路径。destination
: 指定目标目录的路径。file
: 指定要复制的一个或多个文件。支持通配符( *或? )。如果不指定此参数,则使用*.*
作为默认值。options
:指定与robocopy命令一起使用的选项,包括copy 、 file 、 retry 、 logging和job选项。/s
: 复制子目录。此选项自动排除空目录。/e
: 复制子目录。此选项自动包含空目录。/v
: 生成详细输出,并显示所有跳过的文件。/mt:<n>
: 创建具有n 个线程的多线程副本。 n必须是 1 到 128 之间的整数。n的默认值为 8。为了获得更好的性能,请使用/log选项重定向输出。(慎用,如果遇到复制错误的文件,会卡在那里重复尝试)
1 |
|
复制大量小文件
如果你要复制的文件夹内包含大量小文件,可以考虑以下几种方法来提高复制效率:
-
使用 robocopy 的多线程选项
robocopy
支持多线程复制,可以显著提高复制大量小文件的速度。1
robocopy "C:\source_folder" "D:\destination_folder" /e /mt:16
就算不用多线程也很快。
-
压缩文件夹再复制
将文件夹压缩成一个压缩文件(如
.zip
),然后复制压缩文件,最后在目标位置解压。这种方法可以减少文件系统的开销。1
2
3Compress-Archive -Path "C:\source_folder" -DestinationPath "C:\source_folder.zip" # 使用 PowerShell 压缩文件夹
copy "C:\source_folder.zip" "D:\destination_folder.zip" # 复制压缩文件
Expand-Archive -Path "D:\destination_folder.zip" -DestinationPath "D:\destination_folder" # 使用 PowerShell 解压文件夹 -
使用第三方工具
一些第三方工具如
FastCopy
或TeraCopy
专门优化了文件复制过程,特别是对于大量小文件的复制。1
2
3# 下载并安装 FastCopy。
# 使用命令行进行复制
fastcopy.exe /cmd=diff /auto_close "C:\source_folder" /to="D:\destination_folder" -
使用 rsync(适用于 Windows Subsystem for Linux)
如果你在 Windows 上安装了 WSL,可以使用
rsync
,它在处理大量小文件时表现良好。1
rsync -av --progress /mnt/c/source_folder /mnt/d/destination_folder
选择适合你的方法来提高复制大量小文件的效率。
定时关机
https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/shutdown
Win11怎么设置自动关机?Win11使用shut down命令自动关机的方法
允许您一次关闭或重新启动一台本地计算机或远程计算机。
1 |
|
还可以按 Win+R 快捷键后,在“打开”处输入
at 16:00 shutdown -s
。(TODO)
小贴士
文件(夹)命名
命名规范
为了确保日常使用的方便与系统兼容性,个人电脑上的文件夹和文件命名应遵循一定的规范。以下是一些通用的指导原则和最佳实践:
- 简洁明了:命名应简单且直接表达文件内容或文件夹用途,避免过长或含糊不清的名称。
- 避免使用特殊字符:一般来说,文件名中不应包含如下字符:
\/:*?"<>|
。这些特殊字符在多数操作系统中有特定用途,可能导致错误或不被识别。 - 使用合适的文件扩展名:文件扩展名反映了文件的类型,如
.txt
表示文本文件,.jpg
表示JPEG图像文件。正确的扩展名有助于操作系统正确识别和打开文件。 - 利用日期和版本控制:在文件名中包含日期(如
2023-03-15
)可以帮助管理文件版本。对于频繁更新的文档,可能还需要添加版本号(如v1.0
、v2.0
)。 - 避免空格:虽然大多数现代操作系统可以很好地处理文件名中的空格,但在某些情况下(如命令行操作或网络传输)可能会引起问题。可以使用下划线(_)或破折号(-)来代替空格。
- 区分大小写:虽然Windows系统的文件名不区分大小写,但Linux和macOS区分大小写。为了兼容性,最好在命名时注意大小写的一致性。
- 组织性和易读性:对于包含多个文件的文件夹,可以采用有组织的命名体系,如按功能、日期或项目分类。
- 国际化和本地化:如果你的文件可能会被不同语言的用户访问,避免使用特定语言的字符,尽量使用英文和国际通用的符号。
遵循这些基本原则可以帮助提升文件管理的效率和降低因命名不当引起的问题。如果有特定的组织或项目命名规则,也应优先遵守这些专业指导标准。
命名方法
整词用驼峰或下划线
_
命名,整词间用-
分隔。
在个人电脑上命名文件夹和文件时,虽然没有像编程语言那样严格的命名规范,但仍可以借鉴一些编程中的命名方法来组织文件,使其更加有序和易于管理。以下是一些常见的命名方法,以及如何将它们应用于文件和文件夹的命名:
- 小驼峰式命名法 (lowerCamelCase):
- 应用: 适用于文件名,尤其是在需要保持名称简洁且连贯的情况下。
- 示例:
personalBudget.xlsx
,summerVacationPhotos.jpg
- 大驼峰式命名法 (UpperCamelCase):
- 应用: 适合用于较重要的文件和项目文件夹,特别是在编程项目中。
- 示例:
ProjectReport2023.docx
,TaxDocuments2023
- 下划线命名法 (snake_case):
- 应用: 适用于需要强调易读性的情况,也有助于避免在使用某些操作系统和环境时出现问题。
- 示例:
final_report_2023.pdf
,holiday_photos_2022
- 破折号命名法 (kebab-case):
- 应用: 更常见于网页文件和资源,但也可以用于普通文件和文件夹。
- 示例:
end-of-year-summary-2023.pdf
,project-budget-2023.xlsx
- 注意: 文件系统如Windows和记录系统通常对破折号支持良好,但在某些命令行环境中可能会遇到解释上的问题。
- 日期前缀命名:
- 应用: 对于需要按日期管理的文档或文件,如财务文件或定期报告。
- 示例:
2023-01-30_MeetingNotes.docx
,2023-03-15_Invoice.pdf
选择哪种命名方法取决于个人偏好、所处的工作环境以及是否需要跨平台交互。例如,如果在一个环境中主要用Python编程,那么使用snake_case可能更自然。而如果是在处理法律或业务文档,使用UpperCamelCase或日期前缀可能更为合适。
无论选择哪种命名方法,重要的是保持一致性,这样可以减少寻找和管理文件的时间,也能使文件系统更加有序。
中文文本中夹用英文时,是否要留有空格
推荐留空,方便整词选择。如果不留空,选择时可能会选择夹杂中英文的整行而不是单个英文单词。
中文文本中夹用英文时,应根据所选用的中英文字体、字符间距以及排版的视觉效果决定英文词句与中文文字之间是否留有空格间距。如留空格,应保证体例的统一。——中华人民共和国新闻出版行业标准CY/T 154—2017号《中文出版物夹用英文的编辑规范》第8.1节
- 但同时我更鼓励各类排版引擎自动在用户没有显式输入空格字符的情况下,也在中英文词汇间产生适当的间距。现在有一些已经做到了,比如 iOS 系统、微信、Microsoft 办公软件等。
浏览器搜索操作符
可以直接用此网址,不需要记命令,它自动组装为命令:
-
GitHub高级搜索:https://github.com/search/advanced
语法:
- 整词搜索:双引号。示例:"关键词"
- 逻辑与:空格。示例:关键词1 关键词2
- 逻辑或:空格OR空格。示例:关键词1 OR 关键词2
- 逻辑非:空格-(减号前面必须是空格,减号后面没有空格,要紧跟着需要排除的词)。示例:关键词 -排除词
- 模糊搜索:*(通配符,匹配任意词或短语)。示例:
国家* 匹夫*
- 指定网站:关键词 site:网站地址。注意:“site:”后面跟的站点域名,不要带“http://”。site:和站点名之间,不要带空格。示例: 编程教程 site:blog.csdn.net
- 排除指定网站:关键词 -site:网站地址。示例:编程教程 -site:blog.csdn.net
设置/重映射快捷键
-
添加快捷方式,右键快捷方式-属性-快捷键。参考链接
解决快捷键反应延迟问题:
下载
-
Windows系统下也可以运行Linux系统下的
*.sh
脚本/命令。网上有解决办法,例如;或者把shell脚本语言转为Powershell脚本语言。- 在Powershell下使用
Invoke-WebRequest
命令下载文件很慢。网上有解决方法,例如。 - Powershell下可以使用
wget
和curl
等命令。
- 在Powershell下使用
-
使用IDM、迅雷等下载器。
-
IDM
-
优点:(分块)下载速度快(比浏览器默认下载快);定时下载;(使用通配符)添加批量任务;运行站点抓取;资源嗅探
-
缺点:收费;(大文件)分块下载后合并下载块慢(解决:设置单线程下载;下载的临时文件夹和“保存至”文件夹不要在同一块硬盘上;高配电脑(CPU和SSD))
- 改成单线程的话,该文件下载速度会变慢。当然,如果你同时下载许多个文件,那么可以这么做,不影响。
- 同盘剪切一定快于跨盘剪切,但同盘复制一般慢于跨盘复制。
-
-
迅雷
- 优点:定时下载;下载速度快
- 缺点:国产软件……想要速度快需要开会员
-
.github文件夹
.github
文件夹通常包含 GitHub 特定的配置文件和工作流。以下是一些常见的用途:
- GitHub Actions Workflows: 自动化构建、测试和部署脚本,通常存放在
.github/workflows
目录下。 - Issue 和 Pull Request 模板: 自定义 issue 和 pull request 的模板,通常存放在
.github/ISSUE_TEMPLATE
和.github/PULL_REQUEST_TEMPLATE.md
文件中。 - CODEOWNERS 文件: 指定项目中某些文件或目录的负责人,通常存放在
.github/CODEOWNERS
文件中。 - FUNDING 文件: 为项目设置资助选项,通常存放在
.github/FUNDING.yml
文件中。 - 社区健康文件: 包括 CONTRIBUTING.md、CODE_OF_CONDUCT.md 等文件,帮助社区成员了解项目的贡献指南和行为守则。
这些文件和配置帮助项目维护者和贡献者更好地协作和管理项目。
中英文版本的简称
当描述一个文件是中文版本时,通常使用的语言代码有几种不同的形式,主要取决于具体的语境和标准。最常见的是“zh”,这是ISO 639-1标准下的代码,用于表示中文。然而,如果需要指明具体是简体中文还是繁体中文,人们可能会使用“zh-CN”(中国大陆使用的简体中文)和“zh-TW”(台湾地区使用的繁体中文)。这些是基于IETF语言标签(由ISO 639和ISO 3166国家代码组合而成),广泛用于网站和软件本地化中。
对于英文版本,通常使用的语言代码为“en”,这同样遵循ISO 639-1标准。如需进一步区分不同地区的英语,例如美国英语和英国英语,则分别使用“en-US”和“en-GB”。
这些缩写在多语言处理、软件本地化、网页语言标签等方面非常重要。选择正确的代码有助于正确设置语言环境,确保内容正确呈现给目标用户群体。如果有更具体的用途,如编程、文件标签或其他,请提供详细信息,以便提供更精确的建议。
流程框图
绘制流程框图(流程图)时,形状的使用有一套特定的规则,这些规则帮助标准化流程描述,并使流程图对于阅读者更加直观易懂。以下是一些基本的形状以及它们在流程图中的应用规则:
- 椭圆形或圆形(起止符):
- 用途:表示流程的开始和结束。
- 规则:每个流程图通常以一个圆形开始(标有“开始”或特定的启动指示),并以一个圆形结束(标有“结束”或特定的结束指示)。
- 矩形(处理步骤):
- 用途:表示一个具体的操作或指令。
- 规则:矩形内部应清晰地描述步骤的内容。每个矩形应该包含一个动作动词,明确指示执行的操作。
- 菱形(决策符):
- 用途:表示需要做出决策的点,通常涉及是/否或者多重选择。
- 规则:菱形中应包含一个简洁的问题或决策点,出口流向应标有可能的答案或选择,如“是”或“否”。
- 平行四边形(输入输出符):
- 用途:表示数据的输入或输出。
- 规则:必须明确指出数据的输入源或输出去向。例如,用户输入、数据保存等。
- 箭头:
- 用途:表示控制流程的方向。
- 规则:箭头从一个符号指向另一个符号,显示流程的流向。保持箭头清晰,避免过多交叉,以免图表混乱。
- 圆角矩形(子程序):
- 用途:如果流程图中某个操作是复杂的并在其他位置有详细描述,可以使用圆角矩形表示这是一个子过程。
- 规则:子程序通常有对应独立的流程图说明详细步骤。
流程图的绘制还应遵守一些基本的布局规则,例如:
- 清晰性:图表应清晰易读,避免过度复杂的连接。
- 简洁性:只包含完成目标所需的必要步骤,避免冗余。
- 一致性:使用统一的符号和术语。
在绘制流程图时,使用这些形状按照规则确保你的图表不仅标准化而且功能性强,能够清楚地传达流程信息。
其它
-
Anaconda Prompt与Anaconda PowerShell Prompt与系统cmd与powershell的区别:
- cmd
- 优点:无
- 缺点:Python不行;
ls
不行
- Powershell
- 优点:
ls
行 - 缺点:Python不行
- 优点:
- Anaconda Prompt
- 优点:Python 行
- 缺点:
ls
不行
- Anaconda Powershell Prompt【完美】
- 优点:Python 行、
ls
行 - 缺点:无
- 优点:Python 行、
- cmd
-
导入环境变量:搜索“环境变量”——新建。
-
在 Windows PowerShell 终端中打开当前终端所在的文件夹:
1
explorer .
-
等等。
软件
CLion
快捷键
自定义快捷键:设置-按键映射
快捷键 | 作用 |
---|---|
搜索 | |
Shift + Shift | 全局搜索;搜索得更全,不光包括文件文本内容,还有文件夹名称,操作等 |
CTRL+SHIFT+F | 搜索整个工程或指定目录 注:连续按两次Esc,搜索框就会消失;专注搜索文件文本内容 |
CTRL+SHIFT+R | 全局搜索+替换 |
Ctrl+Shift+A | 查找(想要进行的)操作 |
ALT+F1 | 导航,查找文件所在目录位置 |
CTRL+F | 在当前窗口查找文本 |
CTRL+R | 在当前窗口替换文本 |
Ctrl+E | 最近的文件 |
Ctrl+Shift+E | 最近的位置,支持键盘直接输入模糊搜索。 |
Alt + 1 | 打开/关闭项目树 |
Alt + Shift + 1 | 在项目树定位打开的文件的位置 |
Ctrl + Tab | 跳转标签页 |
查看 | |
Ctrl+鼠标左键 | 前往声明或用法 |
Ctrl+鼠标右键 | 高亮当前区域(Rainbow Brackets插件) |
Ctrl+P | 将文本光标置于方法调用的圆括号之间,按Ctrl+P 可以显示有效形参的列表。 |
Alt+Q | 显示上下文信息(在函数内部快速查看函数定义) |
文本编辑 | |
Shift+Home/End | 选中行中鼠标前面(后面)的全部内容 |
Alt+M | String Manipulation(插件,字符串编辑) |
Ctrl+C/X | 复制/剪切整行 |
Ctrl+Y | 删除整行 |
Ctrl+Alt+Enter | 在上一行插入空行 |
Ctrl+D | 重复行或选区 |
Ctrl+Shift+上/下箭头 | 向上/下移动语句 |
Ctrl+Shift+U | 切换大小写 |
Shift+Alt+U | CamelCase(插件,一键转化变量为驼峰命名或下划线命名) |
Ctrl+Shift+J | 合并行 |
代码自动提示和补全 | 上下方向键选择,Enter插入 |
光标前/后移动一个整词 | Ctrl+<-/-> |
连续选中 | Shift+<-/-> |
整词选中 | Ctrl+Shift+<-/-> |
移动定位 | |
Ctrl+Shift+N | 转到文件 |
Ctrl+E | 最近的文件 |
CTRL+上/下箭头 | 代码向上/下滚动(类似鼠标滚动) |
ATL+上/下箭头 | 上一个/下一个变量/函数(方法) |
ALT+Shift+←/→; 鼠标侧面的两个前进和后退键 | 返回/前进上次光标所在的位置 |
CTRL+HOME/END | 光标跳转到第一行或最后一行下 |
Alt+←/→ | 上/下一个标签页 |
F4 | 跳转到源文件 |
Ctrl+G | 跳转到行/列 |
结构 | 工具栏-导航 |
Ctrl+F12 | 文件大纲 |
Alt+Shift+H/右边栏-层次结构 | 查看引入/包含文件的文件有哪些 |
Ctrl+Alt+Shift+2 | 在资源管理器里打开文件所在的特定上级文件夹 |
Ctrl+NumPad-/NumPad+ | 折叠/展开代码/文件夹 |
撤回 | |
CTRL+Z | 倒退 |
CTRL+SHIFT+Z | 向前 |
缩进与注释 | |
CTRL+ALT+I | 自动缩进 |
CTRL+/ | 注释// 添加或删除注释 |
CTRL+SHIFT+/ | 注释/*...*/ |
在函数名称上面一行输入/*! (或者/// 、/*** ) 然后回车,即可自动生成注释。 |
|
Translation翻译 | |
Ctrl+Shift+Y | 光标在单词上或选中单词 |
Ctrl+Shift+O | 打开翻译界面 |
其他 | |
Ctrl+F4/ESC | 关闭当前文件 |
按住 Alt 点击关闭标签页 | 关闭其他标签页 |
Ctrl+D | 比较文件差异。按F4跳转到源文件。直接点击<<是在同行直接接受,Ctrl+点击是换行插入。 |
F7 | 转到下一个差异 |
Shift+F6 | (批量)重命名 |
小技巧
查找用法
查找函数被调用的位置:
函数名-右键-查找用法(Alt+Shift+7
)。分为读取值(变量被赋值/数组被push/pop
的地方)和声明或预声明(变量被用到的地方)。
函数名-右键-转到-声明或用例(Ctrl+B
)/Ctrl
+鼠标左键点击。
“重命名”重构
您可以轻松重命名类、函数、变量和文件,同时在所有引用中实现自动纠正。为此,将文本光标放在所需符号上,然后按Shift+F6(重构|重命名)。开始输入新名称并在准备好后按 Enter。
用语言结构包围代码块
CLion提供了标准模板,用于将代码片段用各种基于源代码语言的结构包围起来。这包括了if...else
条件语句、do...while
和for
循环、折叠区域和其他结构。
- 选择所需的代码片段。
- 从主菜单中选择Code | Surround With,或按Ctrl+Alt+T(与打开终端的全局快捷键冲突,可以改为Ctrl+Alt+W)。
- 从列表中选择必要的包围语句。
创建带有补全功能的代码结构
您可以使用语句补全创建代码结构。开始输入方法声明、方法调用或语句,例如 if
、for do-while
、try-catch
、 switch-case
或 return
。按 Ctrl+Shift+Enter
可以将语句补全为语法正确的结构。
代码-生成
代码生成选项。使用此菜单,可以快速生成构造函数/析构函数、 getter/setter、各种运算符和实现/重写函数。
快捷键:Alt+Insert
格式化
您可以重新格式化部分代码、整个文件、文件组、目录和模块。您还可以从重新格式化中排除部分代码或某些文件。
重新格式化代码片段:
- 在编辑器中,选择要重新格式化的代码片段。如果您不选择代码片段,CLion 将重新格式化整个文件。
- (可选)预览:按 Alt+Enter 并单击调整代码样式设置。
- 格式化:在主菜单中,转到代码 |重新格式化代码 或 按 Ctrl+Alt+L 。
重新格式化行缩进:
在某些情况下,“设置”对话框中“缩进检测”部分中的“检测并使用现有文件缩进进行编辑”选项 ( Ctrl+Alt+S ) |编辑|代码样式可以覆盖您的设置。在这种情况下,CLion 将显示一条通知。
- 在编辑器中,选择必要的代码片段并按 Ctrl+Alt+I 。
- 如果需要调整缩进设置,请在“设置”对话框 ( Ctrl+Alt+S ) 中,转到编辑器 | 缩进设置-代码风格,选择您要更改缩进的语言。
- 在“制表符和缩进”选项卡上,指定适当的缩进选项,然后单击“确定”。
重新格式化文件:
- 在编辑器中打开文件并按 Ctrl+Alt+Shift+L 或在项目工具窗口中右键单击该文件并选择重新格式化代码。
- 在打开的“重新格式化文件”对话框中,如果需要,请选择以下重新格式化选项:
- 优化导入:如果您想要删除未使用的导入、添加缺失的导入或组织导入语句,请选择此选项。
- 代码清理:选择此选项可运行代码清理检查。
- 不保留换行符:根据代码样式设置重新格式化换行符。此选项会覆盖重新格式化时保留 |换行符设置。
- 单击运行。如果您想查看重新格式化期间对代码所做的确切更改,请使用本地历史记录功能。
在保存时自动格式化代码:设置-工具-保存时的操作:重新格式化代码
书签(快捷跳转)
- 添加无名行书签:在编辑器中,将光标定位在一行代码上,然后按下
F11
键。或者,右键单击要添加书签的代码行旁边的装订线,然后选择“添加书签”。 - 添加助记符行书签:在编辑器中,将光标定位在一行代码上,然后按下
Ctrl+F11
键。或者,右键单击要添加书签的代码行旁边的装订线,然后选择“添加助记符书签”。在打开的弹出窗口中,选择一个数字或字母作为此书签的标识符。或。直接按下Ctrl+Shift+Num
直接添加。 - 书签文件和文件夹:在项目工具窗口(
Alt+1
)中,右键单击要添加书签的项目,然后选择“书签” | “添加书签” (F11
) 或 “添加助记符书签” (Ctrl+F11
)。要为多个项目添加书签,请在工具窗口中选择它们,右键单击其中一个,然后选择“书签” | “添加书签” (F11
)。对于助记符书签,选择一个数字或字母作为此书签的标识符。按Enter
键或再次单击所选的字母或数字以保存书签。 - 删除书签。再次按下
F11
。 - 重命名书签:在装订线上单击书签图标,然后提供新的描述。
- 书签跳转。按住
Ctrl
键,然后按键盘上的数字助记符。或,按下Shift+F11
键,或者从主菜单中选择“编辑” | “书签” | “显示行书签”。或,转到下一个或上一个书签:“编辑” | “书签” | “上/下一行书签”。 - 所有的书签都分组在“书签”工具窗口中的列表中,您可以通过从主菜单选择“视图 | 工具窗口 | 书签”或按下
Alt+2
来打开它。您可以快速添加所有打开的文件的书签,并将这些书签添加到新列表中。
扩展代码选区(鼠标选择的区域)
要展开选区,请按Ctrl+W。每次按 Ctrl+W时,选区将扩展到代码的其他区域。例如,选区从一个方法名称扩展到调用此方法的表达式,然后扩展到整个语句,继而扩展到包含的块,等等。缩减选区:Ctrl+Shift+W。
导入缺失的头文件/函数声明
- 配置自动导入。您可以在“设置 | 编辑器 | 通用 | 自动导入”中为C/C++和其他语言配置自动导入行为。
- 对于提示找不到/未定义的变量/函数,选中,按下
Alt+Enter
。 - 在cpp文件中编写函数定义后,在函数名上按Alt+Enter组合键,然后选择“创建新函数/split function into declaration and definition”。这将在头文件中添加Class声明。
-
- 在CLion中打开源代码文件。
- 在代码中编写类的定义,并保存该文件。
- 右键单击源代码文件,选择“Refactor(重构)”,然后选择“Extract”。
- 在弹出的对话框中选择“Declaration”,然后选择“Extract”。
- 在新的头文件中,你可以看到类的声明已经被自动生成了。
从索引中排除
CLion为项目文件建立索引,以启用诸如搜索,导航,代码完成,代码生成和重构之类的功能。但是,您的项目可能包含不需要这些功能的文件,例如日志,二进制文件或导入的库。在这种情况下,为了减少索引时间,可以将文件标记为纯文本 ,将目录标记为排除或库。
临时文件
有时候您可能需要在项目上下文之外创建临时的笔记或者起草一些代码。而不必切换到不同的应用程序,您可以使用临时文件和临时缓冲区。
临时文件和缓冲区与特定项目无关。它们对于任何在特定IDE实例中打开的项目都是可用的。
创建临时文件:
- 从主菜单中选择 File | New | Scratch File,或者按下 CtrlAltShiftInsert。另外,可以在项目工具窗口中,右键点击任何区域,然后导航到 New | Scratch File。
- 选择临时文件的语言。相同类型的临时文件会自动编号,并添加到项目视图的 Scratches and Consoles 目录中。
- 另外,您可以根据当前编辑器中的选中内容创建一个新的临时文件。选择一些文本或代码,按下 Alt+Enter,然后选择 Create new scratch file from selection。CLion将尝试检测选中片段的语言,并使用适当的类型和扩展名。如果它无法检测出选中片段的语言,CLion将使用与原始文件相同的类型和扩展名创建文件。
临时文件和缓冲区的位置:默认情况下,CLion会将临时文件和缓冲区存储在 IDE配置目录 下的 scratches 目录中。它们可以在任何使用此配置目录的IDE和项目中使用。
1 |
|
将临时文件包含到您的项目中:如果一个临时文件变得足够大,以至于您希望在项目中使用它,可以将它移动到项目结构的所需目录中。
- 在编辑器中打开一个临时文件,或者在项目视图中的 Scratches and Consoles | Scratches 目录中选择它,按下 F6,然后选择项目中的目标目录。
- 在项目视图的 Scratches and Consoles | Scratches 目录中,将临时文件从源目录拖到项目中的目标目录。
- 在项目视图的 Scratches and Consoles | Scratches 目录中选择一个临时文件,按下 Ctrl+X,然后选择项目中的目标目录,按下 Ctrl+V。
其它
- 右键标签页-向下拆分/向右拆分:方便看大型内容。
Conda
在没有自行安装其他的conda环境的时候,默认会有一个base环境。
这里的*表示,这个是当前处于激活状态的环境。每次进入conda的时候,默认就是进入了base环境。
库都要安装在小环境中,不要安装在 base 里, 首先要用 conda 激活环境。
查询
1 |
|
mamba
除了激活和退出环境仍需要 conda 命令,安转和搜索包都可以使用 mamba 替换 conda,以提高速度。
1 |
|
环境管理
1 |
|
Windows:
1
2
3
4
5
6
# conda默认使用了hardlink,如果同时使用conda和pip的情况下,我个人建议加上 --copy 选项
conda create --copy -n envname python=3.9
# 打开新建环境下的lib文件夹的site.py文件(C:\Users\username\.conda\envs\conda_env\Lib\site.py), 找到USER_SITE、USER_BASE那两行, 默认是None, 修改后如下:
USER_SITE = r"C:\Users\username\.conda\envs\conda_env\Lib\site-packages"
USER_BASE = r"C:\Users\username\.conda\envs\conda_env\Scripts"
# 记得加上r抑制转义, 否则有可能因为非法转义报错, 导致进入不了虚拟环境。
可以通过配置auto_activate_base
关闭自动进入conda基础环境:
1 |
|
如要开启,将其设为true
就可以了:
1 |
|
库/包管理
清华源:https://pypi.tuna.tsinghua.edu.cn/simple
阿里源:https://mirrors.aliyun.com/pypi/simple/
-
安装包
-
在线安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29conda search qt # 搜索可用版本
# 你可以指定所安装软件包的版本号,如果不指定的话,就默认安装最新版本。
conda install -y pkgs[==version] # 安装库,安装成功一般会出现三个 done 。-y 参数的作用是自动确认,忽略询问。
# 通过调用软件的帮助文档来经常是否下载成功。如果失败, 重新下载即可。
# 或
# 在anaconda下用pip装包的原因:尽管在anaconda下我们可以很方便的使用conda install来安装我们需要的依赖,但是anaconda本身只提供部分包,远没有pip提供的包多,有时conda无法安装我们需要的包,我们需要用pip将其装到conda环境里。
conda install pip # 进入环境后
# 首先用下面命令查看我们此时用的pip为哪个环境
# 如base环境的pip可能在/root/anaconda3/bin/pip,而其他conda环境的pip,可能在/root/anaconda3/envs/my_env/bin/pip
which -a pip
pip -V # pip --version
# 配置
pip -v config list
pip install --upgrade pip setuptools wheel # 升级pip工具包
pip install --upgrade pip # 更新 pip 至最新版
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 永久换源(清华源)
# Writing to /home/xxx/.config/pip/pip.conf
# global.index-url='https://pypi.tuna.tsinghua.edu.cn/simple'
pip config unset global.index-url # 换回默认源
# 搜索可用版本
pip index versions [your python module name] # 或
pip install package_name==
pip install pkgs[==version] # pip安装的包,conda list结果中的build项目的Channel为pypi
pip install -r environment.txt # 根据 txt 文件创建使用 pip 安装的环境
pip3 --proxy 127.0.0.1:7890 install package_name
pip install xxxx -i https://pypi.tuna.tsinghua.edu.cn/simple # 临时换源(清华源)
pip install geometry_msgs --extra-index-url https://rospypi.github.io/simple # 临时添加额外的源
pip install -e path/ # 执行path/目录下的setup.py文件 -
本地安装
1
2
3# https://anaconda.org/这个是Anaconda包下载的地方,利用搜索框进行搜索,然后下载。
conda install --use-local package.tar.bz2 # 安装本地软件包。
pip install path/package_name.whl
-
-
查找包
1
2
3
4
5
6
7
8
9
10# 查找软件常用的链接(我们认知的软件名和conda给的名字不一样)
# https://bioconda.github.io/
# https://anaconda.org/search
conda search 软件名 # 查找库
# 查看环境中所装的包
conda list # 默认当前环境
conda list –n cpp_test_env # 查看指定环境
conda list fast* # 比如很早就安装某个软件,如果只想起四个字母,用通配符的去查找
pip show packagename -
更新与卸载包
1
2
3
4
5
6
7
8
9
10# 更新
conda update name # 更新库
pip install --upgrade 包名称==版本号
pip install package_name== # 会自动卸载旧版本
# 卸载
# --force 确保只卸载该库,而不同时卸载该库的其他库
conda uninstall pytorch --force # 卸载使用 conda 安装的库
conda remove name # 与上命令等同
pip uninstall torch # 卸载使用 pip 安装的库
环境移植
1 |
|
报错
在 shell 脚本中执行conda activate
时报错:
1 |
|
加上conda init
后还是报错。
解决:
确保 conda init
只在第一次运行时执行,并且在脚本中正确激活环境。
1 |
|
CTEX
-
创建通栏:
1
2
3
4
5
6
7
8
9
10\onecolumn
% 通栏图片/表格
\begin{multicols}{2}
% 继续双栏内容
\end{multicols}
\onecolumn
% 通栏图片/表格
\begin{multicols}{2}
% 继续双栏内容
\end{multicols}
Git
Windows下的Git Bash终端快捷键:
快捷键 | 作用 |
---|---|
Ctrl+insert | 复制 |
Shift+insert | 粘贴 |
GitHub
-
star
的原则:如果项目完善已停止更新或目前没有使用,就没有
star
的必要,来“污染”star库。star
主要用于及时获取更新消息和收藏常用项目。- 项目仍在持续更新。
- 感兴趣(但还没有深入研究)的项目(更推荐收藏在浏览器收藏夹中,还能做备注)。
-
默认
watch
:Participating and @mentions -
根据
Tag
找存储库的历史版本:1
2
3GIT_REPOSITORY https://github.com/jbeder/yaml-cpp
GIT_TAG 11607eb5bf1258641d80f7051e7cf09e317b4746
https://github.com/jbeder/yaml-cpp/tree/11607eb5bf1258641d80f7051e7cf09e317b4746 -
在GitHub上快速找到自己评论过或者发布过的问题:
1
2
3
4
5
6# 搜索框
commenter:username
is:issue commenter:username
is:issue involves:username
is:issue is:open # is:issue is:closed
# 要查看最近的活动,请从Sort下拉列表中选择Recently updated -
GitHub首页只会推荐有最新
release
的star
项目?如果想跟进项目的commit
,可以在Your stars
界面筛选Sort by: Recently active
。 -
每日/周/月排行:点击GitHub首页左上角
三道杠
-Explore
-Trending
。 -
搜索:
1
2java stars:>1000 # 目标语言是java且star数大于1k
dvs_msgs language:Python # 指定编程语言
Google Colab
-
Google上传和解压:
选中谷歌云端硬盘里的文件,右键-共享-共享-设置访问权限:知道链接的任何人。共享-复制链接:
1
2
3
4
5
6# https://drive.google.com/file/d/xxx/view?usp=drive_link
!gdown --id 'xxx' --output file.zip
!unzip file.zip -d /content/file
%cd /content/file
!pwd
!ls -
查看硬件信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17print("============查看GPU信息================")
# 查看GPU信息。注意提前把代码执行程序改为GPU。
!/opt/bin/nvidia-smi
print("==============查看pytorch版本==============")
# 查看pytorch版本
import torch
print(torch.__version__)
print("============查看虚拟机硬盘容量================")
# 查看虚拟机硬盘容量
!df -h
!df -lh
print("============查看cpu配置================")
# 查看cpu配置
!cat /proc/cpuinfo
print("=============查看内存容量===============")
# 查看内存容量
!cat /proc/meminfo
Mermaid
通用语法
流程图的方向定义:
- TB - 从上到下
- TD - 自上而下/与自上而下相同
- BT - 从下到上
- RL - 右到左
- LR - 左到右
流程图
简单示例:
flowchart TD
A[Enter Chart Definition] --> |Text| B(Preview)
B --- C{decide}
C -.-> D([Keep])
C ==> E[Edit Definition]
E <--> B
D --> F[Save Image and Code]
F --> B
markdown["`This **is** _Markdown_`"]
newLines["Line1
Line 2
Line 3"]
markdown --> newLines
Microsoft Edge
快捷键 | 作用 |
---|---|
窗口 | |
Ctrl+N | 新建窗口 |
Ctrl+Shift+N | 新建无痕窗口 |
标签页 | |
Ctrl+W | 关闭当前标签页 |
Ctrl+Shift+W | 关闭所有标签页 |
Ctrl+Shift+A | 查看最近关闭的标签页 |
Ctrl + Shift + K | 复制当前标签页 |
Ctrl + Tab | 切换到下一个标签页 |
Ctrl + Shift + Tab | 切换到上一个标签页 |
Ctrl + 1, 2, ... 8 | 切换到特定标签页 |
Ctrl + 9 | 切换到最后一个标签页 |
搜索 | |
Alt + D/Ctrl + L/F4 | 选择地址栏中的 URL 以进行编辑 |
Ctrl + Shift + L | 粘贴并搜索或粘贴并访问(不一定非得是URL) |
Ctrl + E/Ctrl + K | 在地址栏中打开搜索查询 |
Ctrl+Shift+E | 在边栏中搜索 |
其它 | |
F5 | 重新加载当前标签页 |
Ctrl+F/F3 | 查找当前标签页 |
Okular
快捷键 | 作用 |
---|---|
F6 | 注释 |
Ctrl+4 | 文本选择工具 |
鼠标双击 | 打开注释/持续选择工具 |
TeXstudio
快捷键 | 作用 |
---|---|
F5 | 编译并预览 |
F6 | 编译 |
Ctrl + F | 可对源码或者PDF查看器的内容进行搜索定位 |
Ctrl + 鼠标单击 | 定位Latex源码和PDF的对应位置 |
Ctrl + T | 注释选定代码 |
Ctrl + U | 取消选定代码注释 |
其他配置:
- 选项-设置-构建:若写中文论文,则需修改默认编译器为XelaTeX;若为英文,则用PdfLaTex。
Typora
Markdown语法
https://support.typoraio.cn/zh/Markdown-Reference/
语法高亮
- Shell: console, shell
- Bash: bash, sh, zsh
- Powershell: powershell, ps
- Dos: dos, bat, cmd
- language: js、javascript、java、python、c、c#、c++
- html、htmlbars、yaml、xml、json
- typescript、sql、nginx
1 |
|
脚注
1 |
|
快捷键
快捷键 | 作用 |
---|---|
Ctrl+T | 插入表格 |
Ctrl+Enter | 表格插入行 |
Ctrl+Shift+Backspace | 删除行 |
Ctrl+Shift+L | 显示/隐藏边栏 |
Ctrl+Shift+1 | 显示/隐藏大纲 |
Ctrl+/ | 源代码模式 |
Ctrl+K | 复制链接,在Typora中选中要建立超链接的文字,按下Ctrl+K ,Typora会自动读取剪切板来创建超链接。 |
Ctrl+Shift+` | 生成代码格式,也就是使用````进行包围 |
Ctrl+Y | 重做(与Ctrl+Z撤销相反) |
Ctrl+Shift+F | 当前目录下的文件全局搜索 |
Ctrl+L | 全选行 |
小贴士
- 有序列表回车后按再按回车:取消缩进,回到行首,取消继续编号;按 TAB,新建下级列表;按Backspace ,取消继续编号,可在保持缩进的情况下输入内容。
- 在列表中第一次回车,取消当前列表,第二次回车,创建上级列表(没有上级列表就是正文的回车)。
vim
vim键盘图
vi/vim的使用
1 |
|
基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和底线命令行模式(Command-Line Mode)。
命令模式
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下 i
,并不会输入一个字符,i
被当作了一个命令。
以下是普通模式常用的几个命令:
i
:切换到输入模式,在光标当前位置开始输入文本。:
:切换到底线命令行模式,以在最底一行输入命令。x
:删除当前光标所在处的字符。a
:进入插入模式,在光标下一个位置开始输入文本。o
:在当前行的下方插入一个新行,并进入插入模式。O
:在当前行的上方插入一个新行,并进入插入模式。dd
:剪切当前行。yy
:复制当前行。p
(小写):粘贴剪贴板内容到光标下方。P
(大写):粘贴剪贴板内容到光标上方。u
:撤销上一次操作。Ctrl + r
:重做上一次撤销的操作。
若想要编辑文本,只需要启动 Vim,进入了命令模式,按下
i
切换到输入模式即可。
在其它模式下,可以随时按
ESC
键回到命令模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令行模式输入更多命令。
输入模式
在命令模式下按下 i
就进入了输入模式,使用 Esc
键可以返回到普通模式。
在输入模式中,可以使用以下按键:
- 字符按键以及
Shift
组合:输入字符 ENTER
:回车键,换行BACK SPACE
:退格键,删除光标前一个字符DEL
:删除键,删除光标后一个字符方向键 ↑↓←→
:在文本中移动光标HOME/END
:移动光标到行首/行尾Page Up/Page Down
:上/下翻页Insert
:切换光标为输入/替换模式,光标将变成竖线/下划线ESC
:退出输入模式,切换回命令模式
底线命令行模式
在命令模式下按下 :
(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有:
:w
:保存文件但不退出。:q
:退出 Vim 编辑器。:wq
:保存文件并退出 Vim 编辑器。:q!
:强制退出Vim编辑器,不保存修改。:w!
:若文件属性为【只读】,强制写入该档案:wq!
:强制保存后退出。:e!
:将档案还原到最原始状态!
vi/vim按键说明
VSCode
快捷键
(当快捷键冲突时,)您可以通过导航到文件 -> 首选项 -> 键盘快捷键(Ctrl+K, Ctrl+S)并在搜索栏中搜索“导航”来更改首选键绑定。
作用 | 快捷键 | 自定义 | |
---|---|---|---|
Linux | Windows | ||
一般 | |||
首选项:打开设置(ui) | Ctrl+, | Ctrl+Alt+S | |
控制台终端显示与隐藏 | ctrl + ~ | ||
显示所有符号 | Ctrl + T | ||
全局搜索 | Ctrl+Shift+F | ||
查找 | Ctrl + F | ||
替换 | Ctrl + H | ||
最近打开的项目(文件夹) | Ctrl+P | ||
通过文件名查找文件(快速打开最近的文件) | Ctrl+E | ||
打开命令面板(通过搜索界面访问 VS Code 中存在的所有可用命令、快捷方式和功能) | Ctrl + Shift + P | ||
跳转标签页 | Ctrl + Tab | ||
关闭文件 | Ctrl+W | Ctrl+F4 | |
关闭所有文件 | Ctrl + K, W | ||
显示/隐藏侧边栏 | Ctrl+B | Alt+1 | |
显示/隐藏终端 | Ctrl+` | ||
打开文件所在文件夹/文件:在文件资源管理器中显示 | Ctrl + Alt + R | Shift+Alt+R | Alt + F1,when editorFocus |
复制文件名(插件 Copy file name) | Ctrl + Alt + E | ||
移动 | |||
向上/向下滚动行 | Ctrl+↑ / ↓ | ||
快速滚动 | 滚动时按住 Alt 键可以以 5 倍速度滚动;此外,您还可以使用编辑器:快速滚动灵敏度 ( editor.fastScrollSensitivity ) 设置更改滚动倍数。 |
||
快速回到顶部 | ctrl + home | ||
快速回到底部 | ctrl + end | ||
前进(编辑位置) | Ctrl+Shift+- | Alt+<- | Alt + Shift + -> |
后退(编辑位置) | Ctrl+Alt+- | Alt+-> | Alt + Shift + <- |
转到行/列 | Ctrl+G | ||
注释与缩进 | |||
单行注释 | [ctrl+k,ctrl+c] 或 ctrl+/ | ||
取消单行注释 | [ctrl+k,ctrl+u] (按下ctrl不放,再按k + u) | ||
多行注释 | [alt+shift+A] | ||
行增加缩进 | ctrl + [ | ||
行减少缩进 | ctrl + ] | ||
多行注释 | /** | ||
文本编辑 | |||
向上/下复制行 | Ctrl+Shift+Alt+↑ / ↓ | Shift+Alt+↑/↓ | Ctrl+D |
向上/下移动行 | Alt + ↑ / ↓ | Ctrl+Shift+↑ / ↓ | |
选择当前行 | Ctrl+L | ||
删除整行 | Ctrl + Shift + K | Ctrl+Y | |
缩小/扩大选区:收起/展开选择:扩大/缩小选区 | Shift+Alt+<-/-> | Ctrl+(Shift)+W | |
代码格式化 | 当前选择的源代码: Ctrl+K Ctrl+F;整个文档格式:Ctrl+Shift+I | 当前选择的源代码: Ctrl+Alt+L | |
重命名符号 | 选择一个符号,然后键入 F2 | ||
光标前/后移动一个整词 | Ctrl+<-/-> | ||
连续选中 | Shift+<-/-> | ||
整词选中 | Ctrl+Shift+<-/-> | ||
用语言结构包围代码块 | (插件:Surround)Ctrl+Shift+T | Ctrl+Alt+W | |
重命名符号/文件(夹) | F2 | ||
选择特定区域 | 第一个位置鼠标单击,第二个位置按住Shift再单击 | ||
查看 | |||
查看和跳转符号 | Ctrl+Shift+O | ||
转到工作区中的符号(Latex 标签、章节) | Ctrl+T | ||
跳转到函数开头 | Ctrl+Shift+O,后直接按Enter | ||
跳转到函数结尾 | Ctrl+Shift+O,后按↓,后按Enter | ||
查看用法 | Ctrl+Shift+F10 | ||
转到定义 | 选择一个符号,然后键入 F12;Ctrl+单击;Shift+F12,小窗浏览定义 | ||
查找所有引用 | Alt+Shift+F12 | Alt+Shift+7 | |
差异跳转 | F7 和 Shift+F7 | ||
将文件与剪贴板进行比较 | Ctrl+K C | ||
转到括号(在所属最近的成对括号间来回跳转) | Ctrl+Shift+\ | ||
全屏 | F11 | Shift+F11 | |
编辑器 | |||
打开上一个编辑器 | Ctrl+PageUp | ||
打开下一个编辑器 | Ctrl+PageDown | ||
打开组中最后一个编辑器 | Ctrl+9 | ||
书签 | |||
书签:插入/删除 | Ctrl+Alt+K | F11 | |
书签:跳至上一个 | Ctrl+Alt+J | ||
书签:跳至下一个 | Ctrl+Alt+L | Ctrl+Alt+K | |
书签:将选择展开到上一个 | Shift+Alt+J | ||
书签:将选择展开到下一个 | Shift+Alt+L | ||
书签:收缩选择 | Shift+Alt+K | ||
LaTeX Workshop | |||
使用配方构建 | Ctrl+Alt+R | ||
查看 LaTeX PDF 文件 | Ctrl+Alt+V | ||
其它 | |||
CMake: 运行但不调试 | Ctrl+F5 | ||
更改颜色主题 | Ctrl+K Ctrl+T | ||
聊天,在侧边栏打开聊天 | Alt+3 |
小技巧
新建文件(夹)
-
鼠标双击左侧“文件夹”空白处,后输入:
1
2
3test.py # 新建文件
test/ # 新建文件夹
test/test.py # 新建文件夹内的文件 -
双击标签栏
-
Ctrl + N 键盘快捷键
-
命令面板(Ctrl+Shift+P) - Create: New File
-
单击文件资源管理器窗格中的
New File...
图标按钮 -
文件 > 新建文件
用户代码片段/实时模板
左下角设置-用户代码片段
VS Code的代码片段填充功能默认使用的是Tab键,而不是空格键或回车键。并且,这个行为是不能被修改的。当你在一个代码片段中,你可以使用Tab键在不同的位置(被
${1}
,${2}
等标记的位置)之间跳转。
1 |
|
生成函数注释
-
函数注释模板插件:
-
C++: Doxygen Documentation Generator
- 设置:C_Cpp › Doxygen: Generated Style
-
Python: autoDocstring - Python Docstring Generator
-
-
GitHub Copilot: 选中函数,
Ctrl+I
打开内联聊天,输入/doc in Chinese
创建(函数)声明/定义
鼠标选中,右键“创建声明/定义”
改变大小写
change-case:快速更改当前选择或当前单词的大小写(camelCase、CONSTANT_CASE、snake_case 等)
选中单词,按下Ctrl+Shift+P
搜索Change Case Commands
...
当然,可以按Ctrl+K S
搜索Change Case
为特定命令设置快捷键。
多代码库编码的工作空间
10 amazing VS Code tips and tricks for rapid coding
想象一下必须在 3 个打开的 VS Code 窗口中来回切换的痛苦;到处打开终端,在错误的代码库中搜索错误的文件,将 Alt + Tab 序列与其他打开的应用程序混合在一起,以及每次切换应用程序时都会造成的精神混乱和延迟。
每个文件夹都是 VS Code 的一个工作区,因此您可以使用文件 > 将文件夹添加到工作区...轻松添加更多文件夹。
一切完成后,您将拥有所需的所有文件夹,并且可以在“文件资源管理器”窗格中轻松访问其中的文件。
当您使用 Ctrl + P 或 Ctrl + Shift + F 搜索文件时,它将应用于所有文件夹中的每个文件。
您还可以使用任何文件夹作为工作目录快速创建新终端。
矩形选择
在 Visual Studio Code 中,您可以通过以下步骤选择一个矩形的区域:
- 按住
Shift
和Alt
键(在 macOS 上是Shift
和Option
键)。 - 同时拖动鼠标(鼠标分别点击开始和结束位置)以选择所需的矩形区域。
其它
- 在“资源管理器”视图中查看当前文件并输入 F2 或者 Enter 选择文件名文本:
- 第一次按 => 选中文件前缀
- 第二次按 => 选中文件全部
- 第三次按 => 选中文件后缀
- 第 4 次按下 => 循环回到前缀
- 等等。
Zotero
快捷键 | 作用 |
---|---|
zotero-reference | |
单击蓝色区域 | 复制参考文献信息,连同标识符一起复制,如DOI。 |
双击顶部XX条参考文献文字 | 复制当前所有参考文献到剪贴板 |
长按蓝色区域 | 编辑参考文献信息。建议中文参考文献使用编辑功能以精简条目,提高导入成功率。 |
Ctrl+单击蓝色区域 | 用系统浏览器打开文献URL,偶尔会查询文献地址消耗一定的时间。 |
一般 | |
ctrl+鼠标滚轮 | 放大/缩小 |
ctrl+鼠标左键在原文/译文之间自由切换 | 翻译 |
主阅读界面若有跳转链接如Fig 4,点击后会在分割界面(横向/竖向)跳转,主阅读界面无跳转,避免点击前进后退。可满足看图,公式,表格的需求。但只针对有跳转链接的PDF。
其它
3-2-1备份规则
3-2-1 备份规则是一种简单、有效的策略,可确保数据安全。它建议您将数据的三份副本保存在两个不同的介质上,其中一份副本保存在异地。让我们来分解一下:
- 数据的三份副本:您的三份副本包括原始数据或生产数据以及另外两份副本。
- 在两种不同的介质上:您应该将数据存储在两种不同形式的介质上。这在今天意味着与 2000 年代末有所不同。我稍后会详细讨论这一点。
- 一份异地副本:您应该在异地远程位置保存一份数据副本,最好距离其他两份副本几英里远。
如果您想保护您的个人信息、照片、工作文件或其他重要数据,3-2-1 备份策略是您的最佳选择。它可以帮助您避免出现容易受到人为错误、硬盘驱动器崩溃、盗窃、自然灾害或勒索软件影响的单点故障。``