深入理解Ubuntu22:探索Linux操作系统的功能与应用

时间:2024-03-23 21:51:40

一、linux

(一)、安装

1、电脑可以安装双系统,即在一套硬件上只能同时运行一个操作系统,例:C盘安装win,D盘安装linux。

2、虚拟机

虚拟机需要硬件支持,并需开启VT-x.
如:VirtualBox/VMware Workstation
虚拟机是一种软件实现的虚拟计算机环境,用来模拟真实环境,可在虚拟机内运行操作系统。

3、安装

(1)、新建虚拟机
在这里插入图片描述

(2)、选择自定义
在这里插入图片描述
(3)、默认配置硬件
在这里插入图片描述
(4)、‘新建虚拟机向导’-‘稍后安装操作系统’
在这里插入图片描述
(5)‘客户机操作系统’-‘linux’,‘版本’-‘ubuntu’
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2590f327ae3c41958ec1bd79ffe8a40f.pn
(6)设置虚拟机名称与虚拟机位置
在这里插入图片描述
(7)设置处理器数量
在这里插入图片描述
(8)设置虚拟机内存
在这里插入图片描述
(9)网络类型、磁盘选择类型、磁盘容量、磁盘文件位置都可自定义。

(二)、虚拟机的基本操作

1、虚拟机快照:保存一个正确状态的虚拟机版本。

内容:保存快照、回退到上一个版本、管理快照

2、基本操作

(1)、汉化
在设置中更改语言
(2)、软件和更新
尽量不要更新
(3)、下载源
国内服务器
(4)、更新镜像
sudo apt update
(5)、查看ip
sudo apt install net-tools
(6)、调整分辨率
安装open-vm-tools
“查看”-“立即适应客户机”

(三)、目录

Linux下一切皆文件
没有盘符,根目录就是/

1、bin:普通用户可执行文件目录。
2、sbin:管理员可执行文件目录。
3、lib*:可执行文件依赖的类库。
4、usr:bin/sbin/lib*/local[bin/sbin/lib*]
5、etc:所有软件的配置文件,apt/sourse.list,下载源。
6、home:用户家目录。
7、root:系统管理员家目录,普通用户无法访问。
8、opt:第三方软件配置目录,如:pycharm。
9、var:lock:锁文件,www:日志文件,log:日志路径,mail:邮件看路径。

(四)常用指令

1、格式:指令名 选项(可选,一般没有先后顺序) 参数(可选)

2、斜杠/表示根目录,而点号.表示当前目录,双点号…表示父目录。

3、~表示当前用户的家目录(home directory)。cd ~会将你换到/home/user1目录下。

(1)、ls

罗列当前所有文件
-a: 显示所有隐藏文件(.开头)
-l:列表详细信息
每个字符:
-:代表是一个文件
d:表示是一个目录
l:代表是一个连接
九个字符:
头三个:当前用户
中间三个:当前用户组
最后三个:其他用户
每三个字符:r可读;w可写;x可执行;-无权限
一个数字:当前文件/目录 连接数(包括自己)
“当前用户"与"当前用户所在的组”,默认用户名与组名一致。
文件大小。
日期时间。
文件、目录名。
-h:文件大小可读性强
例:查看根目录列表信息:ls -alh /

(2)、cd:更改工作路径。

cd / :切换到根目录
cd … :上级路径
cd 路径名 :当前路径下面的文件夹
cd /etc/apt : 使用绝对路径
cd ~ : 回到当前用户家目录(一键回城)
cd - : 从哪里来回哪里去
例:cd ~/Desktop/: 去往桌面目录

(3)、mkdir

创建文件夹,默认在已有路径下创建。
-p :创建多级路径。

(4)、rmdir

删除空文件夹

(5)、touch

创建/更新文件

(6)、rm

删除文件
-r:递归,例:rm -rf 文件夹名:递归删除文件夹中的文件包括文件夹
-f:忽略错误
rm -rf / :删除跑路(不要轻易使用)

(7)、重定向

>:写入
>>:追加

(8)、更改文件中的内容

sed -i ‘s/原内容/新内容/g’ 文件名

(9)、查看

cat:查看文件内容

例:cat 文件名1 文件名2 文件名3 > 文件名4
将文件1、2、3中的内容写入文件4
head 默认查看所有; 加上-n,查看前几行

tail 默认查看全部;加上-n,表示查看后几行

more 每次查看一屏信息;按空格,可翻页;按q,表示退出

(10)、wc:对文件进行统计

-l:行数
例:wc -l 文件名
-w :单词数
-c :字符数

(11)、|:管道

左侧作为输入
右侧作为输出
例:cat abc | head -3
对于abc文件中的内容只显示前三行

(12)、grep:行过滤

-n:显示行号
例:grep -n 所找内容 文件名 相当于 cat 文件名 | grep -n 所找内容

(13)、cp:拷贝文件

cp 原文件 新文件 (如果是目录,名字不改变)

(14)、mv:移动文件

mv 原文件 新文件 (如果是目录, 名字不变)

(15)、tar:归档

-c:创建归档文件
例:tar -cf 归档名.tar 文件1 文件2 文件3
-f:归档名,需要位于最后一个选项
-t:罗列归档文件
-x:解开归档
-v:查看进度
后缀为.tar

(16)、gzip:压缩

后缀为.tar.gz
-r:将归档的压缩
例: gzip -r 归档名.tar
-d:解压
例:gzip -d 压缩名.tar.gz

(17)、ln:连接

硬链接:ln 原始文件 新文件
相当于拷贝一份文件,但两者又有关联
一个改变,另一个也改变
一个删除另一个也可以删除
只能连接文件,链接出来的也是文件
软连接:带有-s
ln -s 原文件 新文件
相当于快捷方式,可以连接文件,也可以连接文件夹
原文件删除后,链接出来的文件不可使用,即原始文件失效,连接文件不可使用

(18)、pwd:

查看当前所在的目录。

(19)、which:

bin执行文件的位置,定位并显示给定命令的绝对路径。

(20)、ps:

查看当前进程。
-ef:查看所有进程的详细信息。
-wf:显示完整的进程信息。
pid:进程号。
ppid:父进程号。

(21)、kill:

杀死进程。
-9:清理相关资源。

(22)、ifconfig:

查看ip信息。

(23)、wget:

wget+网址:下载。

(24)、clear:

清屏

(25)、quit或Ctrl+C

退出。

(五)、用户相关指令

1、linux为多用户,多任务操作系统。

在 Linux 系统中,可以创建多个用户账户,每个用户都有自己的用户名和密码,以及独立的用户环境和权限。这种多用户的机制使得多个用户可以在同一台计算机上共享资源,同时保持彼此的隐私和安全性。

2、常用指令

(1)、whoami:

显示用户

(2)、用户和组的存储位置:
  • /etc/passwd:用户信息文件。例:cat /etc/passwd,显示用户信息。
  • /etc/group:用户组信息。
(3)、useradd:

创建用户
注意使用权限,例:sudo useradd -m temp1
例2:sudo useradd -m -g 组名 用户名
-m:创建家目录,即:/home/user名。
-g:指定组

(4)、userdel:

删除用户
注意使用权限,例:sudo userdel -r temp1
-r:自动删除家目录

(5)、groupadd:

创建组
例:sudo groupadd 组名

(6)、groupdel:

删除组
例:sudo groupdel 组名

(7)、passwd:

设置密码
默认给root设置密码,即:sudo passwd
sudo passwd 用户名

(8)、su:

切换用户
默认切换到root
注意su root之前,先给root设置密码
su 用户名
例:su temp1

(9)、exit:

退出到当前用户的上一个用户
直到退出终端

(10)、chmod:

修改权限
改变文件或目录权限的命令
它可以控制文件或目录的读取、写入和执行权限,以及文件所有者、所属组和其他用户的权限设置。
chmod [选项] 模式 文件名
用户类型:
u:文件所属用户;g:所属用户组里的其他用户;o:组外其他用户。
权限类型:
r:读,4;w:写,2;x:执行,1。
-R递归修改

案例
chmod g+w temp1
让temp1文件夹所属的用户 所在的组的其他用户拥有写的权限
chmod o=— temp1
组外其他用户没有任何权限
chmod o-w temp1
组外其他用户没有写权限
chmod u+w,g-w,o=— temp1
修改三种用户
注意权限之间不要有空格
chmod 777 temp1
所有用户的所有权限
chmod 750 temp1
当前用户所有权限,组里用户可读可执行,其他用户没有权限

(10)、chown:

直接修改所属用户
例:chown 新用户名 旧用户名
参数:-R递归修改

(11)、chgrp:

直接修改用户所属组
例:chgrp 新组名 旧组名
参数:-R递归修改

(六)ssh与scp

1、ssh为一种通信协议

2、使用

(1)注意事项
  • 联网:查看是否联网,例如:ping baidu.com
  • 更新下载源:sudo apt update
  • 切换下载源(切换镜像):因为镜像可能不支持安装包
(2)下载sshd

sudo apt install openssh-service
查找进程号:ps -ef | grep sshd
查看状态:sudo systemctl status sshd
或:sudo service sshd status

3、使用工具

(1)scp是基于ssh的远程传输工具
(2)使用方法
  • 格式:scp 原始文件 新文件
  • scp 文件名 用户名@ip:远程文件路径

路径支持绝对路径也支持相对路径(用户家目录)
也支持改名字
-r 递归传输文件

  • scp 用户名@ip:远程文件路径 文件名
    路径支持绝对路径也支持相对路径(用户家目录)
    也支持改名字
    -r 递归传输文件

例:
在Windows窗口下
向linux中传入文件
scp abc.txt gaosinan@192.168.11.x:abc.txt
用户名和ip都是linux的
向linux中传入文件夹
scp -r efg gaosinan@192.168.11.x:efg

(七)服务操作

service

sudo service sshd start
sudo service sshd status
sudo service sshd stop
sudo service sshd restart

systemctl

sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl stop sshd
sudo systemctl restart sshd

(八)Python与pycharm

1、linux自带Python

给Python添加软连接
sudu   ln   -s   /usr/bin/python3.10   /usr/bin/python/

2、在linux系统下安装pycharm

1.在Windows下,下载linux版本的pycharm

注意不要有中文路径

2、移动到linux系统下

在Windows黑窗口下:scp pycharm-community-2023.3.4.tar.gz gaosinan@192.168.11.3:pycharm.tar.gz

3、更改opt文件夹的权限

opt文件夹是用于安装第三方软件包的
opt文件夹在根目录下,即/下
sudo chmod -R 777 opt

4、将pycharm.tar.gz移动到opt文件夹下

mv pycharm.tar.gz /opt/

5、将pycharm.tar.gz解压

进入opt文件夹
cd /opt/
gzip -d pycharm.tar.gz

6、将pycharm.tar解包(解开归档)

tar -xvf pycharm.tar

7、进入解档后的文件的bin文件夹

cd /opt/pycharm-community-2023.3.4/bin/

8、运行pycharm的启动文件

./pycharm.sh
注意在终端中使用sh启动文件启动pycharm后,在使用pycharm时不要关闭

9、设置pycharm快捷方式

“file”-“Tools”-“Create Desktop ……”

(九)Vim文本编辑器

1、三种模式

  • 普通模式:键盘输入内容被解释为指令
  • 插入模式:可以输入状态
    按下i或a进入插入模式
    按下esc退出插入模式
  • 命令行模式:按下:进入命令行模式
    可以搜索替换

2、linux自带vi编辑器

(1)使用升级版vim

sudo apt install vim

(2)文件操作

vim 文件名:有就打开,没有就创建

命令行模式

:进入命令行
q 退出;q!:退出,不保存;wq 保存,退出;

在普通模式下进行

gg:文件开头
gg:跳转到文档的开头(go to beginning of file)
G:文件末尾
G:跳转到文档的末尾(go to end of file)
M:文件中间
k:上
j:下
h:左
l:右

插入模式

在插入模式按下二手车退出 进入普通模式
i:光标之前插入
l:行首
a:光标之后插入
A:行末
o:下一行插入
O:上一行插入

其他指令

yy:复制一行
p:粘贴
u:撤销

删除内容

x:delete,表示删除
dd:delete line,表示删除整行
d0:delete to beginning of line,表示删除光标位置到行首的文本
D:delete to end of line,表示删除光标位置到行尾的文本

搜索

/向下搜索内容
?向上搜索内容
n寻找下一个
n:next,表示向下查找下一个匹配项
N寻找上一个
N:previous,表示向上查找上一个匹配项

(十)Ubuntu22下使用Mysql

1、mysql安装

sudo apt install mysql-server
mysql 8,没有配置密码

2、进入mysql

1、使用mysql_secure_installation配置
2、使用系统root登录mysql系统
直接登录mysql
mysql root用户默认没有密码

3、创建用户

create user ‘zzy’@‘%’ identified by ‘123456’;

4、分配权限

grant all on . to ‘zzy’@‘%’;

5、刷新权限

flush privileges;

(十一)Ubuntu22下使用Redis

1、下载redis安装包

sudo apt install redis-server

2、查看redis状态

systemctl status redis
连接redis客户端
redis-cli

3、配置redis的conf文件

到root用户下:su
到redis文件夹下找到配置文件:cd /etc/redis
修改配置文件:vim redis.conf
requirepass 123456
bind 0.0.0.0 :: 1
注意要把原来的bind注释掉

4、重新启动

sudo systemctl restart redis

5、查看状态

sudo systemctl status redis

6、使用redis客户端连接

redis-cli -h 192.168.11.x -a 123456

(十二)Ubuntu22下使用mongodb

官方网站

https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/
查看虚拟机版本号
cat /etc/lsb-release

安装

1、sudo apt-get install gnupg curl

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc |
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg
–dearmor

2、echo “deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
3、sudo apt-get update
4、sudo apt-get install -y mongodb-org
5、查看mongod状态

systemctl status mongod

6、如果没有启动,重新启动,再查看状态

sudo systemctl start mongod
sudo systemctl status mongod

7、进入mongo客户端

mongosh

8、更改mongo的配置文件mongod.conf

进入 /etc/
即不在root用户下
su gaosinan
更改配置文件
sudo vim mongod.conf
重启mongod
sudo systemctl restart mongod