ubuntu 指令及常用操作
**指令的基本格式: xxxx [-选项] [参数]
新安装系统操作
更新软件
sudo apt upgrade
更新并安装所有软件
更改软件源
备份软件源sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
编辑源文件sudo vim /etc/apt/sources.list
添加清华源信息
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 |
升级软件源 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 |
客户端重新连接远程桌面
在nomachine设置分辨率,选择固定分辨率
安装 FTP 文件传输工具
安装FTP:apt-get install vsftpd
打开 vi /etc/vsftpd.conf
安装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' |
重启docker服务
sudo systemctl daemon-reload |
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 \ |
-e :配置环境变量
-v:文件目录映射
|
文件操作
ls 命令的参数和选项
1、指令格式 ls [-a -l -h] [linux路径] 列出所在目录的列表 list
 -a (-all的意思) 列出所在目录所有的文件 包括隐藏文件(文件名第一个字符是.就会隐藏)
 -l (详细信息) 列出时间等信息。 竖向列表
 -h 以易于阅读的方式,显示出文件夹大小
同时应用两中选项如:ls -a-l /home/laohu ls -al /home ls -la /home
laohu@ubuntu:~$ ls /home/laohu |
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 |
touch 创建文件
语法: touch linux文件
无选项 参数为 文件名称.格式
laohu@ubuntu:~/make_dirctory$ touch kun.txt |
cat 查看文件内容
语法: cat linux 路径
laohu@ubuntu:~/Downloads/petalinux_offine_pkg$ cd |
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 |
.tar.gz文件压缩\解压
语法:tar [-f-z-j-Z-v-O] 目标文件 linux路径\名称
1、压缩.tar.gz文件:
  语法:tar -zcvf 压缩文件名.tar.gz 被压缩文件名
  eg:tar -zxvf demo.tar.gz test
2、解压:
   语法:tar -zxvf 压缩文件名.tar.gz -C linux路径
   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 |
wc 文件内容的统计
语法 : wc [-c -m -l -w] 文件路径
-c 统计字节数量
-m 统计字符数量
-l 统计行数
-w 统计单词数量
参数 文件路径 可作为内容输入
| 管道符 将|左边的结果作为右边命令的输入
laohu@ubuntu:~/Documents/heima$ cat grep.txt | grep -n heima grep.txt |
echo 在命令行内输出指定内容
语法: echo 输出的内容
无需选项 只有一个参数 表示要输出的内容 复杂内容 加””
在windows的cmd指令中也有这个命令 比较类似 print
反引号 ` 输出目标的结果
laohu@ubuntu:~/peta_prj/linuxPsBase/app_helloworld$ echo pwd |
重定向符 >和>>
‘>’ 将左侧命令的结果,覆盖写入到符号右侧指定的文件中
‘>>’ 将左侧命令的结果,追加写入到符号右侧指定的文件中 自动换行
tail 查看文件尾部内容
语法: tail [-f -num] linux路径
-f 表示持续跟踪
-num 表示 查看尾部多少行
vi/vim 编辑器
语法 vi/vim 文件
vim有三种工作模式:命令模式 - 输入模式 - 底线命令模式
命令模式:对文件进行编辑,如删除某行
输入模式:写作修改
底线命令模式: 保存 退出
命令模式 到 输入模式 按 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!
w 向前移动一个单词(光标停在单词首部),如果已到行尾,则转至下一行行首。此命令快,可以代替 l 命令。
b 向后移动一个单词 2b 向后移动 2 个单词
e,同 w,只不过是光标停在单词尾部
ge,同 b,光标停在单词尾部。
^ 移动到本行第一个非空白字符上。
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 配置错误,会导致无法正常开机