**指令的基本格式: xxxx [-选项] [参数]


新安装系统操作

更新软件

  sudo apt upgrade 更新并安装所有软件

更改软件源

备份软件源
sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
编辑源文件
sudo vim /etc/apt/sources.list
添加清华源信息

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

升级软件源 sudo apt update

添加SSH 远程连接

sudo apt update 更新软件源

sudo apt install openssh-server 安装ssh

systemctl enable ssh 是能

systemctl start ssh 开启

ufw allow ssh 开启防火墙

ufw allow enable 是能

接下来即可通过ssh远程工具 访问linux IP地址 来连接ssh

安装 nomachine 远程桌面软件

下载 nomachine linux软件,选择对应版本的 deb文件
https://downloads.nomachine.com/linux/?id=1
下载完后 dpkg -i nomachine_x.x.x_x_arm64_arm64.deb 即可完成安装

之后在windows上安装 nomachine 即可自动搜索同一网络下的

不接显示器的话,远程桌面的分辨率会很低
xrandr --fb 2560x1440 这行命令设置系统的分辨率

在用nomachine连接一台服务器(未接显示器)时,可以登录,但是登录后现实黑屏,网上搜了一下,找到如下答案
在服务器上手动关闭X server,采用Nomachine自带的显示服务,运行命令如下:

sudo systemctl stop gdm3
sudo /etc/NX/nxserver --restart

客户端重新连接远程桌面

在nomachine设置分辨率,选择固定分辨率
微信截图_20230723120126.jpg

安装 FTP 文件传输工具

安装FTP:apt-get install vsftpd
打开 vi /etc/vsftpd.conf
QQ截图20230715150607.jpg

安装docker

进入官网的ubuntu安装页面
https://docs.docker.com/engine/install/ubuntu/

按页面提示的进行操作

安装完后再装个 docker-compose

sudo apt install docker.io -y

docker镜像加速

注册 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

创建配置文件 sudo mkdir -p /etc/docker

编辑添加配置信息

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://yayc7vs1.mirror.aliyuncs.com"]#替换为自己的
}
EOF

重启docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

docker 部署 ddnsto

docker基础知识学习 https://www.runoob.com/docker/docker-command-manual.html

ddnsto dockerhub地址 https://hub.docker.com/r/linkease/ddnsto/

ddnsto 官网 https://www.ddnsto.com/

docker命令

sudo docker run -d \
--name=ddnsto \
-e TOKEN=53b5c075-e11c-xxx-9134-af50a9ae6231 \ #替换为自己的
-e DEVICE_IDX=0 \
-v /etc/localtime:/etc/localtime:ro \
-e PUID=1000 \
-e PGID=1000 \
linkease/ddnsto

-e :配置环境变量

-v:文件目录映射


echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

"deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "jammy stable

文件操作

ls 命令的参数和选项

1、指令格式 ls [-a -l -h] [linux路径] 列出所在目录的列表 list
&emsp;-a (-all的意思) 列出所在目录所有的文件 包括隐藏文件(文件名第一个字符是.就会隐藏)
&emsp;-l (详细信息) 列出时间等信息。 竖向列表
&emsp;-h 以易于阅读的方式,显示出文件夹大小
同时应用两中选项如:ls -a-l /home/laohu ls -al /home ls -la /home

laohu@ubuntu:~$ ls /home/laohu
bash test vivado_2154.backup.log vivado_2649.backup.jou vivado.log xrc.log 文档
Downloads vitis_pid21865.str vivado_2225.backup.jou vivado_2649.backup.log vivado_pid2154.str 公共的 下载
peta_prj vitis_pid2375.str vivado_2225.backup.log vivado_3016.backup.jou vivado_pid2300.str 模板 音乐
ps_hello vitis_pid2827.str vivado_2569.backup.jou vivado_3016.backup.log webtalk.jou 视频 桌面
ps_hello2 vivado_2154.backup.jou vivado_2569.backup.log vivado.jou webtalk.log 图片

cd 切换工作目录

cd change directory
语法: cd [linux路径]
*cd命令无需选项只有参数,表示切换到哪个目录
*cd命令直接执行,不写参数,表示回到home目录
*cd ..返回上一级目录

pwd 查看当前工作目录路径

pwd (print work directory)
直接使用 无参数
作用是输出当前所在的工作目录

相对路径和绝对路径

cd xxx
cd ~ 回到home目录 ~表示home目录
cd ../.. 上一级的上一级

mkdir 新建文件夹

mkdir (Make Directory)
语法: mkdir [-p] 路径
-p 选项可选,自动创建不存在的父目录,创建多层级的目录。

laohu@ubuntu:~$ pwd
/home/laohu
laohu@ubuntu:~$ mkdir make_dirctory
laohu@ubuntu:~$ ls -l
总用量 228
lrwxrwxrwx 1 root root 9 Jan 18 23:44 bash -> /bin/bash
drwxrwxr-x 3 laohu laohu 4096 Feb 22 18:08 Downloads
drwxrwxr-x 2 laohu laohu 4096 Feb 23 18:28 make_dirctory

touch 创建文件

语法: touch linux文件
无选项 参数为 文件名称.格式

laohu@ubuntu:~/make_dirctory$ touch kun.txt
laohu@ubuntu:~/make_dirctory$ ls
kun.txt

cat 查看文件内容

语法: cat linux 路径

laohu@ubuntu:~/Downloads/petalinux_offine_pkg$ cd
laohu@ubuntu:~$ cd make_dirctory/
laohu@ubuntu:~/make_dirctory$ cat kun.txt
sdgjpasmfasg[pkgsflasd

more 查看文件内容 支持翻页

语法 more linux路径

空格 翻页查看
q 退出查看

cp 复制文件\文件夹

cp (copy)
语法:cp [-r] 参数1 参数2
-r选项,可选,用于复制文件夹使用,表示递归
参数1 linux路径,表示被复制的文件或文件夹名称
参数2 linux路径 表示要复制去的地方的文件名

mv 移动文件\文件夹

mv (move)
语法:mv 参数1 参数2
参数1 需要移动的文件
参数2 要去的文件夹路径 也可加上文件名 则改名

.bak 备份文件

sudo mv a a.bak 备份a文件
.bak 是备份文件的扩展名,通常是为了防止数据丢失而创建的备份文件。当某个文件被更改时,会将原文件保存为 .bak 文件,以便在需要时可以还原到原始版本。

例如,在编辑文档、数据库或其他重要的文件时,有时会将原始文件复制为 .bak 文件,以避免在保存文件时发生错误或文件受到破坏的情况下丢失数据。此外,一些应用程序也会自动生成 .bak 文件来保护其数据。

要恢复 .bak 文件,通常只需要将其重命名为其原始文件名(去掉 .bak 扩展名),然后用相应的程序打开即可。但是,如果您不知道 .bak 文件对应的原始文件名或类型,就需要在尝试打开文件之前先确定文件类型。

rm 删除文件、文件夹

rm(remove)
语法:rm [-r -f] 参数1 参数2 …
-r 同cp -r 一样 删除文件夹
-f (force) 强制删除 需root管理员
参数值要删除的文件或文件夹路径们 空格隔开

通配符 模糊匹配 *
test* 表示开头是test的内容
*test 表示结尾是test的内容
test 表示任何含test的内容

laohu@ubuntu:~$ ls
bash test vivado_2649.backup.log
Desktop Videos vivado_3016.backup.jou
Documents vitis_pid21865.str vivado_3016.backup.log
Downloads vitis_pid2375.str vivado.jou
make_dirctory vitis_pid2827.str vivado.log
Music vivado_2154.backup.jou vivado_pid2154.str
peta_prj vivado_2154.backup.log vivado_pid2300.str
Pictures vivado_2225.backup.jou webtalk.jou
ps_hello vivado_2225.backup.log webtalk.log
ps_hello2 vivado_2569.backup.jou xrc.log
Public vivado_2569.backup.log
Templates vivado_2649.backup.jou
laohu@ubuntu:~$ rm make*
rm: cannot remove 'make_dirctory': Is a directory
laohu@ubuntu:~$ rm -f make*
rm: cannot remove 'make_dirctory': Is a directory
laohu@ubuntu:~$ cd make_dirctory/
laohu@ubuntu:~/make_dirctory$ rm *txt
laohu@ubuntu:~/make_dirctory$ pwd
/home/laohu/make_dirctory
laohu@ubuntu:~/make_dirctory$ ls
laohu@ubuntu:~/make_dirctory$

.tar.gz文件压缩\解压

语法:tar [-f-z-j-Z-v-O] 目标文件 linux路径\名称
1、压缩.tar.gz文件:
&emsp;&emsp;语法:tar -zcvf 压缩文件名.tar.gz 被压缩文件名
&emsp;&emsp;eg:tar -zxvf demo.tar.gz test
2、解压:
&emsp;&emsp; 语法:tar -zxvf 压缩文件名.tar.gz -C linux路径
&emsp;&emsp; eg:tar -zxvf demo.tar.gz -C /home

必选参数:
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
可选参数:
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

zip文件压缩\解压

压缩语法:zip -r 文件名.zip 路径
解压语法:zip 文件名.zip 路径
实际用解压:zip 文件名.zip -d 路径

which 查找命令

功能:查找命令的程序文件存放在哪里
语法:which 要查找的命令
linux命令,本体是一个个的二进制可执行程序,和windows中的exe文件一个意思

find 查找文件

按照文件名-语法:find 起始路径 -name “被查找文件名”

grep 通过关键字过滤文件行

语法: grep [-n] 关键字 文件路径
-n 可选 表示在结果中显示匹配二点行的行号
关键字 必填 表示过滤的关键字,带有空格或其他特殊符号,建议用 “ “ 将关键字包围起来
文件路径 必填 表示过滤内容的文件路径 可作为内容输入端口

laohu@ubuntu:~/Documents/heima$ grep -n heima grep.txt 
1:asdfjheahgjheimaasfas
laohu@ubuntu:~/Documents/heima$ cat grep.txt
asdfjheahgjheimaasfas
asfsadgjsdg
khgdfjspodgej
sdjw-k0-fgk0-
laohu@ubuntu:~/Documents/heima$ grep -n heima grep.txt
1:asdfjheahgjheimaasfas

wc 文件内容的统计

语法 : wc [-c -m -l -w] 文件路径

-c 统计字节数量
-m 统计字符数量
-l 统计行数
-w 统计单词数量
参数 文件路径 可作为内容输入

| 管道符 将|左边的结果作为右边命令的输入

laohu@ubuntu:~/Documents/heima$ cat grep.txt | grep -n heima grep.txt 
1:asdfjheahgjheimaasfas

echo 在命令行内输出指定内容

语法: echo 输出的内容
无需选项 只有一个参数 表示要输出的内容 复杂内容 加””

在windows的cmd指令中也有这个命令 比较类似 print

反引号 ` 输出目标的结果

laohu@ubuntu:~/peta_prj/linuxPsBase/app_helloworld$ echo pwd
pwd
laohu@ubuntu:~/peta_prj/linuxPsBase/app_helloworld$ echo `pwd`

重定向符 >和>>

‘>’ 将左侧命令的结果,覆盖写入到符号右侧指定的文件中
‘>>’ 将左侧命令的结果,追加写入到符号右侧指定的文件中 自动换行

tail 查看文件尾部内容

语法: tail [-f -num] linux路径

-f 表示持续跟踪
-num 表示 查看尾部多少行

vi/vim 编辑器

语法 vi/vim 文件

vim有三种工作模式:命令模式 - 输入模式 - 底线命令模式
命令模式:对文件进行编辑,如删除某行
输入模式:写作修改
底线命令模式: 保存 退出

pC96P8f.png

命令模式 到 输入模式 按 i 键
输入模式 到 命令模式 按ESC键
命令模式 到 底线命令模式 按 :

命令模式:dd 删除一行 yyp 复制 u 撤销
底线模式: w 保存 q 退出 ! 强制

插入命令
i 在当前位置生前插入

I 在当前行首插入

a 在当前位置后插入

A 在当前行尾插入

o 在当前行之后插入一行

O 在当前行之前插入一行

查找命令
/text  查找 text,按 n 健查找下一个,按 N 健查找前一个。

?text  查找 text,反向查找,按 n 健查找下一个,按 N 健查找前一个。

vim 中有一些特殊字符在查找时需要转义  .*[]^%/?~$

:set ignorecase  忽略大小写的查找

:set noignorecase  不忽略大小写的查找

查找很长的词,如果一个词很长,键入麻烦,可以将光标移动到该词上,按 * 或 #键即可以该单词进行搜索,相当于 / 搜索。而 #命令相当于? 搜索。

:set hlsearch  高亮搜索结果,所有结果都高亮显示,而不是只显示一个匹配。

:set nohlsearch  关闭高亮搜索显示

:nohlsearch  关闭当前的高亮显示,如果再次搜索或者按下 n 或 N 键,则会再次高亮。

:set incsearch  逐步搜索模式,对当前键入的字符进行搜索而不必等待键入完成。

:set wrapscan  重新搜索,在搜索到文件头或尾时,返回继续搜索,默认开启。

替换命令
ra 将当前字符替换为 a,当期字符即光标所在字符。

s/old/new/ 用 old 替换 new,替换当前行的第一个匹配

s/old/new/g 用 old 替换 new,替换当前行的所有匹配

%s/old/new/ 用 old 替换 new,替换所有行的第一个匹配

%s/old/new/g 用 old 替换 new,替换整个文件的所有匹配

:10,20 s/^/ /g 在第 10 行知第 20 行每行前面加四个空格,用于缩进。

ddp 交换光标所在行和其下紧邻的一行。

移动命令
h 左移一个字符
l 右移一个字符,这个命令很少用,一般用 w 代替。
k 上移一个字符
j 下移一个字符
以上四个命令可以配合数字使用,比如 20j 就是向下移动 20 行,5h 就是向左移动 5 个字符,在 Vim 中,很多命令都可以配合数字使用,比如删除 10 个字符 10x,在当前位置后插入 3 个!,3a!,这里的 Esc 是必须的,否则命令不生效。

w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替 l 命令。

b 向后移动一个单词 2b 向后移动 2 个单词

e,同 w,只不过是光标停在单词尾部

ge,同 b,光标停在单词尾部。

^ 移动到本行第一个非空白字符上。

0(数字 0)移动到本行第一个字符上,

移动到本行第一个字符。同 0 健。

$ 移动到行尾 3$ 移动到下面 3 行的行尾

gg 移动到文件头。 = [[

G(shift + g) 移动到文件尾。 = ]]

f(find)命令也可以用于移动,fx 将找到光标后第一个为 x 的字符,3fd 将找到第三个为 d 的字符。

F 同 f,反向查找。

跳到指定行,冒号 + 行号,回车,比如跳到 240 行就是 :240 回车。另一个方法是行号 + G,比如 230G 跳到 230 行。

Ctrl + e 向下滚动一行

Ctrl + y 向上滚动一行

Ctrl + d 向下滚动半屏

Ctrl + u 向上滚动半屏

Ctrl + f 向下滚动一屏

Ctrl + b 向上滚动一屏

撤销和重做
u 撤销(Undo)
U 撤销对整行的操作
Ctrl + r 重做(Redo),即撤销的撤销。

删除命令
x 删除当前字符

3x 删除当前光标开始向后三个字符

X 删除当前字符的前一个字符。X=dh

dl 删除当前字符, dl=x

dh 删除前一个字符

dd 删除当前行

dj 删除上一行

dk 删除下一行

10d 删除当前行开始的 10 行。

D 删除当前字符至行尾。D=d$

d$ 删除当前字符之后的所有字符(本行)

kdgg 删除当前行之前所有行(不包括当前行)

jdG(jd shift + g) 删除当前行之后所有行(不包括当前行)

:1,10d 删除 1-10 行

:11,$d 删除 11 行及以后所有的行

:1,$d 删除所有行

J(shift + j)  删除两行之间的空行,实际上是合并两行。

拷贝和粘贴
yy 拷贝当前行

nyy 拷贝当前后开始的 n 行,比如 2yy 拷贝当前行及其下一行。

p 在当前光标后粘贴, 如果之前使用了 yy 命令来复制一行,那么就在当前行的下一行粘贴。

shift+p 在当前行前粘贴

:1,10 co 20 将 1-10 行插入到第 20 行之后。

:1,$ co $ 将整个文件复制一份并添加到文件尾部。

正常模式下按 v(逐字)或 V(逐行)进入可视模式,然后用 jklh 命令移动即可选择某些行或字符,再按 y 即可复制

ddp 交换当前行和其下一行

xp 交换当前字符和其后一个字符

剪切命令
正常模式下按 v(逐字)或 V(逐行)进入可视模式,然后用 jklh 命令移动即可选择某些行或字符,再按 d 即可剪切

ndd 剪切当前行之后的 n 行。利用 p 命令可以对剪切的内容进行粘贴

:1,10d 将 1-10 行剪切。利用 p 命令可将剪切后的内容进行粘贴。

:1, 10 m 20 将第 1-10 行移动到第 20 行之后。

退出命令
:wq 保存并退出

ZZ 保存并退出

:q! 强制退出并忽略所有更改

:e! 放弃所有修改,并打开原来文件。

窗口命令
:split 或 new 打开一个新窗口,光标停在顶层的窗口上

:split file 或: new file 用新窗口打开文件

split 打开的窗口都是横向的,使用 vsplit 可以纵向打开窗口。

Ctrl+ww 移动到下一个窗口

Ctrl+wj 移动到下方的窗口

Ctrl+wk 移动到上方的窗口

关闭窗口

:close 最后一个窗口不能使用此命令,可以防止意外退出 vim。

:q 如果是最后一个被关闭的窗口,那么将退出 vim。

ZZ 保存并退出。

关闭所有窗口,只保留当前窗口

:only

录制宏

按 q 键加任意字母开始录制,再按 q 键结束录制(这意味着 vim 中的宏不可嵌套),使用的时候 @加宏名,比如 qa。。。q 录制名为 a 的宏,@a 使用这个宏。

执行 shell 命令
:!command

:!ls 列出当前目录下文件

:!perl -c script.pl 检查 perl 脚本语法,可以不用退出 vim,非常方便。

:!perl script.pl 执行 perl 脚本,可以不用退出 vim,非常方便。

:suspend 或 Ctrl - Z 挂起 vim,回到 shell,按 fg 可以返回 vim。

注释命令
perl 程序中 #开始的行为注释,所以要注释某些行,只需在行首加入#

3,5 s/^/#/g 注释第 3-5 行

3,5 s/^#//g 解除 3-5 行的注释

1,$ s/^/#/g 注释整个文档。

:%s/^/#/g 注释整个文档,此法更快。

linux 用户和软件

linux的root用户

su - root 切换到root用户 (su- switch user)

普通用户在自己所在的用户目录下权限是不受限的,但出了HOME目录,仅有制度和执行权限,无修改权限。

su [-] [用户名]

-符号是可选的,表示切换用户后加载环境变量,建议带上
参数:用户名 表示要切换的用户,用户名也可以省略,省略表示切换到root
切换用户后,可以通过exit命令退回上一个命令,也可以使用快捷键:ctrl+d
使用普通用户,切换到其他用户
需要输入密码**,如切换到root用户
使用root用户切换到其他用户,无需密码,可以直接切换

sudo 其他命令

在其他命令之前,带上sudo,即可为这条命令赋予root授权

visudo 永久赋予赋予普通用户root权限,以后使用sudo不用写密码

执行 visudo 命令之后 在文件的最后添加 itheima ALL-(all) NOPASSWD:ALL
最后 wq 保存

chmod 命令 修改文件权限

chmod [-R] 权限 文件或文件夹

使用技巧

快捷键

ctrl + c 强制停止程序的运行
ctrl + d 退出或登出 不能用于退出vi/vim
history 查看历史命令
!+ 最近用过的命令前一两个字符 就可快捷执行历史命令
ctrl 加 左右键 移动编辑命令的输入
ctrl + L 清屏

apt 软件安装

apt install xxx 安装
apt remove wget 卸载
apt search wget 搜索wget

PATH 环境变量

理解环境变量的作用

   定义一个变量,然后用户可通过使用变量即可执行变量所指向程序路径的文件,如linux 中的命令,“cd” 命令也是一个变量,使用这个变量会指向cd的程序文件。
  环境变量是操作系统在运行的时候,记录的一些关键性信息,用以辅助系统的运行。
  在linux系统中执行:env命令即可查看当前系统中的记录的环境变量
环境变量是一种KeyValue型结构,即名称和值。

掌握符号$的作用

$环境名 获取环境变量的值

掌握在linux中配置环境变量

临时设置 语法: export 变量名=变量值
永久设置 语法:
针对当前用户生效,配置在当前用户的 : ~/。bashrc文件中
针对所有用户生效,配置在系统的: /etc/profile文件中
并通过语法:source配置文件,进行立刻生效 ,或重新登陆FinalShell生效

ubuntu系统挂载新硬盘

方法一、临时挂载

sudo mount /dev/sda1 /mnt/sda_1T 将新硬盘挂载到/mnt/sda_1T的目录下
通过df -h查看新硬盘的设备名

临时挂载硬盘,会在重新启动系统后,失效,需重新添加。

方法二 永久挂载

1、 首先,解绑之前的连接

df -kh查看是否挂载到其他目录,如已经挂载 通过 umount /dev/sda1 解绑

2、查看新硬盘信息

blkid /dev/sda1 查看 UUID 和 格式 ext4/ntfs

3、修改系统文件启动脚本

vi /etc/fstab 在文本最下面添加
UUID=XXXX /mnt/sda_1T ntfs 0 2 ‘0’表示不备份 ‘2’表示引导分区为2 不可改为1 1为默认启动盘
修改完后mount -a 开始挂载,如有错误 此时会提示错误 ,如果 /etc/fstab 配置错误,会导致无法正常开机

微信截图_20230715095138.jpg