其他一些常用快捷键
按键 | 作用 |
---|---|
Ctrl+d |
键盘输入结束或退出终端 |
Ctrl+s |
暂停当前程序,暂停后按下任意键恢复运行 |
Ctrl+z |
将当前程序放到后台运行,恢复到前台为命令fg |
Ctrl+a |
将光标移至输入行头,相当于Home 键 |
Ctrl+e |
将光标移至输入行末,相当于End 键 |
Ctrl+k |
删除从光标所在位置到行末 |
Ctrl+u |
清除当前命令 |
Alt+Backspace |
向前删除一个单词 |
Shift+PgUp |
将终端显示向上滚动 |
Shift+PgDn |
将终端显示向下滚动 |
软链接与硬链接
- 硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。删除其中一个,另一个还在,占用2倍内存。
- 软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。相当于Windows的快捷方式,Mac OS 的替身。删除原本文件,软链接失效。
软链接
ln -s /Users/<username>/<myfile> /Users/<username>/<link>/<soft>
ln -s ~/<myfile> ~/<link>/<soft>
若不在同级目录下,写绝对路径
应用场景
- 在进行环境变量设置的时候,原路径过于复杂,采用软链接进行简化
- 将不同路径下的文件统一到同一目录进行访问,方便查询访问
硬链接
TODO:待完善
ln ~/<myfile> ~/<link>/<hard>
系统目录结构
系统根目录用/
表示
用户主目录用~
表示
Linux 目录
Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图:
/home:存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/<user>
,可以用~
表示
Unix目录
以下为Unix通用目录
目录 | 功能 |
---|---|
/bin | 传统unix命令的存放目录,如ls,rm,mv等。 |
/sbin | 传统unix管理类命令存放目录,如fdisk,ifconfig等等 |
/usr | 第三方程序安装目录 |
/dev | 设备文件存放目录,如何代表硬盘的/dev/disk0。 |
/usr/bin, /usr/sbin, /usr/lib | 其中/usr/lib目录中存放了共享库(动态链接库). |
/etc | 标准unix系统配置文件存放目录,如用户密码文件/etc/passwd。此目录实际为指向/private/etc的链接 |
/tmp | 临时文件存放目录,其权限为所有人任意读写。此目录实际为指向/private/tmp的链接 |
/var | 存放经常变化的文件,如日志文件。此目录实际为指向/private/var的链接 |
Mac OS目录
Mac OS 目录 = Unix 系统通用目录 + 独有目录
以下为独有目录
目录 | 功能 |
---|---|
/Applications | 应用程序目录,默认所有的GUI应用程序都安装在这里 |
/Library | 系统的数据文件、帮助文件、文档等等 |
/Network | 网络节点存放目录 |
/System | 只包含一个名为Library的目录,这个子目录中存放了系统的绝大部分组件,如各种framework,以及内核模块,字体文件等等。 |
/Users | 存放用户的个人资料和配置。每个用户有自己的单独目录。 |
/Volumes | 文件系统挂载点存放目录。 |
/cores | 内核转储文件存放目录。当一个进程崩溃时,如果系统允许则会产生转储文件。 |
/private | 里面的子目录存放了/tmp, /var, /etc等链接目录的目标目录。 |
Mac OS的用户主目录为/Users/<username>
,可以用~
表示
hosts
文件实际在/private/etc/hosts
, 软链接为/etc/hosts
查看文件
cat 查看文件内容
cat 1.txt
more/less逐页查看文件内容
- -s 若有多个空行,只显示一行空白行
more 1.txt
more -s 1.txt
常用操作
符号 | 描述 |
---|---|
= | 输出当前行的行号及百分比 |
q | 退出 more |
空格键 | 向下滚动一屏 |
b | 返回上一屏 |
more 和 less的区别:
- less不必读整个文件,加载速度会比more更快
- less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容
head查看文件前几行(默认10)
head -n <filename>
tail查看文件后几行(默认10)
tail -n <filename>
ssh
SSH是安全的加密协议,用于远程连接另一台机器
ssh远程登录
ssh <username>@<ipaddress>
eg:
ssh root@172.16.90.100
touch 创建文件
创建一个文件
touch 1.txt
批量创建文件
touch {0..9}.txt
mkdir 创建文件夹
创建一个文件
mkdir dir
批量创建文件
mkdir dir{0..9}
rm 删除文件
删除文件
rm 1.txt
删除文件夹
rm -rf dir0
cp 复制
cp [可选参数] file_source file_target
参数:
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
复制文件到多个文件夹(待完善)
echo A B | xargs -n 1 cp -r -v test1 # 复制test1文件到A、B文件夹下
scp 远程文件传输
进行远程文件拷贝/传输
scp是 secure copy的缩写
scp [可选参数] file_source file_target
- 从本地复制到远程
scp local_file <remote_username>@<remote_ipaddress>:remote_file
eg: 复制~/Desktop/Tasks/目录下的所有文件,不包括Tasks目录
# -r: 递归复制整个目录
scp -r ~/Desktop/Tasks/* root@172.16.90.100:/web/users/<username>/systemd-vnc-py3-nter-ml-c-0.1.0
- 从远程复制到本地
scp <remote_username>@<remote_ipaddress>:remote_file local_file
eg: 复制~/Desktop/Tasks/目录下的所有文件,不包括Tasks目录
# -r: 递归复制整个目录
scp -r root@172.16.90.100:/web/users/<username>/systemd-vnc-py3-nter-ml-c-0.1.0 ~/Desktop/Tasks/
diff 比较文件异同
Linux diff命令用于比较文件的差异。
diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
eg: 比较两个文件
diff 1.txt 2.txt
并排格式输出
diff 1.txt 2.txt -y -W 50
- -y或–side-by-side 以并列的方式显示文件的异同之处。
- -W<宽度>或--width<宽度> 在使用-y参数时,指定栏宽。宽度>宽度>
- -r或–recursive 比较子目录中的文件。
- -q或–brief 仅显示有无差异,不显示详细的信息。
查看Linux本机ip
ifconfig
127.0.0.1 本机IP,localhost
端口号
IP就像一个班,端口号对应每一个同学。
每一个应用程序对应一个端口号。
grep 文本搜索
grep 命令用于查找文件里符合条件的字符串。
grep abc *txt # 查找后面含有txt字样的文件中包含abc的文件,并打印出该字符串的行
grep -i abc 1.txt # 查找1.txt文件中是否含有abc,不区分大小写
- -i 或 –ignore-case : 忽略大小写
- -r或–recursive:查找子目录中的文件。
若要查找目录,建议使用
rg
命令。
- -n: 显示结果所在行号
- -c: 统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数
- -o: 只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行
- -v: 输出不带关键字的行(反向查询,反向匹配),v: reverse
- -w: 匹配整个单词,如果是字符串中包含这个单词,则不作匹配,w:word
- -Ax: 在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A: after
- -Bx: 在输出的时候包含结果所在行之前的指定行数,这里指之前的x行,B: before
- -Cx: 在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行,C: context上下文
- -e: 实现多个选项的匹配,逻辑or关系
- -q: 静默模式,不输出任何信息,当我们只关心有没有匹配到,却不关心匹配到什么内容时,我们可以使用此命令,然后,使用”echo $?”查看是否匹配到,0表示匹配到,1表示没有匹配到。q: quite。
- -P: 表示使用兼容perl的正则引擎。
- -E: 使用扩展正则表达式,而不是基本正则表达式,在使用”-E”选项时,相当于使用egrep。
find 查找文件
find path -option "要查找的内容"
. :当前目录
~:用户主目录
/: 根目录
在当前目录及子目录中markdown文件
find . -name '*.md'
base64 加密
base64 test.txt > test_code.txt
base64 -D test_code.txt # 解密,Mac为-D,linux为-d