• 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,一款常见的数据库服务器

  • 相关阅读:
    Echarts:简单词云图实现
    AWTK实现汽车仪表Cluster/DashBoard嵌入式GUI开发(六):一个AWTK工程
    包裹细胞膜的磁性纳米微载体/负载斑蝥素的巨噬细胞膜包封金属有机框架纳米颗粒的研究
    数据治理之数据标准
    STM32Cube 开发之读写内部Flash--电源项目ADC采样校准系数存储-实现掉电读取数据--STM32或者GD32F处理器
    Java设计模式之抽象工厂模式
    两个图片找出不同 可以调整阈值
    虚拟现实VR技术在医疗行业的应用介绍
    C++ string类
    docker下载镜像慢
  • 原文地址:https://blog.csdn.net/weixin_64612659/article/details/124355472