1.常用文件管理命令
默认在home/acs/家目录下
ls --help
文件路径:
1、绝对路径:从根目录(/)开始
2、相对路径:从当前目录开
3、.:当前目录
..:上一个目录
4、~/:家目录
ls -l 每一个文件的详细信息
ls -h 人性化输出
ls -a 显示所有文件(包括隐藏文件)(以.开头的文件会被藏起来)
把隐藏文件变成可见 mv .tmp.txt tmp.txt
ls -A 不显示当前目录和上层目录
cd - 返回上一次所在的目录
cp 复制+粘贴+重命名
cp a/tmp.txt b/(把a文件夹里面的tmp.txt复制到b文件夹里面)
cp a/tmp.txt b/tmp2.txt (把a文件夹里面的tmp.txt复制到b里面,并且重命名为tmp2.txt)
cp a b -r (把a这个文件夹整个复制到b这个路径下面)复制目录
cp a c -r把a复制一份到当前文件夹 重命名为c
mkdir
mkdir /a/b/c -p(创建一串文件夹,例如:a里有b,b里有c)
mkdir --help 查看mkdir的所有参数
history 显示历史指令
rm
rm c -r 删除文件夹c(-r是递归删)
rm *.txt 同时删除t1.txt和t2.txt文件
rm a
2.tmux和vim
gg d G 删除所有内容
d和dd是剪切
如果删的是某一行的话,p的时候就会在当前选中的这一行的下一行去粘贴
如果要将所删除的内容粘贴到某一行的末尾不要另起一行,则先定位到末尾[End]然后p就可以直接接到这一行的后面
3.shell语法
bash
exit或者ctrl+d 退出子进程
stdout:等价于 cout<<endl;
exit code:等价于return 0;
man echo
stdout 1表示真,0表示假
exit code 0表示真,非0表示假
从标准读入中读取参数:用read来读
从file.sh传入一个参数来读:用$1 $2 $3来读
**小技巧:如何将服务器中的文件整体复制出来?**
1. 退出tmux
2. cat filename:展示filename的文件内容
3. 鼠标选中文本开头的若干字符
4. 用滚轮滑到文件结尾
5. 按住Shift,同时鼠标点击文件结尾,此时会选中文件所有内容
6. Windows/Linux下,按Ctrl + insert可以复制全文;Mac下,按Command + c可以复制全文。
**复制vim中的代码:**
1. 按下ctrl + a后手指松开,然后按z:将当前pane全屏
2. :set nonu 隐藏行号
3. 按住shift键拖动鼠标
4. 按ctrl+insert键进行复制
5. 按下ctrl + a后手指松开,然后按z:将当前pane取消全屏。
6. :set nu 显示行号
4.ssh
退出:exit/ctrl+d
5.git
acs@d34f6eb013fa:~/project$ git status [1068/1642]
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: a.txt
deleted: b.txt
no changes added to commit (use "git add" and/or "git commit -a")
acs@d34f6eb013fa:~/project$ git add . acs@d34f6eb013fa:~/project$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: a.txt
deleted: b.txt
acs@d34f6eb013fa:~/project$ git restore
acs@d34f6eb013fa:~/project$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: b.txt
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: a.txt
acs@d34f6eb013fa:~/project$ git restore a.txt # 将一个文件恢复到暂存区里面的内容
acs@d34f6eb013fa:~/project$ ls
a.txt main.cpp readme.txt
rm project -rf 删除git文件
git log
AC Git云端仓库:
从终端传一个项目
菜单->项目->新建项目->创建空白项目->项目名称要和终端里的相同
注意‼️取消勾选使用自述文件初始化项目
新建项目
本地git仓库:
git remote remove origin
git remote add origin git@git.acwing.com:cyq/project.git
git push -u origin master
删除已经配置好的云端仓库:
设置->找到高级点击展开->找到删除项目点击删除项目->是的,删除项目
6.thrift
thrift用来存储所有的thrift的接口
定义接口:
添加玩家
删除玩家
生成C++代码:thrift -r
编译C++代码:
g++ -c main.cpp match_server
7.管道、环境变量与常用命令
查某一个进程 ps aux | grep file_name
文件权限
ll可以看到所有文件的权限
d|rwx|rwx|rwx|
自己 同组 其他
d表示文件夹
-表示文件
l表示链接文件
rwx可读可写可执行
全文件夹搜索功能:find homework/lesson_6/ -name '*.cpp' | xargs cat | grep 'acs_0'
8.租云服务器及配docker环境
工程课 Linux-8.0. [Linux] 购买腾讯云服务器及环境配置,超详细,一站式解决购买云服务器的问题
https://www.acwing.com/file_system/file/content/whole/index/content/4721259/
租云服务器全过程
云服务器平台:阿里云https://www.acwing.com/blog/content/11681/
本菜鸡购买云服务器全过程记录以及三平台的个人选择过程https://www.acwing.com/blog/content/27696/
根据docker安装教程安装好之后如果安装失败
docker安装失败后按照提示输入sudo apt install docker.io
安装完成后输入docker --version能看到版本号就说明安装成功了
如何将一个服务器的镜像迁移到另一个服务器上:
1. ssh server1 先登录的服务器server1
2. docker save -o ubuntu_20_04.tar ubuntu:20.04:将镜像ubuntu:20.04导出到本地文件ubuntu_20_04.tar中
3. chmod +r ubuntu_20_04.tar 加上可读权限
4. 迁移到其他服务器上
1. 先退回AC Terminal
2. scp sever1:ubuntu_20_04.tar . 将服务器server1的.tar文件先复制到本地
3. scp ubuntu_20_04.tar server2 再将这个文件传到server2的服务器
4. scp ubuntu_20_04.tar server2: 到server2把server1的镜像拉取出来
docker ps:显示所有正在运行的容器
docker ps -a:查看本地的所有容器
docker [contaienr] run -it ubuntu:20.04:创建并启动并进入一个容器
docker [contaienr] run -itd ubuntu:20.04:创建并启动一个容器
ctrl+d 可以直接将容器关掉
在容器中执行命令:这个容器必须要在运行中
docker stats:查看所有容器的统计信息,包括CPU、内存、存储、网络等信息,退出用ctrl+c
0.0.0.0/0的意思是向所有ip开放