Linux笔记
shell命令
基础命令
man/info [prog]
:查看帮助文档
echo xxxx
:输出信息到控制台
sleep Number [单位(s)]
:让系统休眠Number时间(默认是:s)
ps
:显示当前进程状态
shutdown
:关机
reboot
:重启(shutdown -r now
)
pwd
:显示当前路径
cd <dir>
:切换目录
ls [-a] [-lh] [file...]
:列出当前目录下的文件(默认是所有文件)
-a
:显示隐藏文件和文件夹
-l
:将文件的详细信息都列出来(文件操作权限、创建用户、文件大小、上次修改时间...)
-lh
(相当于ls -l -h
):在前面-l
命令的基础上以人类可读的形式展示信息(文件大小用K、M等表示)
alias <new_order>=<expression>
:起别名,将一个命令表达式<express>
命名为<new_order>
mkdir <new_dir>
:新建文件夹
touch <new_file>
:新建文件
rm [-i] [-f] [-r] <file>
:删除文件
-i
:交互模式,在删除文件前询问用户(一般会设置alias rm='rm -i'
)
-f
:强制删除文件,忽略不存在的文件
-r
:递归删除文件夹及其子文件夹和文件
rmdir <empty_dir>
:删除空文件夹
ln [-s] <src> <des>
:链接
-s
:软链接(相当于Windows中的快捷方式,当源文件被删除后,目标文件不可用)无
-s
时是硬链接,相当于复制源文件到目标文件
cat [-n] [-b] <file>
:将文件中的字符输出到终端
-n
:在每行输出前面添加行号
-b
:与-n
类似,但只对非空行前面添加行号
head [-c <number>] [-n <number>]
:显示文件头部的部分内容
-c <number>
:显示文件前面<number>
字节的内容
-n <number>
:显示文件前面<number>
行的内容
解压缩命令:
unzip xxx.zip
:解压xxx.zip文件
tar -zxvf xxx.tgz
:解压xxx.tgz文件
tar
: 处理归档文件
z
: 使用gzip程序来解压缩
x
: 表示解压缩(extract)
v
: 解压缩是显示详细信息(verbose)
f
: 表示后面跟着的是文件名
压缩命令:
tar -czvf xxx.tar /path/of/directory
:压缩目录位xxx.tar压缩文件
c
: 表示创建归档文件(create)
test命令
数值测试
参数 | 说明 |
---|---|
-eq | 等于则为真 |
-ne | 不等于则为真 |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |
# 示例
num1=100
num2=100
# 可以简写成:`if [ $num1 -eq $num2 ]`
if test $num1 -eq $num2
then
echo "Equal!"
else
echo "Not Equal!"
fi
文件测试
参数 | 说明 |
---|---|
-e 文件名 | 如果文件存在则为真 |
-r 文件名 | 如果文件存在且可读则为真 |
-w 文件名 | 如果文件存在且可写则为真 |
-x 文件名 | 如果文件存在且可执行则为真 |
-s 文件名 | 如果文件存在且至少有一个字符则为真 |
-d 文件名 | 如果文件存在且为目录则为真 |
-f 文件名 | 如果文件存在且为普通文件则为真 |
-c 文件名 | 如果文件存在且为字符型特殊文件则为真 |
-b 文件名 | 如果文件存在且为块特殊文件则为真 |
if test -e <filename>
# 可以简写成:`if [ -e <filename> ]`
then
echo '文件已存在!'
else
echo '文件不存在!'
fi
grep命令
流式控制
if
if <condition1>
then
<command1>
<command2>
...
elif <condition2> ;then # 当关键词写在一行时需要分隔符`;`
<command3>
...
else
<commandN>
fi
管道
使用符号
|
表示
# example
echo "hello world" | head -c5
# out: "hello"
管道相当于将前面命令输出的结果送到后面的命令中作为输入,并且可以叠加多个管道
重定向
vim
sudo apt install vim
:安装vim编辑器
vim <file>
:使用vim编辑器编辑文件
详细教程可参考博客:https://www.cnblogs.com/scy157609962/p/18547210
ssh
-
安装ssh工具
sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh
:设置ssh服务自启动sudo ufw allow ssh
sudo ufw reload
:添加防火墙配置 -
创建ssh key
ssh-keygen -t rsa [-C "comment"]
cat ~/.ssh/id_rsa.pub
ssh -T <username>@<ip>
:测试ssh连接是否成功如果是在GitHub上添加ssh key,则命令是:
ssh -T git@github.com
-
利用ssh key连接远程服务器(不需要验证登录密码)
ssh-copy-id [-i <ssh_public_key_file>] <username>@<ip>
:将本地ssh公钥复制到服务器上 -
删除旧的密钥条目:
ssh-keygen -R <ip_address>
git
进程查询
sudo netstat -tulnp | grep :<port>
sudo kill -9 <PID>
:杀死指定进程
VMWare虚拟机软件
Ubuntu虚拟机中挂在共享文件夹
-
在虚拟机设置中启用
共享文件夹
,并添加主机文件夹路径 -
Ubuntu中挂在共享文件夹,运行命令:
sudo umount /mnt/hgfs
sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=0 -o gid=0 -o umask=022
Docker
https://713.subts123.icu/api/v1/client/subscribe?token=efd64a8f64d20145d6400a9ce561df82
CUDA
清理CUDA缓存:
fuser -v /dev/nvidia* | awk '{for(i=1;i<=NF;i++)print "kill -9 " $i;}' | sudo sh