linux基础

linux基础

============

  1.主要内容:

        常用的linux命令(shell命令) ls  cd  linux网络配置    linux网络下载  gdb调试

  2.相关的工作岗位:(深入的了解linux)

        系统运维

        linux服务器管理

常用的命令

=============

  gec@ubuntu:/home$

        gec 当前用户的名字

        ubuntu 当前系统名字

        $ 表明当前用户是个普通用户


  root@ubuntu:/usr/include#

        # 表明你是超级用户

  1.打开新建文件

        vim 文件名  (输入i或者o或者a进入到插入模式才可以输入,按下ESC,输入冒号wq保存退出)

                                                                    输入冒号q!强行退出,不保存

            跳到指定行: 行号gg

            复制:yy复制一行  nyy复制n行

            撤销:u

            删除:dd          ndd

            粘贴:p


        gedit 文件名  跟记事本差不多

        vi  文件名    vim是vi的升级版

  2.拷贝文件

        cp  文件名  目标路径

  3.切换成超级用户

        sudo  -s

    切换成普通用户

        su  普通用户的名字

    临时借用超级用户的权限

        sudo 正常的命令

        sudo  vim  1.c

  4.删除文件

        rm 文件名 (文件名究竟是写相对路径还是绝对路径??)


=============================

常用的linux命令

      gec@ubuntu:~$

              ~ 表示当前用户的家目录,linux给每个用户新建同名的文件夹/home/gec

                家目录里面gec可以为所欲为

      1.新建目录

            mkdir  目录的名字 (默认是在当前路径下新建)   

            mkdir  绝对路径(在指定位置新建目录)

            mkdir 2020/2019/2018/2017  -p  一口气新建多个嵌套的目录

      2.删除目录

            rm  目录名  -rf(r表示递归,f表示强制)

      3.切换路径

            cd  路径名

            cd  ..  返回上一级目录

      4.剪切,重命名文件,目录

            剪切:mv 文件    目标路径

                  mv 目录名  目标路径

            重命名:mv 原来的名字  新的名字

      5.列举当前目录下的文件内容

            ls

            ls  -l

                drwxrwxr-x 3 gec gec    4096 Jan  3 17:55 2020

                    rwxrwxr-x -->表示权限(可读r,可写w,可执行x)

                        分为三组:第一组当前用户对于该文件的权限

                                  第二组同组用户对于该文件的权限

                                  第三组其他用户对于该文件的权限

            ls  -al  //将隐藏文件显示出来

                      linux只要文件,目录名字首字符是小数点就是隐藏文件


      6.linux中总共将文件划分成如下7种类型

                目录    --》d

                普通文件 --》-

                字符设备 --》c (驱动)

                块设备  --》b

                套接字  --》s (网络编程)

                软链接(符号链接) --》l

                管道    --》p (系统编程)

      7.修改文件的权限

                vim 退出的时候 :wq正常保存退出

                              :q!野蛮强行退出,不保存的

                              :wq!强行保存退出

                chmod 777 文件名

                chmod 765 文件名

                chmod 777 目录名  -R(R表示递归)

                      7 --》二进制111 每个二进制位对应一个权限

      8.软链接和硬链接

              软链接:类似于windows的快捷方式

                        ln 原来的文件名  软链接名  -s

                          ln hello.c  tt  -s  //给hello.c生成了一个软链接叫做tt

              硬链接:相当于给文件取了别名,弄了一个副本

                        ln 原来文件名  新的名字

              出现的问题:

                      1.不可以在共享环境下创建软链接和硬链接(windows不支持这种文件格式)

                      2.目录可以创建软链接,但是不能创建硬链接

      9.查看目录树

              tree 目录名

      10.查看文件内容

              cat 文件名

      11.显示当前绝对路径

              pwd

      12.查找文件

              find 路径名  -name 文件名

                例如:find / -name stdio.h  //在根目录下查找stdio.h

      13.搜索文件中的关键字

              grep "关键字"  文件名

                    grep "hello" hello.c  -n

      14.下载工具软件,卸载工具软件

              下载:sudo apt-get install 软件的名字  //在线下载

                    例如:sudo apt-get install vim

              卸载:sudo apt-get remove  软件的名字

                    例如:sudo apt-get remove vim

              更新软件源:

                    sudo apt-get update

      15.打包和解压

            linux中有两种常见的压缩包格式 .gz和.bz2

              查看压缩包里面的内容:tar -tf 压缩包的名字

              解压到指定路径: tar -zxf  xxx.tar.gz -C 指定的路径

                              tar -jxf  xxx.tar.bz2 -C 指定的路径

              .gz结尾的

                  打包:  tar  -zcf  xxx.tar.gz  文件1  文件2......       

                  解压:  tar  -zxf  xxx.tar.gz

              .bz2结尾的

                  打包:  tar  -jcf  xxx.tar.bz2  文件1  文件2.....

                  解压:  tar  -jxf  xxx.tar.bz2

      16.给命令取别名

              alias c='clear'

              取消别名 unalias c

      17.输出命令

              echo "hello"

linux网络配置

===================

  1.统一修改windows,linux,开发板的ip为静态ip

          windows的ip地址设置

            ip地址:192.168.11.xxx (xxx是你座位对应的ip地址中的一个)

            子网掩码:见笔记截图


  2.配置ubuntu连接外网

        测试ubuntu是否连接成功外网:ping www.baidu.com

        在虚拟机设置里面:网络适配器有桥接和NAT模式

                          桥接 --》静态ip

                          NAT  --》动态ip

        查看ip:使用ifconfig

          配置静态ip(桥接)

              方法一:使用图形用户界面配置

              方法二:去/etc下面修改配置文件

          配置动态ip(NAT模式)

              iface eth0 inet dhcp //原本静态配置ip写的static,同时将后面写ip,子网掩码,网关的语句删除

  3.ubuntu根目录下几个重要的文件夹

        /bin  存放可执行程序、shell命令环境变量 

                ./hello  指行当前路径下的hello,小数点在linux中表示当前路径

                或者写hello的绝对路径也能执行

                将hello拷贝到/bin,那么在任意位置直接敲名字就能执行hello

        /dev  存放设备的驱动文件

        /etc  配置文件(网络,修改密码)

ubuntu配置开机自动运行

===================

      1.原理:打开ubuntu终端(shell终端)的时候,会自动运行/etc/bash.bashrc文件

              我们就可以将需要执行的程序绝对路径或者需要执行的命令直接写在这个文件的末尾

gdb调试

=============

    1.前面程序出现逻辑错误

            方法一:重要语句的前后加打印(函数调用,循环,条件判断)

                    关键性的变量

            方法二:使用gdb工具调试

    2.使用:

            如果没有gdb,安装sudo apt-get install gdb 

            使用gdb调试程序,编译程序的时候必须加上 -g

            常用的命令:

                (1)列举原码中的内容

                      l  默认列举10行

                      l 1,20 列举第1到20行

                (2)运行程序

                      r  从头开始执行程序,直到遇到第一个断点就停下来

                    继续往后执行

                      c  从刚才断点的位置继续执行,直到再次遇到新的断点

                (3)设置断点

                      b 行号

                (4)单步调试

                      n  遇到函数调用,会直接跳过函数的源码(不会进入)

                      s  遇到函数调用,会进入函数内部一行行执行

                      或者 s 3 表示一次执行3步

                (5)查看断点信息

                      info b

                    删除断点

                      d 断点序号

                (6)打印变量的值

                      p 变量的名字 

                总结:通过设置断点先缩小程序出错的范围

                      进一步通过单步调试明确那一句代码导致程序逻辑错误


====================================

开发板的使用

==============

    1.

      ARM:英国的一家半导体公司,负责设计芯片的架构,内核

          华为麒麟,联发科,三星,高通,德州仪器,意法半导体

          分为:cortex A系列

                cortex M系列  stm32

      ARM  cortex A53架构的一款芯片,三星生产,芯片型号s5pv6818

      生活中:智能电视,智能投影仪,智能盒子,手机

    2.配置使用secure CRT

          作用:帮助我们通过串口查看到开发板操作系统里面的内容(类似的软件还有很多)

          配置:见截图


    3.开发板的启动过程

          开发板从工厂生产出来是裸机(跟单片机一样,没有操作系统的,纯硬件)

          粤嵌移植了一款嵌入式linux系统到开发板

          由于开发板系统资源有限:并不是所有的linux命令都有

          移植好的系统由三部分构成:

              (1)U-Boot  -->做基础硬件初始化(cpu,内存,时钟)

              (2)Kernel Image --》加载操作系统内核(内存管理,网络管理,进程,线程调度)

              (3)root file system --》根文件系统

            总结:启动过程先启动uboot--》启动内核--》进入到根文件系统

    4.安装使用适合ARM平台的交叉工具链

          linux命令:file可以查看程序属性

                    tar  -xf  xxx.tar.xz

          gcc -->编译器只适合编译X86平台(intel的cpu)下的程序

          arm-linux-gcc -->适合ARM平台

              安装步骤:(32位和64位平台不同的交叉工具链)

                    第一步:解压(不要在共享里面解压)

                    第二步:设置环境变量

                        将语句 export PATH=你要设置的新路径:$PATH写入到/etc/bash.bashrc最后面(永久生效)


    5.程序下载到开发板

          方法一:通过串口下载到开发板(见截图)

              优点:操作简单

              缺点:速度慢,只适合下载小文件

          方法二:通过tftp网络下载

              第一步:用网线连接开发板,并配置开发板的ip,并检查是否能ping通windows

                        配置开发板ip:  ifconfig eth0 你要配置的ip

              第二步:打开tftpboot软件

                        点击browse按钮,设置好你要下载的文件所在的路径

              第三步:在secure CRT中输入如下命令下载

                        tftp  -r  文件名  -g  电脑的ip

              补充:tftp还能将开发板里面的文件上传给windows

                          tftp  -l  文件名  -p  电脑的ip

          方法三:nfs挂载

                安装 sudo apt-get install nfs-kernel-server


                第一步:

                      配置 /etc/exports 在最后一行添加要被挂载的路径

                      例如:  /home/gec/nfs *(rw,sync,no_subtree_check) 就是将/home/gec/nfs作为挂载目录

                第二步:

    重启服务器

sudo service nfs-kernel-server restart

        第三步:

    挂载:(开发板上执行)

    mount -o nolock ubuntu的ip地址:/home/gec/nfs  ./mt

                    顺便将/home/gec/nfs修改为777

                第四步:不想使用nfs了

    卸载:一定要退出mt目录才能卸载

    umount  ./mt

            总结:网络下载tftp以及nfs都必须关闭windows所有的防火墙

    6.开发板设置程序自动运行

          ubuntu --》修改/etc/bash.bashrc

          开发板 --》修改/etc/profile

                        例如:你永久配置ip,可以将ifconfig eth0 ip地址  写入到文件末尾

                              你不想要粤嵌登录界面,可以在./iot前面加上#注释掉


    7.给开发板烧写新的系统

          步骤:

                第一步:重启开发板,倒数5秒、3秒之前按下任意键,进入uboot命令行

                        输入fastboot 回车,连接数据线

                第二步:安装驱动

                第三步:执行镜像文件中auto.bat文件(双击自动运行)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容

  • 第一章 1.Linux是一套免费使用和自由传播的类UNIX操作系统,它可以基于Intel x86系列处理器以及Cy...
    yansicing阅读 5,435评论 0 9
  • Linux 目录 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。...
    miniminiming阅读 697评论 0 4
  • ls 命令说明 ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS...
    逗留阅读 639评论 0 0
  • 一.Linux诞生 1.虚拟机本身只是一个机遇操作系统的软件,可以模拟其他操作系统环境。 2.Linux是Linu...
    宙斯YY阅读 472评论 0 0
  • 思念 无需语言 回忆 夭折了时间 —亦浓4.8
    开在夜里的花儿阅读 206评论 0 5