linux系统:主要用于嵌入式开发

                  服务器系统

开源免费,安卓系统的底层也是用的linux

linux有很多发行版本:

       ubuntu      redhat   debian

 

linux中的常用命令

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

     linux中的命令统称shell命令

     shell终端:我们平时输入命令,执行程序的那个窗口

     gec@ubuntu:/bin$

     root@ubuntu:/etc#

     gec@ubuntu:~$

              ~ --》当前用户的家目录,等价于   /home/gec

              gec  --》当前用户的名字

              root --》超级用户的名字,安卓手机刷机的时候一键root

              @ --》分隔用户名和系统名

              ubuntu --》操作系统的名字

              /bin  --》指示你当前所处的位置路径

              $ --》当前用户是个普通用户

             #  --》当前用户是个超级用户

1. 新建或者打开文件

        vim  文件名

               复制:  yy      复制光标所在一行

                           nyy     复制n行      6yy   复制6行

               粘贴: p

               剪切:  dd     剪切一行

                           ndd    剪切n行

               跳转: GG    直接跳到最后一行

                           gg      直接跳到第一行

                          ngg     跳到第n行   88gg跳到第88行

               撤销: u     还原  ctrl+r

               替换字符:

                          :%s/旧的字符串/新的字符串   //默认只替换每一行第一个旧字符串

                          :%s/旧的字符串/新的字符串/g   //替换所有的旧字符串      

                          :m,ns/旧字符串/新字符串     替换m到n行的旧字符串

                               比如     :2,10s/hello/world/g      把2到10行替换                            

               搜索关键词:

                          输入    /关键词  然后回车

                          输入n不断地往后寻找

        touch  文件名  //只能新建文件

        gedit  文件名

2. 删除文件或者文件夹

         rm  文件名

         rm  文件夹名字    -rf  (r表示递归,f表示强制)

3. 新建文件夹

         mkdir  目录名

4. 切换目录

         cd   目录的名字

         cd   ..    返回上一级目录

         cd   -     返回上一次进入的目录

               linux中路径的写法,跟windows的区别

                linux的根目录  /

                   bin    etc         lib32       media  root  srv  var

                   boot   home        lib64       mnt    run   sys  vmlinuz

                   cdrom  initrd.img  libx32      opt    sbin  tmp

                   dev    lib         lost+found  proc   snap  usr

                         bin --》binary   存放系统中所有的二级制程序或者命令

                                                  存放系统可执行程序或者shell命令环境变量

                        环境变量:  狭义的理解  指的就是系统中规定的默认路径

                                         环境变量可以自己设置

                         etc --》系统中的配置文件

                                         /etc/bash.bashrc  文件   shell终端的配置文件(当我们打开shell终端的时候,该文件会被自动执行)

                          lib32和lib64 --》存放系统中的库文件  

                          home --》家目录

                          mnt --》linux和window的共享默认就在这个路径下

                          dev --》专门存放系统的驱动          

               绝对路径:不偷懒,永远都不会出错的写法,完整的路径写法(从根目录开始)

               相对路径:偷懒,根据所处的位置去写路径名

5. ls命令

               ls   -al      //列表的形式列举所有文件,包括隐藏文件

                         linux中所有的隐藏文件都是小数点开头

                                 其中: .和..要注意

                                            . (一个小数点)  表示当前路径

                                            .. (俩个小数点) 表示上一级路径  

                                 利用这个特点自己新建隐藏的文件或者目录

                                          touch   .1.txt

                                          mkdir   .newdir                 

               ls   -l       //列表的形式列举文件,不包括隐藏文件

                          -rwxrwxrwx 1 root root     67 Feb 23 19:23 hello.c

                                         linux中有七种类型的文件:

                                                  目录:   d

                                                  普通文件:-

                                                  字符设备:c   //学习后面的驱动

                                                  块设备:b     //学习后面的驱动

                                                  套接字:s     //学习网络编程

                                                  软链接文件:  l       

                                                  管道文件: p     //学习系统编程

                                         第一个字符:  d  --》目录

                                                                 -  --》普通文件

                                         第二个开始的字符:  表示可读,可写,可执行的权限

                                                            分为三组:分别表示当前用户,同组用户,其它用户对于这个文件的操作权限

                                                                              r  --》可读    w --》可写  x --》可执行

6. echo命令

          在屏幕上输出数据   

          echo  "hello"

          echo   567

7. 切换超级用户

          用途: 当你想要修改根目录下的文件夹里面的内容

          临时借用超级用户的权限

                 sudo   命令的完整写法

                  sudo   vim   hello.c      //临时借用超级用户的权限创建hello.c

                  sudo   rm    hello.c   //临时借用超级用户的权限删除hello.c

          永久切换超级用户

                  sudo   -s

         切换回普通用户

                  su   普通用户的名字

8. 剪切文件或者目录

         mv   文件名   目标路径

         比如: mv  hello  /mnt/hgfs/share    //当前路径下的hello剪切到共享

    重命名文件

         mv  hello.c   hehe.c    //给hello.c更换名字为hehe.c

    区分剪切和重命名

         主要看后面你写的是合法的路径名(剪切)还是文件名(重命名)

9  修改权限

         chmod  777  文件的名字

         chmod  777  目录的名字    -R  (递归修改文件夹的权限)

               7 ---》 二进制  111(分别代表读,写,执行的权限)

         例如: chmod  666 hello.c        chmod  654  hello.c

10. 软链接

         软链接:ln  -s  原来的名字   软链接的名字

                       类似于windows中的快捷方式

         硬链接:ln      原来的名字   硬链接的名字

              软硬链接共同点:原文件修改了,跟着一起修改,链接文件修改了,原文件跟着修改

                                          软链接和硬链接只能在纯粹的linux环境中创建(共享文件夹中无法创建软链接)       

                                区别:软链接依赖于原文件,硬链接不需要依赖

                                           硬链接的文件类型跟原来的文件一样,软链接文件类型属于链接文件

 11. 打包和压缩文件

               linux中有两种常见格式的压缩包:

                                        .bz2结尾和gz结尾

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

               例如:  tar    -jcf    66.tar.bz2    1.jpg  2.mp3   3.txt  

                      tar   -zcf   xxx.tar.gz      文件名1   文件名2   ......

               例如:  tar    -zcf    66.tar.gz    1.jpg  2.mp3   3.txt                                    

              查看压缩包里面的内容:

                                               tar  -tf   压缩包的名字

              解压:

                                              tar  -jxf  66.tar.bz2    //默认解压到当前路径

                                              tar  -zxf  66.tar.gz     //默认解压到当前路径

              解压到指定的位置:

                                              tar  -jxf  66.tar.bz2    -C   你要指定的路径   

                                              tar  -zxf  66.tar.gz     -C   你要指定的路径                            

 12. 查找搜索相关的命令

             find  

                 比如: find  /  -name  stdio.h  //在根目录下找名字叫做stdio.h的文件

                             find  /   -type  文件类型

                                              find  /   -type    d   // 搜索根目录下的所有的文件夹                      

             grep

                比如:grep "printf"  stdio.h -Hn   //我要在stdio.h文件中搜索关键字printf,并打印printf出现行号

                                           -H    打印文件的名字

                                           -n    打印关键词出现的行号

                                           -w   全字匹配,跟关键词一模一样       

 13. 查看文件

                       cat  文件名   //查看整个文件内容

                       head

                                         head 1.txt  -n 2   //查看1.txt的前面2行

                       tail  

                                         tail    1.txt  -n  2  //查看1.txt的最后2行                               

 14. 在线下载软件,更新下载源,卸载软件

 15. ubuntu网络配置

            总体有两种配置方法:

                  第一种: 使用图形用户界面配置

                           步骤:  (1)确保你的windows是能上网,如果是动态ip,linux网络配置成NAT模式

                                                                                       如果是静态ip,linux网络配置成桥接模式

比如:彭老师windows的ip如下,配置静态ip的时候,ip地址前面三个部分跟window一样,子网掩码,默认网关,DNS全部照抄     

                                   

 

                   第二种: 使用配置文件去配置

                            步骤: (1)确保你的windows是能上网,如果是动态ip,linux网络配置成NAT模式

                                                                                          如果是静态ip,linux网络配置成桥接模式

                                       (2) 打开/etc/network/interfaces文件

                                                在这个文件的后面加入如下几句话(静态)

                                                          auto  ens33

                                                          iface ens33 inet static      //设置静态ip

                                                          address 192.168.1.5   //设置ip地址

                                                          gateway 192.168.1.1  //设置网关

                                                          netmask 255.255.255.0  //子网掩码

                                                  打开/etc/resolv.conf文件

                                                            namesever  你自己的DNS服务器地址                                        

                                               在这个文件的后面加入如下几句话(动态)

                                                          auto  ens33

                                                          iface ens33 inet dhcp      //设置动态ip

                                        (3)重启网络

                                                          sudo /etc/init.d/networking force-reload     

                                                          sudo /etc/init.d/networking restart                     

 16. 拷贝文件/目录

             cp   文件名    目标路径

             cp   目录名    目标路径    -rf   (r递归  f强制)

 17. 给命令取别名

             注意: 取别名不能跟系统中原本的命令冲突

             alias   c='clear'    //表示我给clear命令换个名字,叫做c

       取消别名

             unalias  c   //取消刚才取的别名c

18.  查询shell命令的路径

            which  shell命令的名字

                                which   ls  --》/bin/ls

                                which  find --》/usr/bin/find

19.  重启ubuntu

          reboot

20.  查看或者修改ubuntu的ip地址

         查看ip地址    ifconfig    //   ens33 是ubuntu虚拟网卡的名字

          ens33     Link encap:Ethernet  HWaddr 00:0c:29:0b:88:5f  

          inet addr:192.168.245.128  Bcast:192.168.245.255  Mask:255.255.255.0

          inet6 addr: fe80::8660:80e4:c81f:866f/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:51 errors:0 dropped:0 overruns:0 frame:0

          TX packets:112 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:5086 (5.0 KB)  TX bytes:15208 (15.2 KB)

 

练习:

          1.  借用/etc/bash.bashrc文件实现打开终端,能够自动运行你写的某个C语言程序(编译好)

                    ./work4  ---》表示运行当前路径下的work4,linux中小数点表示当前路径

                            执行程序有两种写法:

                                         第一种:  ./hello      //相对路径

                                         第二种: /mnt/hgfs/share/hello    //绝对路径