当前位置:   article > 正文

Ubuntu系统学习笔记(完整版)_ubuntu学习

ubuntu学习

Ubuntu是一个以桌面应用为主的Linux操作系统.一般叫做乌班图   

什么叫操作系统?

widows,用于个人桌面

macOS,用于个人桌面

Linux,主要用于服务器,商务部署

创建虚拟机安装Ubuntu网络安全学习笔记——创建虚拟机_不知天文,不知地理的博客-CSDN博客

创建虚拟机的硬件条件

CPU:i5/i7

内存:8G

硬盘:固体

安装完毕有俩个虚拟网卡

 提示:按Ctrl+Alt可以令虚拟机释放鼠标,回到你的主系统中

宿主机必须保持联网:因为在安装的过程中,需要联网下载一些软件包

如果Ubuntu有问题,如何重装

直接删除目录

虚拟机内的操作,不会影响到宿主机

启动关机:power off关机

挂起/恢复:将当前状态冻结,以便快速恢复

更多的虚拟机操作

硬件参数设置Ctrl+D或者在虚拟机菜单栏上的设置进行修改

注意:先关机后设置

状态栏

右下角一排状态按钮,表示硬件状态

快照与系统恢复

重装系统(目录下的文件全删掉,然后重新装一个)

使用系统快照(备份)

桌面环境

Ubuntu的桌面环境和Windows相似

上部:状态栏

左侧:收藏夹,常用的应用程序

左上角:查看正在 活动的程序activities

左下角:查看所有的应用程序

右上角:系统状态,用户,系统设置,关机与注销

Ubuntu上可以看视频,听音乐都可以

Linux可以作为个人桌面,但主要用于服务器环境

收藏夹

收藏一些常用的程序

以下三个程序

文件管理器

命运行终端

文本编辑器 常用 放进收藏夹

文件系统

对于Linux来说,使用统一的目录树结构

/

/home/shaofa

/root

/bin

/mnt

/usr

/etc

注意:Linux下没有C:D:这个盘符的概念

一级子目录

用户目录,就是用户自己的目录

Linux系统上支持多个用户,每个用户一个目录

特例:超级用户root,其用户目录为/root 

权限机制:对于普通用户来说,他能操作的目录就只有用户目录

root用户没有权限,可以操作任意文件和目录

创建目录和文件

目录操作:创建目录/删除/重命名

文件操作:编辑文本文件

以上所有的操作,都是在用户目录下操作的

文件列表

ls,即list,列出目录下的所以项

示例

参看目录

参看/home/buzhitianwenbuzhidili 目录

ls /home/buzhitianwenbuzhidili

注意ls空格然后目录

 以详细模式参看

ls -l /home/shaofa

其中,

        -l为参数,参数一般以-开头 

权限  子文件夹的内容 创建者 组 大小 最后一个表示项目名字

细节:在输入命令和路径时,按tab键都可以自动补全

ls/ho > ls /home

2.输入历史可以翻阅

按↑,↓箭头键可以上下翻阅

3.宿主机与虚拟机之间可以拷贝粘贴

一般情况下,文本和文件都可以拷贝的

虚拟机Ctrl+V不行,要右击

切换目录

pwd,即print working directory 显示当前工作目录

cd,即change directory,切换目录

切换到某个目录

cd /home/buzhitianwendili/Downloads/

几个特殊的目录写法:

~代表当前用户的主目录

.代表当前目录

..代表上一级目录

cd ~ 切换到主目录

cd ~/example 切换到主目录下的example目录

cd ../www 切换到上级目录,再到www子目录

在ls命令中,也可以使用~. ..表示目录

在Ubuntu下打不出~可以使用shift+|键输出~

目录操作

mkdir,即make directory创建目录

mkdir abc

mkdir -p abc/123/test

使用-p参数,可以将路径的层次目录全部创建

rmdir,即remove directory删除空目录

rmdir abc 

如果目录非空,则删除失败

rm,即remove删除文件或目录

rm -rf abc

删除abc目录,和子项一并删除

其中,r表示recursive(递归删除),f表示force(强制删除)

使用这个rm -rf 命令时要小心这是强制删除的

一个程序员界的玩笑:rm -rf /* 删库跑路?

cp,即copy复制文件或者目录

cp -rf example example2

mv,即mover,移动文件或目录(重命名)

move hello hellowirld

对于文件,rm/cp/mv这三个命令同样适用

归档压缩

tar,即tape(磁带) archive(档案)档案打包

创建档案包

tar -cvf example.tar example

其中,

c,表示create创建档案

v,表示verbose显示详情

f,表示file

也可以多个目录打包 tar-cvf xxx.tar file1 file2 file3

还原档案包

tar -xvf example.tar

taar -xvf example.tar -C outdir

其中,-C参数指定目标目录,默认解到当前目录下 

先前的tar格式并没有压缩,体积较大

并档并压缩

tar -czvf example.tar.gz example

解压缩

tar -xzvf example.tar.gz

tar -xzcf example.tar.gz -C outdir

通常我们所见的,都是*。tar.gz这种格式

软链接

软链接,即Windows下的快捷方式

使用ln命令(link)来创建软链接

ln -s source link

其中,-s表示soft软链接(默认为硬)

比如

ln -s example example2

软链接的特点:

删除软链接,对原文件没有影响

删除原文件,则软链接失效

以ls -l 查看文件详情时,可以看到目标路径

比如:ls -l /

可以发现,/bin实际指向的是/usr/bin目录

首字母是d表示目录;l表示快捷方式;-表示文件

添加用户(需要管理员权限)

添加一个用户

sudo useradd -m test1

其中,sudo表示以管理员身份执行

添加用户

useradd -m test1

其中,-m参数表示在/home下添加用户目录

2.修改用户密码

passwd test1

3.删除用户

userdel test1

注意在Linux下输入密码是不显示的

1.在登陆系统时,默认不允许以root用户登录

2.只有特殊的用户,才能执行sudo

比如,buzhitianwendili可以执行sudo,但test1不行

Linux下,把能执行sudo命令的用户叫sudoer

超级用户

超级用户root

类似于Windows下的administrator用户

切换到root用户,有全部权限,可以直接useradd等命令

1.首次使用时,需要给root设置密码

sudo passwd root

2.切换到root用户

su root

其中,su表示switch user

3.退出

exit

su root 仅仅对当前会话(终端)有效不影响当前桌面环境

root权力太大,需要小心使用 

用户和组

Linux下可以创建多个用户,可以用组进行管理用户。

比如:

男生组boys

ming bo gang qiang

女生组girls

fang hong yue yuan

创建组

groupadd boys

创建用户

useradd -m -g boys ming

其中,-g表示在添加用户,同时将用户加到boys组

修改现有用户到新的组

usermod -g boys shaofa

其中,usermod表示修改用户信息

如何查看用户和组?

cat /etd/group

每一行表示一个group的信息,名称+ID

如何查看用户列表?

cat /etc/passwd

每一行表示一个用户的信息

后面的数字表示id

用户不多时,管理的时候并不使用组的概念

useradd a1

useradd b1

一个root,俩个普通用户a1,b1,够用了!

默认的,会给a1用户建立一个同名的组a1,也就是说这个组里只有他一个人

以root登陆桌面

默认的,Ubuntu不允许以root登陆桌面环境。(root已经设置了密码)

1:su root

2:gedit /etc/pam.d/gdm-autologin

加# #auth    required    pam_succeed_if.so user != root quiet_success保存,在Linux下#相当于注释行

3.:gedit /etc/pam.d/gdm-password

注释这个行#auth    required    pam_succeed_if.so user != root quiet_success

4.关闭虚拟机,重启后生效

在登陆界面,点下面的未列出

手动输入用户名root,登陆

文件的权限:

-owner:文件的属主owner

-r:文件是否可读read

-w:文件是否可写write

-x:文件是否可以执行excute

使用ls命令参看一个文件

ls -l simple.txt

d:目录 l:软链接 -:文件

修改文件权限 

chmod,即change file mode修改文件的访问权限

比如,一个文件simple.txt,想让别人也能修改chmod o+w simple.txt

其中,

o,表示other别人

+w,表示增写write权限

减权限chmod o-w simple.txt

chmod a+w simple.txt

所有人all添加w权限

chmod a-w simple.txt

所有人减去w权限

chmod u+w simple.txt

仅用户user自己的权限+w

修改别other的权限-w

只要文件的属主或者root可以修改文件权限

省略写法

chmod +w simple.txt

chmod -w simple.txt

默认是修改自己和本组的权限

修改文件的属主

chown,即change owner修改文件的属主

一般来说,每个用户只操作自己的用户目录所以chown命令并常用

示例:

1在/opt目录下建立一个文件夹software

2将software目录分配给用户buzhitianendili

su root

mkdir /opt/software

chown -R(递归,如果目录下有子文件就一并修改了) buzhitianwendili

/opt/software/

只有文件的owner和root才有权更改属主

可执行脚本

脚本script,一种解释执行的程序

Linux下常见的三种脚本程序

shell脚本 *.sh

Perl脚本 *.pl

python脚本 *.py

脚本程序,本质是一个文本文件

1它是一个文本文件

2它具有可执行权限

脚本程序都是由解释器来执行的

shell脚本解释器:/bin/sh

perl脚本解释器:/bin/perl

python脚本解释器:/bin/python3

执行一个脚本,以下俩种方式等效

./hello.py

/bin/python3 hello.py

shell脚本

shell脚本,按shell的语法写出来的脚本

是linux自带的脚本语言

相当于Windows下的dos批处理脚本

1.编辑一个文本文件,保存为hello.sh

# !/bin/sh

echo "hello,word"

1.添加可执行权限

chmod +x hello.sh

3.执行程序

./hello.sh

1第一行必须声明解释器

# !/bin/sh

2必须有x权限,才能够执行

比如,一个程序只有自己执行,别人不能执行

rwxr--r--

3.执行程序时,必须加上路径

./hello.sh

python脚本,比shell要强大一些

对于C/java工程师,3天可以学会python

跟shell一样的步骤

SHELL中的变量--环境变量

SHELL,是一个脚本编程语言

1.定义变量

2.执行命令echo ls cd cp

3.if判断逻辑,while循环逻辑

4.自定义的函数

#!/bin/sh

#定义变量

OUTDIR=/opt

#使用变量

echo "output to : ${OUTDIR}"

IS ${OUTDIR}

1.定义一个变量

NAME=value

等号左右俩侧不要多加空格

2.使用一个变量

${NSME}

如果已经有了定界符,则可以简写为$NSME

例如echo ${NSME}/build/

环境变量

环境变量,就是存在当前环境中的变量

无论Linux,还是Windows,都是环境变量

比如,最常用的环境变量path,java_hcme

定义环境变量

export OUTDIR=/opt/

显示环境变量

echo ${OUTDIR}

查看所有环境变量

printenv

环境变量的使用

可以在当前终端中使用

可以在shell脚本中调用

演示:在shell脚本中调用一个环境变量

在命令行中定义的环境变量,只有对当前shell终端有效

用户环境变量

定义在~/.profile中

在主目录下

ls -la

其中,a表示all,显示所有文件

在Linux下,以.开头的文件为隐藏文件

1.在文本编辑器打开-/.profile

gedit ~/.profile

2.添加

export Java_HOME=/opt/jdk1.8

保存并关闭

3.注销,重新登录后生效

echo $Java_HOME

原理:当用户打开终端时,会自动运行.profile,将变量注入到当前环境中。

1.以点号.开头的文件为隐藏文件

ls -a 查看所有文件

2.此配置只对当前用户有效,因此每个用户都有自己的配置文件.profile

3.有的Linux系统上,使用.bash_profile

系统环境变量

系统环境变量:定义在/etc/profile中

此中的环境变量对所有用户有效

以root身份执行

gedit /etc/profile

但是,一般不直接修改/etc/profile

而是在/etc/profile.d/创建一个自定义的脚本

1用gedit创建一个脚本

gedit /etc/profile.d/myprofile.sh

2定义环境变量

export TOMCAT=/opt/tomcat

3注销并重新登录

重新登录后,环境变量生效

PATH环境变量

先来看一个问题,创建一个可执行脚本hello.sh

直接执行:

明明就在当前目录下,为什么提示找不到?

PATH,是最常见的一个环境变量用于描述可执行程序的搜索路径

echo $PATH

多个路径之间以冒号分隔

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

1编辑/etc/profile.d/myprofile.sh

设定PATH环境变量

export PATH=$PATH:/opt/tomcat/bin 

2.注销重启

VMware网络环境

1检查虚拟网络编辑器

        以管理员方式运行VMware

        打开(编辑)虚拟网络编辑器

        查看NAT方式下,虚拟子网的网段 如

 检查虚拟网卡

控制面板,“网络与共享中心|更改适配器设置”默认地,有VMnet1和VMnet8俩个虚拟网卡

如果没有找到VMnet1和VMnet8俩个虚拟网卡,请卸载VMware重装

注意:以管理员方式运行安装程序,会更好

3检查虚拟机的网络配置:NAT模式

虚拟机联网

虚拟机联网设置:

1检查虚拟机硬件是否为NAT方式

2登陆Ubuntu系统,右上角设置

设置面板左侧,“网络”

检查IPv4/DHCP设置(默认设置即可,不需要更改)

3.检查IP地址

我的演示环境IP:192.168.43.129

4.访问外网测试

ping www.baidu.com

按CTRL+C中断

注意:宿主机本身必须已经连接外网

可以在图形界面下设置网络,也可以在终端里用命令行方式设置

与宿主机互联

参看宿主机的IP地址

 

手动配置网络

在终端里,以命令行方式来配置网络

常见命令:ifconfig,netstat等

默认地,Ubuntu下面不带ifconfig命令

需要使用apt软件包管理器

apt install net-tools 安装一个软件包

apt remove net-tools 移除一个软件包

apt search xxx 搜索

apt list  | grep xxx 列表

这样就可以使用ifconfig命令了

1.查看网络配置

ifconfig(winds下的是ipconfig)

其中,if表示interface网络接口

会列出所有的网络接口,及各个接口的状态

2.开启/禁用网络

sudo ifconfig xxx up

sudo ifconfig xxx down

FTP服务器

思考:怎么把文件传到Ubuntu主机上?

1U盘拷贝

2网络传输

FTP

SFTP

使用FTP来传输文件。

客户机FileZilla(windows)

服务器vsftpd(ubuntu)\

SSH服务器

使用ssh协议,可以实现

1远程终端

2文件传输

1使用Xshell远程登录

2使用Xftp传输文件

vim文本编辑

vi / vim,一个基于控制台的文本编辑器

gedit,一个基于GUI的文本编辑器

其中,vim是vi的升级版,演示使用vim命令

1打开文本编辑

vim abc.txt

如果目标文件存在,则打开编辑;如果不存在,会新建一个文件

如果系统上没有vim,就安装一下:

sudo spt install vim

2切换模式

编辑模式Insert Mode :按i键

命令模式Command Mode:按ESC键

3退出编辑

(1)按ESC键,退出命令模式

(2)输入:wq 保存并退出

输入:q 退出

输入:q! 强制退出(放弃保存)

vim更多的用法

VIM的完全用法非常复杂

花样繁多,几乎键盘上的每一个都是快捷键        

不建议深入研究,vim本身是一个低效率的工具

Linux文本文件的编辑

1桌面环境:gedit

2终端环境:

少量修改:vim

大量修改:在Windows上编辑,然后传到Linux

文本文件的上传

推荐:在Windows上编辑,然后上传到Linux

使用notepad++或者其他的专业编辑器

文本文件的换行符

Windows:\r\n

linux:\n

可以在notepad++里观察到此区别

视图 | 显示符号 | 显示行尾符

换行符的转换:

编辑 | 文档格式转换 | 转换为Unix格式

注意:只要在编辑shell脚本时,才需要转换

其他格式的文件一般都不需要转换,如*.xml,*.java

Java的安装

先安装java的软件包

JRE:

openjdk-8-jre-headless

JDK:

openjdk-8-jdk-headless

其中,openjdk是jdk的免费版本,推荐jdk8

运行java程序

安装openjdk-8-jre-headless

ls /usr/bin/java

默认放在/usr/bin下,不需要额外设置PATH

提示:如果放在自定义位置,需要设置PATH

export PATH=$PATH:/opt/jdk8/bin

运行java程序

1在Windows上开发和调试

2发布

-class文件

-普通jar文件/可执行jar文件

俩种jar文件的运行方式不同:

java -cp your_program.jar your.MainClass

java -jar your_program.jar

3上传至Linux:FTP/SFTP

4运行程序

        java -jar simple.jar

5权限因素,自行检查

-程序里需要访问系统文件,如/etc/,

-程序里需要开启TCP端口,如80,得用root运行。。。

注意,javaGUI的程序不能在终端里运行

java启动脚本

一般地,需要创建一个脚本,以便快键地启动程序

参考run_java.sh

-设置工作目录

-设置必要的环境变量

-设置JVM运行参数

-运行程序

创建运行脚本

使用run_java.sh来运行java程序

1修改run_java.sh

2转换为Unix风格

3上传到Linux

4添加+x权限,运行脚本

在Windows上编辑shell脚本时,记得设置换行符

Windows:\r\n

linux:\n

Tomcat的服务器

Tomcat本身是一个Java程序,必须要有java的运行环境

下载Tomcat的Linux版本

http://tomcat.apache.org/

apche-tomcat-8.5.54.tar.gz

注意,Tomcat的版本和jdk版本有对应关系

tomcat8.5<>jdk8

以下操作到root身份执行

1上传到Ubuntu

2解压缩

tar -zxvf apache-tomcat-8.5.54.tar.gz

mv apache-tomcat-8.5.54 tomcat

运行Tomcat

Tomcat/bin.startup.sh

4检查tomcat进程是否在运行

ps -ef | grep java

netstat -anp | grep 8080

6关闭防火墙 ufw disable

7访问网站http://192.168.43.128:8080

8关闭Tomcat:

tomcat/bin/shutdown.sh

Tomcat需要有java的运行环境

Tomcat作为网络服务器,应该以root执行

启动startup.sh

关闭shutdown.sh

Tomcat的配置

Tomcat的配置文件:

/opt/tomcat/conf/server.xml

至少需要修改:端口,应用目录

1可以部署在/opt下,也可以部署在/root下

2网站的跟目录:ROOT,区分大小写

/opt/www_your_com/ROOT

3观察Tomcat的启动日志

cat /root/tomcat/logs/catalina.out

Tomcat启动日志

cat tomcat/logs/catalina.out

启动Tomcat服务后,应该观察一下日志,看有没有错误提示

认识catalina.sh

1启动Tomcat,相当于starup.sh

tomcat/bin/catalina.sh start

2停止Tomcat

tomcat/bin/catalina.sh.stop

3前台运行Tomcat(用于调试)

tomcat/bin/catalina.sh run

Tomcat启动脚本

Tomcat自带的脚本

starup.sh

shutdown.sh

catalina.sh

实际上,starup.sh和shutdown.sh的内部,都是调用了catalina.sh

创建一个脚本run_tomcat.sh

以后台方式运行服务

./run_tomcat.sh start

停止服务

./run_tomcat.sh stop

在前台方式运行(当前窗口运行,方便打印调试)

./run_tomcat.sh run

其中,参数star/stop/run会间接地传给catalina.sh

程序与进程

程序program:指一个程序文件,如notepad.exe

进程Process:当一个程序运行起来,在操作系统内创建一条记录,用于描述和控制它的运行

比如:打开多个notepad.exe,则得到多个进程

ps -ef

其中,各个字段的含义:

User:执行者

PID:进程ID

PPID:父进程ID

STIME:启动时间

CMD:启动时调用的命令行

按名称 查找某个进程

ps -ef | grep java

其中,将前者输出的信息,重定向给grep命令过滤处理

进程管理

top命令,相当于Windows的任务管理器

查看所有进程

top

按上下键翻阅

按q或Ctrl+C中止退出

查看某个进程

top -p NNN

其中,NNN为目标进程的PID

所有,可以先用PS命令查找目标进程的PID 

使用kill命令,杀死一个进程

kill-9 NNN

或者

pkill name_of_progress

进程管理的几个命令:

ps -ef

ps -ef | grep xxx

top

top -p NNN

kill -9 NNN

pkill name_of_program

ctrl + c 中止当前进程(前台进程)

前台与后台进程

前台进程:运行在前台

后台进程:运行在后台

./run_tomcat run 以前台方式运行(ctrl+c中止)

./run_tomcat start 以后台方式运行

区别1:有无控制台

前台进程:

有控制台,输出至当前终端

后台进程:

无控制台,看不到输出

区别2:有无父进程

前台进程:

有父进程,父进程即为当前终端

当终端关闭时,前台进程被一同关闭

后台进程:

父进程为系统进程(1号进程)

当终端关闭时,后台进程不守影响

区别3:强行终止

前台进程:

使用Ctrl+c强行终止

后台进程:

使用kill-9NNN强行终止

前台进程:

1控制台:有控制台,输出至当前终端

2关闭终端时将关闭前台进程

3使用Ctrl+C强行终止

后台进程:

1无控制台,看不到输出

2关闭终端对后台进程没有影响

3使用kill-9NNN强行终止

Redis服务器

Redis,一款基于内存的key-value型数据库

MySQL服务器

MySQL,一款常见的数据库服务器

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/670784
推荐阅读
相关标签
  

闽ICP备14008679号