前言
模型要部署在GCP ,只能花了一个下午复习下Linux 常见命令行,感觉还不错。
Linux内核
Linux是指Linux内核 ,内核之所以厉害在于它能操作市面上的硬件设备,内核通过系统调用完成对硬件的调用。为了能够使用系统调用,就出现了命令行程序(终端),就是bash,zsh etc. 。各厂商对内核的各自修改封装,就是发行版(Ubuntu,Kali etc.)。
文件系统
单用户操作系统:windows
多用户操作系统:Linux,Unix etc.
Linux的根目录是/,和win的盘符有很大不同。在powershell中pstree只能展示一个盘符的文件目录,在Linux终端里tree命令可以展示整个系统的文件目录。所以终端中切换目录的命令是 cd /home/downloads
,第一个/
是根目录的意思。
整个系统的文件结构简略版应该如下:
/——
|----/bin 二进制文件目录,主要用于具体应用
|---/etc
|---/home 不同用户在 home 下有各自的目录
|---/lib
|---/usr
|---/bin /usr/bin 后期安装的软件
|---/sbin /usr/sbin 超级用户的一些管理程序
|---/sbin 系统管理员应用的二进制代码
目录要点: .
表示当前目录,..
表示上级目录,在mv ,cp 到当前目录时可以直接用 .
表示目的路径。
常见终端命令
终端命令格式command [-options] [parameter]
其中方括号是可选参数,没有也没有关系。 e.g: ls
和ls -lh
小技巧:ctrl+shift+=
放大终端字号ctrl+-
缩小终端字号,在图形化界面才有用。
man
man 查询命令的使用手册
按键 | 作用 |
---|---|
空格 | 前进一页 |
Enter | 前进一行 |
f | 前滚一页 |
b | 回滚一页 |
ls
参数 | 作用 |
---|---|
a | 显示隐藏文件 |
l | 列出详细信息 |
h | 科学显示大小(k,mb为单位) |
通配符 | 作用 |
---|---|
* | 代表任意个数字符 |
? | 代表一个字符 |
[ ] | 代表括号内字符的任意一个 |
cd
参数 | 作用 |
---|---|
- | 可以在最近两次的工作目录下切换 |
touch
touch
①用于创建文件
②修改最后修改时间
mkdir
参数 | 作用 |
---|---|
p | 连续创建 |
rm
参数 | 作用 |
---|---|
r | 递归删除目录 |
f | 强制删除 |
综合例子
cp
命令格式cp 源文件 目的地
。
参数 | 作用 |
---|---|
i | 覆盖提示 |
r | 递归拷贝目录和所有文件 |
mv
命令格式mv 源文件 目的地
。mv
不仅可以移动文件还可以重命名和覆盖。
参数 | 作用 |
---|---|
i | 覆盖提示 |
查看文件内容
命令 | 用途 |
---|---|
cat | 查看完整文件 |
more | 分屏查看 |
grep | 查找 |
cat
参数 | 作用 |
---|---|
b | 行号(不含空行) |
n | 行号(所有行) |
grep
命令格式grep [options] 关键字 文件
参数 | 作用 |
---|---|
n | 匹配行号 |
v | 求反 |
i | 模糊查找 |
模式查找
参数 | 作用 |
---|---|
^a | 以a开头的行 |
k$ | 以k结尾的行 |
echo 、> 和>>
>
输出到文件,会覆盖
>>
追加到文件尾
管道 |
表示上个命令结果传递给下个命令使用,左侧为第一个命令,右侧为第二个命令。
远程控制
查看网卡ipconfig
重启shutdown [options] [时间]
,-r
重启。
ssh
命令格式ssh 用户名@ip 或者域名
,e.gssh root@100.100.100.1
远程拷贝scp 用户名@ip:文件名或者路径 @ip:文件名或者路径
,e.gscp -P 22 fxxk.txt root@100.100.100.1:abc.txt
参数-r
目录,-p
非22,指定端口。
TODO: 配置公钥私钥那个记不太清了,回头补。
权限
chmod
chmod 修改用户/组对文件/目录的权限。
命令chmod -R 755 文件名|目录名
,其中7为拥有者权限,第一个5为组成员权限,第二个5为其他用户权限。
拥有者 | 组成员 | 其他用户 |
---|---|---|
rwx | rwx | rwx |
421 | 421 | 421 |
7=4+2+1,即拥有读写执行权限。以此类推,可得不同数字代表的含义。
这里x为可执行权限。
若将某.py的文件设为可执行文件,在文件开头编辑#!/usr/bin/python
终端中执行 ./文件名 即可执行该文件
chown
修改文件所属用户
chgrp
变更文件/目录所属组 chgrp -R 组名 目录名/文件
组管理
命令 | 作用 |
---|---|
groupadd | 添加组 |
groupdel | 删除组 |
查看组cat /etc/group
useradd
参数 | 作用 |
---|---|
m | 自动建立用户在/home 下的目录 |
g | 指定用户所在组,否则建立一个同名的组 |
passwd
命令passwd 用户名
userdel
命令userdel -r 用户名
who
查看当前用户
usermod
命令usermod -G 附加权限
,e.gusermod -G sudo ss
。赋予ss使用sudo的权利。
su
命令 su -用户名
切换用户,并切换目录。
exit
退出当前登录的用户。
查看系统信息
查看系统时间date
查看日历cal
,查看完整一年 -y
。
查看磁盘剩余空间 df -h
查看目录下文件大小 du -h [目录名]
查看进程信息
查看进程详细信息 ps aux
参数 | 作用 |
---|---|
a | 所有进程 |
u | 详细信息 |
x | 没有控制终端的进程 |
其他命令
查找文件 find [路径] -name " "
软连接 ln -S 被链接源文件 链接文件名
,就是类似于快捷方式。
硬连接就是相当于一种声明,硬连接数表示有多少种方式进入到该目录|文件。
当硬连接数为0时,文件才会被删除。
打包、压缩
打包tar -cvf 打包文件名.tar 被打包路径/文件
解包tar -xvf 打包文件名.tar 解包路径/文件
文件名tar.gz
表示先打包了再压缩了。
压缩打包tar -zcvf 打包文件名.tar.gz 被打包路径/文件
解压解包tar -zxvf 打包文件名.tar.gz 解包路径/文件
遇到tar.bz2
的文件
压缩打包tar -jcvf 打包文件名.tar.bz2 被打包路径/文件
解压解包tar -jxvf 打包文件名.tar.bz2 解包路径/文件
apt
卸载 apt remove