Linux基础学习笔记

Linux应用领域

Linux的最主要的应用领域:服务器领域

另外一个领域:嵌入式领域

linux是内核,发行版本:ubuntu、centos


Linux文化

        1970s年代,贝尔实验室进行分时多用户操作系统的开发,但是没有成功,Ken tompson(B语言的创始者)使用B语言对当时项目的资源进行开发,实现了UNIX,但不好用,于是与Dennis richers使用C语言进行改进,最终完成UNIX系统。但UNIX在当时只能在大型服务器上运行,普通用户基本使用不到,Richard Stallman 就发起了GNU计划(企业不应该垄断,而是应该开源,盈利靠提供服务),Linux 创始人 Linus Torvalds加入了GNU计划,一起改进,实现了Linux操作系统。


网络连接三种模式

        桥接模式

                虚拟机与主机占用桥段的网络,如主机为192.168.0.10,虚拟机为192.168.0.20,可以实现主机与虚拟机的网络通讯,当其他主机与虚拟机也为同桥段时,所有都可以通讯,但是可能会造成IP冲突,因为192.168.0只能分配253个主机,当主机数量过大时,就会有问题。

        NAT模式

                地址交换,主机与虚拟机通过代理的IP地址进行通讯,优点是不会造成IP冲突,缺点是,只能从虚拟机对其他主机进行通信,不是当前主机无法进行通讯。即只有自己主机能与自己的虚拟机通讯,其他主机无法与其他虚拟机通讯。 

        主机模式


 Linux克隆

克隆虚拟机可以到任何一台满足硬件配置的电脑上使用,其是单独的文件,拷贝粘贴即可使用。 

        方式一

                可以直接复制整个虚拟机的文件,存放到任何位置,再通过VMware软件打开即可使用。 

        方式二 

                使用VMware软件直接进行克隆 


Linux快照 

快照就是相当于存储当前状态,以便之后系统出现状态时,可以恢复


Linux目录结构 

/proc【不能动】,虚拟的目录,是系统内存的映射

/srv【不能动】,service的缩写,存放服务启动后需要提取的数据

/sys【不能动】,内核

/bin【常用】,Binary的缩写,存放最经常使用的命令

/home【常用】,存放普通用户的主目录,每一个用户都是一个单独的文件夹,命名就是用户的账号名

/usr【常用】,相当于window的program file文件夹,用户的许多应用程序都是放在这里的

/user/local【常用】,给主机额外安装软件的目录

/mnt【常用】,相当于挂载于外部存储文件,共享文件就可以在此目录下找到

/lib【常用】,存放系统开机所需的基本库

/boot【常用】,存放启动linux的核心文件,包括一些镜像文件

/etc【常用】,存放一些应用程序的配置文件,如mysql数据库中的my.conf

/var【常用】,存放不断扩充的文件,习惯将经常修改的文件放到这里,日志等

/media【常用】,自动设备设备,如U盘,光驱等

/sbin,Super Binary,存放系统管理员使用的系统管理程序 

/root,存放系统管理员目录

/lost+found,一般状态下是空的,当非法关机就会存放文件

/dev,类似是window的设备管理器,把所有硬件用文件的形式才存储

/opt,存放一些应用程序的安装,一般来说新的应用程序都先安装在此目录下

/selinux,安全子系统


Vim编辑器

        三种模式切换

                vim xxx(文件)进入到 vim编辑器中的正常模式(只读)

                在正常模式下输入i、I、a、A等进入到编辑模式,输入esc退出编辑模式

                在正常模式下输入:或者/,进入到命令模式

                在命令模式下输入:q(不保存退出)、:wq(保存退出)、q!(强制退出,并不保存)

        Vim常用快捷键

                拷贝当前行:yy;拷贝当前行(包含当前行)向下x行:xyy; 

                复制:p;撤销:u;

                删除当前行:dd;删除当前行(包含当前行)向下x行:xdd;

                开启行号:在命令行模式下输入:set nu; 关闭行号:在命令行模式下输入:set nonu;

                查找文件中的某个单词:在命令行模式下输入/关键词,回车后进行查找,输入n查找下一个;

                定位首行:gg;定位末行:G;查找指定行:行号 + shift + g;

             Linux基础学习笔记_第1张图片


Linux关机重启命令 

关机重启前先执行sync!!! ,sync的作用就是将内存的数据写入到磁盘中去,相当于保存操作,虽然关机和重启等操作都会调用一次sync但谁能确保万无一失呢?

shutdown -h now  (等同于halt):立刻关机

shutdown -h xx :在x分钟后关机,并且有提示信息

shutdown -r now (等同于reboot):立即重启


Linux登录注销命令

 su -用户名:登录账户,也可以用户切换用户,当权限不够时可以切换到root用户

logout :注销账户,只能在运行级别3下有效,即用户无图形界面下能注销


Linux用户管理

        增删用户

                useradd 用户名:使用系统的默认方式创建用户,在/home 下面创建一个用户名的文件夹,包含该用户的所有信息;

                useradd -d 指定目录 用户名:在自己定义的目录下创建该用户

        设置密码

                passwd 用户名:一定要指定用户名,否则改的是当前登录用户的密码 如果密码过于简单会提示,但再次输入还是能设置该密码

        删除用户

                 最好先下线要删除的用户,避免不必要的麻烦

                userdel 用户名:删除该用户,但是保留该用户的资料,即拒绝该用户再次访问,但其home资料还在,一般建议这样做;

                userdel -r 用户名:彻底删除该用户,删除其home目录

        查询用户

                id 用户名:查询该用户,当用户不存在时,提示用户不存在;

                who am i:显示第一次登录的用户信息

        切换用户

                su - 用户名:切换到该用户,如果从权限高的用户切换到权限低的不需要输入密码,反之则要

        用户组

                增加用户组

                        groupadd 用户组名 :添加一个组

                增加用户时并指定组

                        useradd -g 组名 用户名:如果增加用户时没有指定组,系统会默认创建名为用户名的组,并将该用户添加到该组

                修改用户所属组

                        usermod -g 组名 用户名:前提是该组已存在,把用户当前所属组改为新的组

                用户和组相关文件

                        /etc/passwd,记录用户的各种信息;每行的含义  用户名:口令:用户标识符(uid):组标识符(gid):注释性描述:主目录:登录shell(翻译官一般是bath);

                        /etc/shadow,口令配置文件,最主要包含用户名和加密口令; 

                        /etc/group:记录包含组的信息

运行级别

        常用的级别是3和5 

        0:关机

        1:单用户【找回丢失密码】

        2:多用户没网络服务

        3:多用户有网络服务 (multi-user.target)

        4:系统未使用保留给用户

        5:图形界面 (graphical.target)

        6:重启

        切换级别  init 级别

        查询当前级别 systemctl get-default

        设置默认级别 systemctl set-default TARGET.target,重启后就是默认该级别


Centos7以上找回root密码 

1.在开机选择时按”e“进入内核

2. 找到以linux或者linux16开头的项,在末尾加上init=/bin/sh,然后按Ctrl + X引导系统启动

3.执行mount -o remount,rw /

4.执行passwd设置密码

5.执行touch / autorelabel

6.执行exec /sbin/init

执行完所有步骤后等待系统重启即可,等待的时间会比较长,耐心等待


帮助指令

        man

        常用的两个,其他的可以上网找

                -a:显示隐藏文件,隐藏文件是以.开头的;

                -l:单列输出

        help + 具体的命令 


文件目录类指令 

        当前目录

                pwd :输出当前目录

        cd指令

                        cd ~:回到自己的家目录,例如当前用户为tom,cd ~ 就是切换到/home/tom目录下;

                        cd .. :返回上一级目录

        mkdir指令

                        mkdir 目录: 创建单极目录;

                        mkdir -p 目录:创建多级目录

        rmdir指令

                        rmdir 空目录:删除空目录,目录下有文件不能使用该指令

                        rm -rf 目录:强制删除目录,删除该目录和该目录下所有东西,谨慎使用】

        touch指令

                        touch 具体文件:创建空文件

        cp指令

                cp 文件 目的目录:复制当前文件并拷贝到目的目录下

                cp -r 目录 目的目录:把需要复制的目录,拷贝到目的目录下,拷贝目录下的所有文件

                如果目的目录已经有需要复制的目录会提示是否覆盖的信息

                \cp -r 目录 目的目录:强制覆盖已有的目录,谨慎使用】

        mv指令

                mv 带目录的文件或目录 目标目录或文件:1.当是同一目录下移动,就是重命名 ;2.当移动到其他目录就是windows的剪切操作;3.目标目录也带有文件,就是剪切+重命名

                示例:当前在/home/tom目录下,而且有一个名为hello.txt文件

                1.mv /home/tom/hello.txt /home/tom/hello1.txt:就是重命名

                2.mv /home/tom/hello.txt /root:就是将hello.txt文件移动到/root目录下

                3.mv /home/tom/hello.txt /root/hello2.txt:就是将hello.txt文件移动到/root目录下并改名为hello2.txt

        cat指令

                cat -n 文件:只读,仅查看文件,并且显示行号,-n显示行号,不写即不显示行号

        more指令

                more 文件:显示部分的文件内容

                more的操作指令

             Linux基础学习笔记_第2张图片

        less指令

                less需要多少加载多少,对于显示大型文件具有较高的效率

                less 文件: 显示部分的文件内容

                less操作指令

                Linux基础学习笔记_第3张图片

        echo指令 

                echo 可以输出环境变量,环境变量一般是以$开头而且全为大写 

                echo 需要输出的内容:输出内容

                示例:

                echo “hello world~”:输出的内容为 hello world~;

                echo $HOSTNAME:输出主机名;

        head指令

                head指令默认显示开头前10行的内容,空行也算一行

                head 文件:输出该文件内容的前10行;

                head -n 行数 文件:输出该文件的前指定的多少行

        tail指令

       tail指令默认显示开头后10行的内容,空行也算一行

        tail文件:输出该文件内容的后10行;

        tail -n 行数 文件:输出该文件的后指定的多少行;

        tail -f 文件:实时追踪该文件,当文件有所修改,即可显示修改的内容

        >和>>指令

                >指令

                        原内容或文件 > 目标目录或文件:将原内容或文件覆盖写入到目标目录或文件中,如果没有目标目录没有该文件,则创建

                        示例:text.txt文件不存在

                        echo “覆盖写入” > /home/text.txt: 就先创建text.txt文件再把“覆盖写入”此内容输入到该文件中

                >>指令

                       跟 >指令基本一致,只是不是覆盖,而是追加

        ln指令

                ln -s 原文件或目录 名称:设置名称并链接到原文件或目录

                示例:

                In -s /root /home/tom/gotoroot:给 home/tom/目录下的gotoroot设置一个link链接,当执行gotoroot时,切换到root目录

        history指令

                history:显示所有执行过的历史命令;

                history 执行命令的条数:显示最近最使用过的多少条历史命令;

                !编号:显示执行历史命令编号为指定的命令;


时间日期类指令

        date指令

                date:显示当前时间;

                date “+%Y - %m - %d  %H:%M:%S”:显示年月日时分秒;

                date -s "2022-11-07 09:15:20" :设置系统时间;

         cal指令

                 cal :默认显示当前年当前月的日历;

                 cal 年份:显示指定年份的12个月的日历


搜索查找类指令

          find指令

                find 目录 -name 文件或目录:找指定目录下的文件或目录,找到即显示,找不到不显示;

                 find 目录 -user 用户:找指定目录下该用户的所有文件;

                 find 目录 -size 符号 +大小:找指定目录下该文件大小满足条件的文件,大小的单位有(k,M,G),符号为(+大于,-小于,默认是等于);

                 示例:

                 find /home/tom -size +300M:找到/home/tom 目录下大小大于300M的文件

                        

        locate指令

                locate指令是查询自己的数据库,所以当locate是第一次执行时,先执行updatedb创建locate数据库,然后再使用locate执行,因为其是从自己的数据库中查询,所以速度很快,找到该文件就显示其绝对路径,找不到则不显示

                updatedb 然后再 locate hello.txt:返回找到文件的绝对路径

        grep指令

                grep指令是只显示查找的文件包含指定内容的所在行,其他行忽略,-n表示显示行号,-i表示忽略大小写,常于管道一起使用

                grep -ni 内容 源文件:查找源文件内容包含指定查找的内容


文件压缩类

        gzip指令

                gzip 文件:把文件给压缩为后缀.gz的文件,其压缩是把源文件给压缩覆盖,不在保留源文件,而是直接变为.gz文件,只能压缩文件,不能压缩目录

        gunzip指令

                gunzip 文件.gz:解压该文件,相等于去除后缀,此压缩文件不在存在

        zip指令

                zip 压缩后的名称.zip 文件:把该文件压缩命名为压缩后的名称

                示例:

                zip myhome.zip /home/tom/myhome.txt:把/home/tom目录下的myhome.txt文件压缩为myhome.zip文件;

                zip -r 压缩后的名称.zip 目录:把指定的整个目录压缩为修改后的名称;

        unzip指令

                unzip 文件:把指定文件解压到当前目录下;

                unzip -d 目录 文件:把指定文件解压到指定目录下;

         tar指令

                tar 选项 文件名.tar.gz 打包的文件:选择特定的选项把指定的文件打包为.tar.gz文件

                选项详情

                Linux基础学习笔记_第4张图片

                示例:当前所在路径为/home/tom

                tar -zcvf multi.tar.gz /home/tom/hello1.txt /home/tom/hello2.txt :压缩多个文件,把hello1和hello2文件一并打包压缩为 multi.tar.gz文件

                tar -zxvf /home/multi.tar.gz -C /opt/temp:需要输入的是绝对路径,把mutli.tar.gz文件解压到/opt/temp目录下 


文件所有者

        查看文件所有者

                ls -ahl:查看文件的所有者;

                chown 用户 文件 :改变文件所有者;

文件/目录权限详解

        权限开头第一位

        l:link链接类型,即被ln -s 创建的软连接

        d:目录类型

        c:字符类型(键盘、鼠标等)

        b:块类型(硬盘、磁盘等)

        rwx作用到文件

                r:对文件可读查看

                w:对文件可修改但不一定能删除,只有对目录有写权限时,才能删除

                x:可以执行文件

        rwx作用到目录

                r:可以读取目录,ls查看目录内容

                w:可以修改,即对目录内进行创建、删除、重命名

                x:可以进入该目录,即使用cd切入到该目录

        修改权限

                chmod u=rwx,g=rw,o=x 文件或目录:修改该文件的所有者的权限为rwx,同组的为rw,其他用户的为x;

                chmod o+w 文件或目录:给其他用户增加该文件的w权限;

                chmod a-x 文件或目录:删除所有人对该文件的x权限;

                chmod 751 文件或目录:对所有者rwx权限,对同组rx权限,对其他用户x权限;


crond 任务调度

        crontab -e :创建任务调度;

        crontab -r:终止任务调度;

        crontab -l:列出当前有哪些任务调度;

        service crond restart:重启任务调度;

        * /1 * * * * ls -l /etc/ >/tmp/to.txt: 每间隔一分钟就把ls 下面的每个文件写入到to.txt文件中

        参数说明 

        Linux基础学习笔记_第5张图片

特殊符号解释

Linux基础学习笔记_第6张图片

 特殊符号示例:

Linux基础学习笔记_第7张图片


at定时任务

        at定时任务,只会执行一次。at定时任务每隔一段时间,基本上是60秒,就会查找job队列里面的任务是否与于指定时间相匹配,如果匹配则执行,执行完后移除job队列,不再执行

        at 【选项】 【时间】:创建指定选项和指定时间的任务

        Linux基础学习笔记_第8张图片

        示例:

        at 5pm + 2 days 回车

        at> 具体指令 

        

        作用是两天后的下午5点执行该指令

        完成设置具体指令后 按两次 Ctrl + d,才能正在被创建

        atq :显示job队列里面的任务

        atrm job编号:是删除指定编号的任务


Linux分区

        查看所有设备挂载情况 

                lsblk:能够查看分区硬盘挂载到哪个目录下

        永久挂载

        记得先进行快照保存先        

        通过修改/etc/fstab实现,把新分区的UUID加入到该文件中,再执行 mount -a即可生效


 Linux 磁盘管理

        查看磁盘使用情况

                df -h:查看所有磁盘的使用情况

        查看指定目录的磁盘占用情况

                du 【选项】 目录:根据选项查看指定目录的占用情况

                Linux基础学习笔记_第9张图片

                一般直接使用 du -hac 目录,更加直观显示

        具体实例

                ls -l /opt | grep "^-" | w:查询/opt下面文件的个数;

                ls -lR /opt | grep "^-" | w:查询/opt目录下所有文件的个数;

                ls -l /opt | grep "^d" | w:查询/opt下面文件夹的个数;


域名解析         

        1.浏览器先检查浏览器缓冲中有没有该域名解析IP地址

        2.检查DNS解析器缓存

        以上两个缓存可以理解为本地解析器缓存

        3.检查hosts文件对应的IP映射

        4.域名服务DNS进行解析域

        指定IP地址

                vim /etc/sysconfig/network-scripts/ifcfg-ens33

                修改或添加以下内容

                        BOOTPROTO=static

                        IPADDR=自己指定的IP地址

                        GATEWAY=自己指定网关

                        DNS1=自己指定的域名解析器

                修改完后就重启服务或虚拟机

        设置主机名

                修改/etc/hostname即可

        设置映射

                windows下在 C:\Windows\System32\drivers\etc\hosts 文件修改对应即可

                linux 下 在/etc/hosts 文件修改即可

                全都修改后重启即可


进程管理

        进程查看 

                 ps -ef:全格式显示所有进程,能看到父进程号 ;

                ps -aux:a查看所有进程信息;u查看执行进程的用户; x查看后台进程

                pstree -pu:树状显示进程包括进程号(p),所属用户(u)

                Linux基础学习笔记_第10张图片

                USER:执行进程的用户

                PID:进程的编号

                %CPU:占用Cpu的百分比

                %MEN:占用物理内存的百分比

                %STAT:进程状态,s是睡眠,r是运行

                VSZ:分配给进程的虚拟内存大小

                RSS:分配给进程的物理内存大小

                TTY:终端名称

                COMMAND:执行该进程的对应的指令

        top指令

                top指令默认会每隔3秒更新进程的状态 

                top -d 时间:每隔指定的时间就会更新状态

                 Linux基础学习笔记_第11张图片

                 top前台内输入u可以监视用户的进程情况

                top前台内输入k可以终止某一进程

        终止进程 

                kill -9 进程号:强制终止指定的进程;

                killall 进程名:终止该进程和其所有子进程 

                示例

                 kill 1750(当前sshd)的进程号:终止的远程登录服务

                重启sshd服务 /bin/systemctl start sshd.service


监控网络状态

        netstat -an:按一定顺序排列显示网络状态;

        netstat -p:显示哪个进程正在调用;

        Linux基础学习笔记_第12张图片

         local address 是本地Linux的地址,而foreign address 是主机的地址

        tcp协议的状态是有一个TIME_WAIT的状态,若长时间没有建立连接,该网络状态就会被清除

服务管理

        centos7之后,服务指令大多数用systemctl,较少一部分还使用service指令

        找service还能操控的指令 ls -l /etc/init.d 

        查看所有的服务

                setup:

                Linux基础学习笔记_第13张图片

                 选择系统服务后就能查看所有的系统服务

                        Linux基础学习笔记_第14张图片

                         *号代表开机自启,按空格可取消*

        

        chkconfig指令

                chkconfig --level 3 服务名 on/off:设置该服务在运行3级别自启动/关闭

                重启后生效

         

        systemctl指令

                找systemctl能执行的服务,在/usr/lib/systemd/system查看

                systemctl enable 服务名:开启该服务开机启动;

                systemctl disable 服务名:关系该服务开机启动;

                systemctl is-enable 服务名:查询该服务是否为开机自启;

        firewall指令

                每一次执行完firewall指令后使用firewall-cmd --reload才会生效 

                firewall-cmd --permanent --add-port =端口号/协议:在防火墙上增加端口;

                firewall-cmd --permanent --remove-port =端口号/协议:在防火墙上增加端口;

                firewall-cmd --query-port=端口号/协议:查看该端口在防火墙上的状态   


  

RPM包

        RPM包是Redcat Package Manage的缩写,是业内通用的安装包的标杆,后缀就是.rpm

        rpm -qa 包名:查询是否安装该包;

        rpm -qi 包名:查询该包的详细信息;

        rpm -qf 包名:查询安装该包的路径;

        rpm -e 包名:删除该包;

        rpm -e --nodeps 包名:强制该包的所有依赖即强制删除改包;【谨慎使用】

        rpm -ivh 包的全路径:安装包,i是install,v是提示信息,h是显示进度, 包的全路径在centos的光盘中;


         

yum包

        yum的好处就是直接可以下载到本地,并且并把相关依赖的包一并下载

        yum list:查询所有能下载的包;

        yum install 包名:下载指定的包


                

Shell编程

        shell脚本的执行方式

                方式一

                先给创建的.sh 文件增加x权限,即chmod u+x .sh文件

                再通过绝对路径或相对路径来执行,即 ./xx.sh

                方式二

                直接 sh + xx.sh文件

        shell变量

                set:显示当前shell中的所有变量; 

                shell文件中多行注释的语法 :<开始和结束符号都要单独一行

                系统变量

                        $PATH、$HOME、$PWD等等

                预定义变量

                        $$:代表当前进程的进程号;

                        $!:代表后台运行的最后一个进程号;

                        $?:最后一次实行命令的返回状态,如果为返回值为0,则说明正确执行;

                设置环境变量/全局变量

                        在/etc/profile文件下设置  export 变量名 = xx;设置了全局变量,然后 source /etc/profile,刷新令设置的全局变量生效

               自定义变量

                        定义变量:在shell文件里直接A=即可;

                        在shell输出变量,需要在变量前加$符号;例如定义变量A=3,输出A的格式为“A=$A”;

                        readonly B=3:定义静态变量B,且B=3,readonly变量不能被unset;

                        unset 变量:删除该变量 ;

                

                位置参数

                        获取命令行的参数

                        sh myshell.sh 100 200 

                        Linux基础学习笔记_第15张图片

                        $0:代表命令本身,即sh myshell.sh;

                        $1:代表第一个参数,即100;

                        ${10},10以上包含10的参数用{}括起来;

                        $*:表示所有的参数,当作一个整体;

                        $@:也表示所有的参数,不过是区分对待;

                        $#:统计参数的个数;

                        Linux基础学习笔记_第16张图片

        运算符

                 基本语法

                        注意:乘号的表达为 \*

                        方式一 【常用】

                        tep=$[表达式]:例如tep=$[5+10],tep的值就为15;

                        方式二

                        tep=$(()):例如tep=$((5+10)),tep的值就为15;

                        方式三 【麻烦,不常用】

                        tep='expr x + x':例如tep='expr 5 + 10',expr表达式里面的运算符一定放在' '里面且是由空格隔开

        条件判断

                语法

                if 开始的标志

                【 表示式 】,括号两边一定是有空格的,而且判断符号间也需要由空格,否则会报错

                fi 结束的标志

                示例

if [ 表达式 ]
    then
        执行的内容
fi 

         

                判断的符号:

                Linux基础学习笔记_第17张图片

        流程控制

                case语句

                        语法

# 输入的指令 sh case.sh "1"
# !/bin/bash
case $1 in 
"1")
echo "星期一"
;;
"2")
echo "星期二"
;;
*)
echo "其他"
;;
esac

# 输出为 星期一

                for循环

                        语法一

# 输入的指令 sh for.sh 100 200 300
# !/bin/bash
for i in "$@"
do
    echo "num is $i"
done

#输出为 
# num is 100
# num is 200
# num is 300

                语法二

# 输入的指令为 sh sum.sh 
# !/bin/bash
for (( i=1; i<100; i++))
do
    SUM=$[$SUM+$i]
done
echo "总和为:$SUM"

# 输出为 总和为:5050

         

                 while循环

                        语法

# !/bin/bash

while [ 表达式 ]
do
    执行的代码
done

         read读取

                read -p 提示信息 变量名:在屏幕上提示信息,然后把用户输入的信息存放到变量中;

                read -t 5 -p 提示信息 变量名:在屏幕上提示信息,只等待5秒,然后把用户输入的信息存放到变量中;

                示例

# 输入的指令为 sh read.sh
# !/bin/bash

read -t 5 -p "请在5秒内输入:" NUM1
echo "你输入的值为:$NUM1"

                结果

                Linux基础学习笔记_第18张图片 

函数

         basename函数

                basename 文件全路径:只获取最后的文件名;

        dirname函数

                dirname 文件全路径:只获取文件的路径;

        

        自定义函数 

                示例

# 输入的指令为:sh getSum.sh 
# !/bin/bash

# 定义求和的函数
getSum(){
    SUM=[$n1+$n2]
    echo "和为:$SUM"
}

# 输入10
read -p "请输入第一个值" n1 

# 输入20
read -p "请输入第二个值" n2


# 调用函数
getSum $n1 $n2



#调用后的输出为  和为:30

Ubuntu

        Ubuntu安装后没有设置root用户,可用使用sudo  passwd 给root用户设置密码,设置完后即可使用root用户

        切换到root用户命令行显示的 #,一般用户显示的是$

        退出root用户用的是 exit 

        apt指令      

        Linux基础学习笔记_第19张图片

        切换镜像源

        在清华镜像网站找到Ubuntu的镜像文件,然后复制替换内容到/etc/apt/source.list 文件去,做修改先去备份文件

        清华大学开源软件镜像站 | Tsinghua Open Source Mirror 

        复制完后使用指令进行更新 sudo apt-get update

        远程登录

        sudo apt install net-tools:先安装这个工具进行网络状态的查看,也可用监听网络端口

        sudo apt-get openssh-server:安装ssh服务和客户端

        service sshd start:启动ssh服务

                当前ssh用户远程登录到另外的ssh服务的系统

                        ssh 用户名@IP地址:登录到另外的ssh服务的另外一台系统

                        如果出现错误则删除 ~/.ssh/kown_ssh文件


系统日志

        系统日志放在/var/log文件夹下

        boot.log:系统启动日志

        cron:定时任务的日志

        lastlog:记录所有用户最后一次登录时间的日志,采用二级制存储,使用lastlog可用直接查看该文件

        mailog:记录邮件信息的日志

        message:记录系统重要的消息,如果系统出现问题,首先要检查的就是该日志 

        secure:记录验证和授权方面的信息,只要设置账户和密码的程序都会记录

        ulmp:记录当前已经登录的用户信息,实时变化,用w、who、users指令查看该文件 

       

         rsyslog

                /etc/rsyslog.conf 系统日志管理的配置文件所在地

                编辑的文件格式为  *.*,第一个*代表日志的类型,第二个*代表日志的级别

                        日志的类型

                        Linux基础学习笔记_第20张图片

                        日志的级别

                        Linux基础学习笔记_第21张图片

                        示例

                        cron.* :记录cron任务所有级别的日志

                        *.warning:记录所有日志类型的警告级别的日志

                        日志文件的格式

                        Linux基础学习笔记_第22张图片

        日志轮替

                logrotate配置文件

                /etc/logrotate.conf ,该文件是规定对日志文件存储的方式或格式的一些全局策略

                Linux基础学习笔记_第23张图片

                rotate 4: 共保存4份日志文件,当创建第5份时,最旧的一份会被删除

                weekly:每周对日志文件进行一次轮替

                create:创建新的空的日志文件,在日志轮替后

                dateext:使用日期作为日志轮替文件的后缀

        单独为某一文件设置轮替规则

                1.直接在/logrotate.conf文件下设置,优先级更高

                Linux基础学习笔记_第24张图片

                2.在/logrotate.d文件下设置

                创建新的文件,并且写入当对应的规则

                Linux基础学习笔记_第25张图片

                Linux基础学习笔记_第26张图片

                 参数介绍

                


 

Linux升级内核

        uname-a:查看当前linux内核版本

        yum info kernel -q:查看能升级的版本信息

        yum update kernel:升级内核

        yum list kernel -q:查看已安装的内核

Linux备份与恢复

        yum -y install dump

        yum -y install restore

        dump

                dump支持分卷和增量备份

                dump -层级u:备份第几级,0即为完整备份,备份全部,总共为9级,轮替备份,9级过后就是0级

                参数介绍

                        

                dump无法备份目录或单独的文件

       

        restore

                restore -C:使用对比模式,将备份的文件与已存在的文件相互对比

                restore -i:交互模式,进行恢复时,询问用户

                restore-r:还原模式;

                restore-t:查看模式,看有哪些备份文件

                restore-r -f: -f指定文件读取备份数据

        

你可能感兴趣的:(自我深造,linux)