0%

02linux_01day

=================================
2022-7-11
=================================

一.介绍

    上课时间(课前阅读单词 | 随机抽取学生复述昨天讲过的内容)
    09:00 - 12:00
    13:30 - 17:30
    18:30 - 20:30

    周一 到 周五
    节假日以及周六周日休息(周六有自习室)

    课程安排
    预科		通过预科时间把大家的基础拉平
    --------------------------------
    Linux基础	(环境安装\命令\软件安装\权限管理\用户管理\服务搭建)
    Linux下C语言	(变量\运算符\分支语句\循环\跳转\数组\函数\指针\)
                (复合型数据类型\预处理\文件IO)
    数据结构		(链表\栈式存储结构\队列式存储结构\树存储结构\哈希表)
    ---------考试以及项目-------------	
    APUE		(标准IO\系统调用IO\信号\进程\线程\进程间通信)
                (网络套接字TCP/UDP)
    C++/QT		()
    ---------考试以及项目-------------
    智能终端		单片机开发(裸板驱动)
    ---------------项目--------------
    边缘计算		高端芯片的开发(带操作系统的驱动)
    ---------------项目--------------
    就业环节		压力面试\压力笔试

二.Linux环境的安装

    环境的安装
    1.双系统
        准备
        1)把笔记本的硬盘分出空白的空间(100G)
        2)系统盘
            (光盘安装\U盘安装\网络安装)
    2.虚拟机
        准备
        1)虚拟机软件(vmware\vboxs)
        2)镜像(开源的镜像网站)
    3.注意:无论是双系统的安装还是虚拟操作系统的安装,分区需要选择手动分区
        例如:分了100G的空间
        8192Mb			交换空间
        剩余的一半空间		/home
        剩余的所有空间		/

三.Linux的历史

    在市面上的电子产品的万年历的功能
    1.RTC的功能可以查找基准时间
        1)1900年1月1日	这一天是星期一
        2)1970年1月1日	计算机元年
        3)2000年1月1日	千禧年(千年虫)
    2.计算机元年
        在美国一家通讯公司,AT&T公司(马刺队)
        AT&T公司里面有个实验室叫做贝尔实验室
        丹尼斯.里奇(C语言之父)用闲置的电脑写了一个游戏--太空旅行
        丹尼斯.里奇和肯.汤姆逊使用BSPL语言(B语言)在机器上写通用程序
        觉得B语言不好用,所以创立了C语言
        
        丹尼斯.里奇和肯.汤姆逊写了系统,叫做UNIX
        
        美国加州学院伯克利分院一个教授通过UNIX写了一个minix,用于教学
        这个教授的学生林纳斯,写了Linux

    3.可以在电脑上查询信息
        uname -a	查询内核版本以及操作系统版本

四.Linux系统的认知

    windows			Linux
            500G
    C D E F			/(根目录)
    4棵树			1棵树
    /(根目录)
        bin			存放的是二进制的文件(命令)
        boot		存放的是用来引导内核的文件
        dev			存放的是各种设备文件
        etc			存放的是配置文件
        home		存放的是普通用户的家目录
        lib			存放的是各种库文件(动态库和静态库)
        media		用来挂载存储介质或者媒体介质的文件
        mnt			系统默认可以使用的挂载的目录
        proc		动态的目录(不能用于存储文件)
                    (系统内核的信息\进程的信息\内存映射的信息)
        root		超级用户的家目录
        sbin		存放系统的二进制文件
        sys			存放系统的文件
        usr			存放的是应用程序\头文件

五.终端的使用

    1.终端的打开
        1)通过鼠标右键->打开终端
        2)在Ubuntu左下角有显示应用程序->全部->终端
        3)快捷键ctrl + alt + t
        4)打开终端之后打开终端的标签页
            ctrl + shift+ t		//打开标签页
            ctrl + pgup/pgdn	//切换标签页
            注意 : 有同学电脑的键盘上的pgup和pgdn和别的按键在一起
            有可能在切换标签页的时候需要使用shift或者fn
    2.终端提示符
    zack@zack-CSTG:~/桌面/2022-6-29_UEA/02linux$ 
        在@之前		当前登陆这个终端的用户名
        @			分割符号
        在@之后,:之前	主机名
        :			分割符号
        在:之后		当前终端所在目录的路径
            路径分为绝对路径和相对路径
            绝对路径 : 从根目录出发.一层一层递进的目录就是绝对路径
            相对路径 : 除了绝对路径都是相对路径
            在路径中 ~ 指的是家目录的意思
            每个用户都会有家目录
            root用户		/root
            zack用户		/home/zack
            tom用户		/home/tom
        #或者$		用户的身份识别
            #		代表的是超级用户
            $		代表的是普通用户
    3.修改终端提示符的长度
        1)需要修改配置文件
            注意:
                如果修改/etc/下边的配置文件,会影响所有用户
                如果修改家目录下边的配置文件,会影响当前用户
        2)把原有的配置文件拷贝一个备份
            cp ~/.bashrc ~/bashrctest
        3)修改配置文件
            vim ~/.bashrc
            -------------------------
            1>找到要修改的位置,大约在60行左右
            2>PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
            3>把 \h\[\033[00m\]: 删掉		代表不再显示主机名
            4>把 \w 修改成 \W				代表目录路径只显示最后一级
            5>保存退出
            6>sync						代表同步一下信息

六.命令

    在Linux下一切皆文件,任何东西在Linux环境中都是以文件形式存在的

    在终端提示符之后可以录入命令 或者 可执行文件 或者 程序
    终端提示符	命令
    终端提示符	命令 + 选项
    终端提示符	命令 + 参数
    终端提示符	命令 + 选项 + 参数
    注意 : 命令 选项 参数之间需要用空格隔开
    命令 --help	可以查看命令的帮助手册

    cd		(切换目录/改变目录/进入目录)
        1.cd + 目录		//可以切换到该目录中
            如果目录不存在,会提示报错
        2.cd + 路径		//可以切换到该路径中
            可以是绝对路径或者相对路径,但是必须是一个正确的路径
        3.cd 直接回车		//可以直接回到家目录
        4.cd + ..		//可以切换到上一级目录
    ls		(显示当前目录下的文件名)
        1.ls 直接回车		//显示当前目录下的文件名
        2.ls + 文件名		//显示当前目录下该文件的文件名
        3.ls + 目录名		//显示该目录下的文件名
        4.ls + -a		//显示所有文件包括隐藏文件
                        //在Linux环境下以.开头的文件都是隐藏文件
                        //任何目录都有来两个默认的隐藏文件
                        //. 代表当前目录	.. 代表上一级目录
        5.ls + -i		//显示文件inode号
                        //文件是存储在硬盘中的,在Linux文件系统中
                        //是通过inode号来管理文件的
                        //在硬盘的同一分区中,文件inode号不会重复
        6.ls + -l		//使用较长格式显示文件信息
-rw-r--r-- 1 zack zack 8980 7月   9 15:51 examples.desktop
drwxr-xr-x 2 zack zack 4096 7月   9 16:26 公共的
        part.1			文件的类型(在Linux环境中一共有7种文件类型)
            -		普通文件
            d		目录文件
            c		字符设备文件
            b		块设备文件
            p		管道文件
            s		网络套接字文件
            l		链接文件(符号链接文件)
        part.2			文件的权限(分为基本权限和特殊权限)
            rw-			r--			r--
            文件所属者	文件所属组	其他用户
            字符表示		数字表示		含义
            r			4			可读
            w			2			可写
            x			1			可执行
            -			0			该处无权限
        part.3			文件链接数
        part.4			文件所属者
        part.5			文件所属组
        part.6			文件的字节数
        part.7			文件最后修改时间
        part.8			文件名
    pwd		(可以显示当前目录所在的绝对路径)
    touch	(创建普通文件)
        1.touch + 文件名			//创建以文件名命名的普通文件
        如果文件名已经存在,不会修改文件内容,只会修改文件最后修改时间
        如果加已存在的目录名,不会修改文件内容,只会修改文件最后修改时间
        2.touch + 文件名 + 文件名	//可以创建多个文件
        注意 : 文件名与文件名之间用空格隔开
        3.touch + {1..20}.c		//可以创建1.c ... 20.c
            touch + {a..z}.c	//可以创建a.c ... z.c
            touch + {A..Z}.c	//可以创建A.c ... Z.c
        4.touch + 路径/文件		//在该路径下创建新的文件
        注意 : 路径可以是相对路径或者绝对路径,但是必须是正确的路径
    mkdir	(创建目录文件)
        1.mkdir + 目录名				//创建以目录名命名的目录
            注意 : 不能加已有的目录名,会报错
        2.mkdir + 目录名 + 目录名		//创建多个目录
            注意 : 目录名与目录名之间用空格隔开
        3.mkdir + {a..z}dir			//创建adir ... zdir
        4.mkdir + 路径/目录名			//可以在该路径下创建目录文件
            注意 : 可以是绝对路径或者相对路径,但是必须是正确的路径
    rm		(删除文件)
        1.rm + 文件名				//删除文件(普通文件)
        2.rm + -r + 目录名		//删除目录文件
            -r	代表递归的操作
        3.rm *.c				//删除当前目录下所有以.c结尾的文件
            rm file*			//删除当前目录下以file开头的文件
            rm -r dir*			//删除当前目录下以dir开头的文件
        4.rm + 路径/目录名		//删除该目录下的该文件
            注意 : 路径可以是绝对路径或者相对路径,但是必须是正确的路径
        注意 : 在根目录中千万不要执行 sudo rm -rf *
    cat		(查看普通文件的文件内容)
        1.cat + 普通文件的文件名
        2.cat + 路经/普通文件的文件名
            注意 : 路径可以是绝对路径或者相对路径,但是必须是正确的路径
    ----------------------------
    cat		把所有的文件内容打印输出到终端中
    less	从文件的起始位置开始显示,可以通过鼠标滚轮或者键盘上下键翻阅
                按q退出
    more	从文件的起始位置开始显示(显示百分比)
                s向下翻阅		b向上翻阅		q退出
    head	默认查看文件的前10行
    tail	默认查看文件的末尾10行
    ----------------------------
    cp		(拷贝文件)
    1.cp + 源文件名 + 目标文件名	//把源文件的文件内容拷贝到目标文件中
    如果目标文件名已存在,源文件的文件内容会覆盖目标文件的文件内容
    如果目标文件名不存在,会新建以目标文件名命名的文件,
        然后把源文件的文件内容会覆盖目标文件的文件内容
    2.cp + 源文件名 + 目录名		//会把源文件拷贝到目录中
    3.cp + -r + 源目录 + 目标目录	//会把源目录拷贝到目标目录中
    如果目标目录已存在,会把源目录拷贝到目标目录内
    如果目标目录不存在,会新建目标目录,并且把源目录内的文件拷贝到目标目录中
    
    mv		(剪切文件\移动文件\改名字)
    1.mv + 源文件名 + 目标文件名	//剪切文件内容
    如果目标文件名不存在,就是把源文件改名字
    如果目标文件名已存在,也是把源文件改名字,不过会替代掉重名的文件
    注意 : mv在操作目录文件时不需要加 -r 的操作

    tar		(压缩与解压缩)
    1.tar cvf 最终生成的压缩包的名字.tar 要压缩的文件		//用来压缩的
    2.tar xvf 压缩包的名字.tar		//会把压缩包默认解压缩到当前目录下
    3.tar xvf 压缩包的名字.tar -C 路径
                                //会把压缩包解压缩到指定目录中
--------------------------------
作业 : 
1.把今天讲过的内容完完整整的复习一遍
2.抽时间自己安装一遍虚拟操作系统
3.查找ls加什么选项可以查看目录名
--------------------------------