• id --help Usage: id [OPTION]... [USERNAME] Print user and group information for the specified USERNAME, or (when USERNAME omitted) for the current user.  -a ignore, for compatibi
    id --help
    Usage: id [OPTION]... [USERNAME]
    Print user and group information for the specified USERNAME,
    or (when USERNAME omitted) for the current user.


      -a              ignore, for compatibility with other versions
      -Z, --context   print only the security context of the current user
      -g, --group     print only the effective group ID
      -G, --groups    print all group IDs
      -n, --name      print a name instead of a number, for -ugG
      -r, --real      print the real ID instead of the effective ID, with -ugG
      -u, --user      print only the effective user ID
          --help     display this help and exit

          --version  output version information and exit


    [root@localhost proc]# id
    uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    [root@localhost proc]# id -un
    root

    展开全文
  • Linux id 命令

    2015-12-20 17:41:11
     打印实际和有效的用户和组ID   2、命令格式  id[OPTION]... [USERNAME]   3、常用命令参数  打印指定USERNAME或者当前的用户和组信息  -a 忽略,为了与其他版本的兼容性  -Z,--context 只打印当前...

    1、概述

             打印实际和有效的用户和组ID

     

    2、命令格式

             id[OPTION]... [USERNAME]

     

    3、常用命令参数

             打印指定USERNAME或者当前的用户和组信息

             -a  忽略,为了与其他版本的兼容性

             -Z,--context  只打印当前用户的安全上下文

             -g,--group  只打印有效的组ID

    [oldboy@zhang~]$ id -g

    500

             -G,--groups  打印所有的组【附加组】ID

             -n,--name  打印名称而不是数字。适用于 -ugG

    [root@zhang ~]# id -nug zhang

    id: cannot print "only" of more than one choice

    [root@zhang ~]# id -ng zhang

    zhang

    [root@zhang ~]# id -nu zhang

    zhang

    [root@zhang ~]# id -n zhang

    id: cannot print only names or real IDs in default format

             -r,--real  打印真实的ID替代有效的ID。  -ugG 而言

    [root@zhang ~]# id -r

    id: cannot print only names or real IDs in default format

    [root@zhang ~]# id -ru

    0

    [root@zhang ~]# id -rg zhang

    503

    [root@zhang ~]# id -rG

    0

    [root@zhang ~]# id -ruG

    id: cannot print "only" of more than one choice

             -u,--user  只打印用户有效的ID

    [root@zhang ~]# id -u zhang

    503

     

    4、常用示例

             暂无

     

    5、命令所在位置和类型

    [oldboy@zhang~]$ which id

    /usr/bin/id

    [oldboy@zhang~]$ type id

    id is hashed(/usr/bin/id)

     

    6、另请参见

    linux id命令参数及用法详解(linux查看当前登陆用户uid,gid)



    展开全文
  • 参考:http://phpmianshi.com/?id=95 ss用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,...

    参考:http://phpmianshi.com/?id=95

     

    ss用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

    当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,但请相信我,当服务器维持的连接达到上万个的时候,使用netstat等于浪费 生命,而用ss才是节省时间。

    ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。

     

    -h:显示帮助信息;
    
    -V:显示指令版本信息;
    
    -n:不解析服务名称,以数字方式显示;
    
    -a:显示所有的套接字;
    
    -l:显示处于监听状态的套接字;
    
    -o:显示计时器信息;
    
    -m:显示套接字的内存使用情况;
    
    -p:显示使用套接字的进程信息;
    
    -i:显示内部的TCP信息;
    
    -4:只显示ipv4的套接字;
    
    -6:只显示ipv6的套接字;
    
    -t:只显示tcp套接字;
    
    -u:只显示udp套接字;
    
    -d:只显示DCCP套接字;
    
    -w:仅显示RAW套接字;
    
    -x:仅显示UNIX域套接字。
    

     

    显示TCP连接

    ss -t -a
    

    显示 Sockets 摘要

    ss -s
    

    查看进程使用的socket

    ss -pl
    

    找出打开套接字/端口应用程序

    ss -pl | grep 3306
    

    Recv-Q和Send-Q详解

     

     

    1. 当 client 通过 connect 向 server 发出 SYN 包时,client 会维护一个 socket 等待队列,而 server 会维护一个 SYN 队列

    2. 此时进入半链接的状态,如果 socket 等待队列满了,server 则会丢弃,而 client 也会由此返回 connection time out;只要是 client 没有收到 SYN+ACK,3s 之后,client 会再次发送,如果依然没有收到,9s 之后会继续发送

    3. 半连接 syn 队列的长度为 max(64, /proc/sys/net/ipv4/tcp_max_syn_backlog)  决定

    4. 当 server 收到 client 的 SYN 包后,会返回 SYN, ACK 的包加以确认,client 的 TCP 协议栈会唤醒 socket 等待队列,发出 connect 调用

    5. client 返回 ACK 的包后,server 会进入一个新的叫 accept 的队列,该队列的长度为 min(backlog, somaxconn),默认情况下,somaxconn 的值为 128,表示最多有 129 的 ESTAB 的连接等待 accept(),而 backlog 的值则由 int listen(int sockfd, int backlog) 中的第二个参数指定,listen 里面的 backlog 的含义请看这里。

    6. 当 accept 队列满了之后,即使 client 继续向 server 发送 ACK 的包,也会不被相应,此时,server 通过 /proc/sys/net/ipv4/tcp_abort_on_overflow 来决定如何返回,0 表示直接丢丢弃该 ACK,1 表示发送 RST 通知 client;相应的,client 则会分别返回 read timeout 或者 connection reset by peer。上面说的只是些理论,如果服务器不及时的调用 accept(),当 queue 满了之后,服务器并不会按照理论所述,不再对 SYN 进行应答,返回 ETIMEDOUT。根据这篇文档的描述,实际情况并非如此,服务器会随机的忽略收到的 SYN,建立起来的连接数可以无限的增加,只不过客户端会遇到延时以及超时的情况。

     

    可以看到,整个 TCP stack 有如下的两个 queue:
    1. 一个是 half open(syn queue) queue(max(tcp_max_syn_backlog, 64)),用来保存 SYN_SENT 以及 SYN_RECV 的信息。
    2. 另外一个是 accept queue(min(somaxconn, backlog)),保存 ESTAB 的状态,但是调用 accept()。

     

    展开全文
  • 目录 1.文件连接 1.1 in 2.文件权限 2.1 chmod 2.2 chown 2.3 chgrp 3. 查找文件或命令 3.1 find 3.2 locate和updatedb 3.3 which 3.4 whereis 3.5 命令帮助 4.用户管理 4.1 useradd ......

    目录

    1.文件连接

    1.1 in

    2.文件权限

    2.1 chmod

    2.2 chown

    2.3 chgrp

    3. 查找文件或命令

    3.1 find

    3.2 locate和updatedb

    3.3 which

    3.4 whereis

    3.5 命令帮助

    4.用户管理

    4.1 useradd

    4.2 passwd

    4.3 userdel

    4.4 who

    4.5 groupadd

    4.6 last

    4.7 lastlog

    5.压缩和解压缩

    5.1 gzip

    5.2 tar

    5.3 zip

    5.4 unzip

    5.5 bzip2

    5.6 bunzip2

    6.0 通信和网络

    6.1 服务器上登录的用户之间通信

    7.登出和重启

    7.1exit 或 logout

    7.2关机和重启

    7.3 init

    7.4 runlevel

    7.5 uptime

    7.6 w

    8.0 vi或vim


    1.文件连接

    1.1 in

        文件连接 link

        -s  创建软连接文件(软连接就相当于windows的快捷方式)

    软连接

    cd ~      cp -p /etc/passwd .

    ln -s passwd plink  对passwd创建软连接文件

    ls –l

    cat plink  查看源文件

    echo asdfsdfsdf >> plink  向源文件输出

    cat plink

    cat passwd

    删除原文件,软连接失效

    rm -f passwd        ls -l

    cat plink

    硬连接,

    是一个原文件的副本,

    保存与原文件相同的数据

    与原文件id相同

    修改原文件或硬连接文件,同时对另一个文件做相同修改

    删除任意文件,不影响其它文件

     

     

    硬链接

    cp -p /etc/passwd .

    ls -l

    ln passwd passwd2

    ln passwd passwd3

    ln passwd passwd4

    ls -li

    echo asdfweegfwe >> passwd

    cat passwd3

    ls –l

    rm -f passwd

    ls -l

    cat passwd3


    2.文件权限

    用户,用户组,其他人

    r   读     4

    w   写     2

    x   执行   1

     

    目录权限

        r   目录列表权限

        w   创建,删除文件

        x   进入目录,打开目录

    2.1 chmod

     

    修改权限 change mode

    u 用户

    g 用户组

    o 其它人

    + 增加权限

    - 减少权限

    = 设置成指定权限

     

    chmod u+wx,g=r,o-rwx  passwd

    chmod 764 passwd

     

    chmod +x /usr/local/bin/docker-compose      ugo用户、用户组、其它人

    1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限

    解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!

    修改文件,目录权限测试

    添加新用户

    useradd  tony

    cat /etc/passwd

    为tony设置密码123456,

    提示密码太简单,不理他再输一次123456

    passwd  123456

     

    快捷键 alt+f2,使用zhangsan登录

    alt+f1…f6,切换工作界面

     

    alt+f1

    cd /home/zhangsan

    touch  f1

    echo  asdfasdf >> f1

    ls -l

     

    alt+f2

    cat f1

    echo werwsdfasdf >> f1

     

    alt+f1

    chmod  o+w  f1 其他人添加写权限

     

    alt+f2

    echo werwsdfasdf >> f1

    cat f1

     

    alt+f1

    mkdir d1

    ls -l

    touch  d1/f2

    chmod  o+w  d1/f2

     

    alt+f2

    cd d1

    pwd

    ls -l

    touch f3

    rm f2

    echo asdfasdf >> f2

    cat f2

     

    alt+f1

    chmod  o+w  d1

    chmod  o-w  d1/f2

     

    alt+f2

    touch f3

    echo  asdfasf >> f2

    rm f2

    2.2 chown

     

    改变所有者 change owner

    chown  zhangsan  f1

    修改文件所有者

    alt+f1

    cd /home/zhangsan

    chown  zhangsan  f1

    chown  zhangsan  d1

    ls -l

    2.3 chgrp

     

    改变所属用户组

    chgrp  group1  f1

    改变所属组

    alt+f1

    groupadd  group1

    chgrp  group1  f1

    ls -l


    3. 查找文件或命令

    3.1 find

    查找任意文件,支持通配符 * 和 ?

    find /home -name f1

        -name

            搜文件名,通配符 *、?  

        -iname

            忽略大小写   

        -size

            按文件大小查找

            +块数, 大于…

            -块数,小于…       

            一块等于512字节

              -size +20800 大于20800*512字节

              -size 20800  等于20800*512字节   

        -user

        -group

            按所有者、所属组查找

            find  -user  root   

        -amin

            access minutes, 按访问时间查找

        -cmin

            change, 属性更改

        -mmin

            modify, 内容修改       

            -amin  -60  60分钟内

     

        -type

            f, d, l

        -a

            and

        -o

            or

       

        -exec

        -ok

            对查找结果直接执行操作命令

           

            … -exec ls -l {} \;

           

            … -ok ls -l {} \;

                  需用户确认   

    find查找文件

    alt+f1

    cd ~

    /etc目录下查找文件serv*

    find  /etc  -name  se* -a -type f |cat –n

     

     

    3.2 locate和updatedb

    在文件数据库中查找,效率比find高得多,新文件不会时时的添加到数据库,locate查找新文件可能找不到,需要更新数据库 updatedb

    locate  service

    locate查找文件

    find / -name *service*

    locate  service

    cd ~

    touch  myfile1

    locate  myfile1

    updatedb

    locate  myfile1

    3.3 which

     

    查找命令,可以显示命令别名

    which  ls

    which测试

    which  ls

    which  rm

    which  mv

     

    /bin/ls  alias ls=’ls –color=auto’

    /bin/ls 命令文件

    alias ls  起个别名叫ls

    ls –color=auto  执行的真实命令

     

    执行真实命令文件

    /bin/ls  -li

    /bin/ls  -li  –color=auto

     

    /bin/rm  f1

     

    alt+f2

    which  rm

    touch f1

    rm f1

     

    alt+f1

    cd ~

    别名配置文件

    用户主目录中的隐藏文件 .bashrc

    cat  .bashrc

     

    cd /home/zhangsan

    cat  .bashrc

    3.4 whereis

     

    查找命令,显示帮助文档的路径

    whereis  ls

    whereis  cp

    whereis  useradd

    /usr/sbin  超级管理员命令目录

    whereis  mysqld

     

     

    3.5 命令帮助

    –help

    简单的帮助信息

    ls –help

    mkdir –help

    ps –help

    ifconfig  –help

    –man

     

     

    详细使用手册 manual,只有shell命令才有手册,内核命令没有独立手册

    也可以查看配置文件手册,只指定文件名,不能写文件路径

    man  mkdir

    man  ifconfig

    man  cp

    man  cd  内核命令没有独立文档

    man  passwd     配置文件手册

    man  shadow

    man  services

    –whatis

     

     

    查看命令的简单信息

    whatis ls

    whatis cp

    whatis cd

    whatis whatis

    –apropos

     

     

    配置文件简单信息

    apropos  services

    apropos  passwd

     

     

     

    –info

    命令信息

     

     

    –help

    命令帮助


    4.用户管理

    4.1 useradd

    添加用户

    useradd  zhangsan

     

    -g     指定用户组(主组)

    -G     指定附加组 -G  grp1,grp2,grp2

     

    添加用户

    alt+f2

    cat /etc/passwd

    passwd  lisi  设置密码123456

    cat /etc/shadow

    useradd  lisi   普通用户不能添加新用户

    alt+f1

    useradd -g root -G group1 lisi

    4.2 passwd

     

    密码管理

    passwd     设置当前用户的密码

    passwd   zhangsan  对zhangsan的密码进行设置

     

    -l  锁定密码,不允许用户登录

    -u  解锁用户

    -d  无口令

     

    密码

    passwd  -l  zhangsan

    alt+f2

    exit

    alt+f1

    passwd  -u  zhangsan

    alt+f2

    alt+f1

    passwd  -d  zhangsan

    alt+f2

    logout

    cat  /etc/shadow

    4.3 userdel

     

    删除用户 user delete

    删除用户时,会同时删除他的主目录

    userdel  lisi

     

    4.4 who

     

    查看当前登录的用户

    4.5 groupadd

     

    添加用户组

    groupadd  group1

    4.6 last

     

    显示用户的最近的登录信息

    4.7 lastlog

     

    显示用户最后一次登录信息


    5.压缩和解压缩

    5.1 gzip

    对 gz 格式压缩文件进行压缩和解压缩,不能直接对目录进行压缩

    压缩:

        gzip  passwd

        会生成 passwd.gz,并删除原文件

    解压缩:

        gzip  -d  passwd.gz 

        解压缩,解压之后,生成passwd,并删除压缩文件

    gzip

    cd ~

    cp  -p  /etc/services  .

    ls -l

    gzip  services

    ls -l

    gzip  -d  services.gz

    ls -l

     

     

    5.2 tar

    将目录打成一个tar文件包(不压缩),结合gzip,将tar打包文件可以再进行压缩

    tar也提供了参数,自动执行gzip压缩

     

        -c

            创建打包文件 create

        -v

            显示详细信息 verbos

        -f

            指定文件名 file

        -z

            打包同时压缩 gz,或者拆包时解压缩

        -j

            打包同时压缩 bzip2

     

        -x

            解包, tar文件,解开成文件夹

        -z

            解压缩

     

    -czf  

        创建打包文件,进行压缩,指定文件名

     

    -zxvf

        解压缩后进一步解包,显示详细信息,指定文件名

    tar

    cd ~

    rm  -rf  aa

    mkdir  -p  aa/bb/cc

    cp  /etc/passwd    aa

    cp  /etc/services  aa/bb

    cp  /etc/shadow    aa/bb/cc

     

    tar  -czf  aa.tar.gz  aa

    ls -l

     

    gzip  -d  aa.tar.gz

    ls -l

     

    gzip  aa.tar

    ls –l

     

    rm  -rf  aa

    ls -l

     

    tar  -zxvf  aa.tar.gz

    ls -l

    5.3 zip

     

    压缩文件:

        zip  a.zip  f1

    压缩目录:

        zip  -r  a.zip  aa

     

    不会删除原文件或压缩文件

     

    zip

    cd ~

    cp  /erc/services  .

    zip  s.zip  services  压缩services文件

    ls –l

     

    mkdir  aa

    zip  -r  b.zip  aa  压缩 aa目录

    ls -l

     

     

    5.4 unzip

    解压缩

    unzip  s.zip

     

    unzip

    rm  services

    rm –rf  aa

     

    unzip  s.zip    解出services

    unzip  b.zip    解出aa目录

    5.5 bzip2

     

    bzip2  services

    默认压缩后会删除原文件

    -k  保留原文件

    5.6 bunzip2

     

    bunzip2  services.bz2

    默认解压后不保留压缩文件

    -k  保留压缩文件

     

    tar+bzip2对目录打包压缩

    ls -l

    tar  -cjf  j.tar.bz2  aa

    ls –l

     

    rm  -rf  aa

    tar  -jxvf  j.tar.bz2

    ls -l


    6.0 通信和网络

    6.1 服务器上登录的用户之间通信

    –write

    向登录的其他用户发送信息

    write  zhangsan

    ctrl+c 退出

    write 

    alt+f2

    用zhangsan登录

     

    who

    write  root

    hello

    ctrl+c

     

    alt+f1

    EOF   - End Of

    –wall

    向在线所有用户发送信息, write  all

    wall  message…

    wall  sdfsdf

     

     

    6.2 网络

    –ifconfig

    查看本机的网卡ip设置

    Centos7 ip addr

    –ping

    测试与另一台主机网络是否连通,及网络的连接速度,向对方发送数据,并等待对方发回数据

    ping  192.168.7.xxx

    ping  127.0.0.1

    ctrl+c

    -c  指定次数

    ping  -c  2  127.0.0.1

    –netstat

    查看网络服务

     

        -t

            tcp

        -u

            utp

        -l

            监听

        -r 

            路由

        -n

            ip、端口

           

        -tlun   本机监听的端口

        -an     本机所有网络连接

        -rn     本机路由表

            常用三个参数


    7.登出和重启

    7.1exit 或 logout

    登出非常重要

     

    7.2关机和重启

    服务器不能关机

     

    shutdown

    -h

            关机,指定时间 -h now       -h 20:00

        -r

            重启  -r now   或   -r 20:00

        -c

            取消预订的关机命令

    7.3 init

     

    Linux的运行状态

     

      0  关机

      1  单用户(安全模式)

      2  不完全多用户,不含nfs服务

      3  完全多用户(正常)

      4  未分配

      5  图形界面

      6  重启

     

    init  6 

    init  5  启动桌面系统

    init  3  退出桌面系统,进入命令行界面

    init  0

     

     

    7.4 runlevel

    查看当前系统运行级别

     

     

    7.5 uptime

    连续运行时间

     

     

    7.6 w

    系统运行时间,用户数,负载情况

    用户的空闲时间,累计cpu时间,单次cpu时间,运行了什么命令


    8.0 vi或vim

    Linux 命令行中的文本编辑工具,编写程序代码文件,shell脚本文件

    所有编辑操作,都要使用命令

     

      模式

          1.命令模式

          2.插入模式 i a o

          3.编辑模式 :

     

      插入模式: esc 退出

          a  字符后插入

          A  行尾插入

          i  字符前插入

          I  行首插入

          o  下面插入新行

          O  上面插入新行

         

      编辑模式:

          冒号进入

         

          :set nu      显示行号

          :set nonu    取消行号

          gg          到第一行

          G           到最后一行

          nG          到第n行

          :n          到第n行

          $           移到行尾

          0           移到行首

         

          x           删除字符

          nx          删除后面n个字符

          dd          删行

          ndd         删除n行

          dG          删当前行到文件末尾

          D           删当前字符到行尾

          :n1,n2d     n1行到n2行删除

         

          yy          复制当前行

          nyy         复制当前行向下n行

          dd          剪切当前行

          ndd         剪切当前行向下n行

         

          p、P        粘贴在当前行上面或下面

         

          r           覆盖单个字符

          R           持续覆盖字符,esc退出

     

          u           回退

          ctrl+r      重做

         

          /           搜索指定的字符串

          n           next

         

          :%s/aaaa/bbbb/g   不询问

          :%s/aaaa/bbbb/c   询问确认

                      全文替换, aaaa 替换成 bbbb

         

          :n1,n2s/aaaa/bbbb/g   不询问

          :n1,n2s/aaaa/bbbb/c   询问确认

                      指定行范围内替换

         

          :set ic     不区分大小写

          :set noic   区分大小写

         

          :w          保存

          :w filename 另存为

          :wq         保存并退出

          ZZ          保存并退出,快捷方式

          :q

          :q!         不保存直接退出

          :wq!        对只读文件强行保存并退出(所有者和root可用)

         

          :r \aa\bb 

                      导入bb文件内容 

          :!命令

                      不退出vim执行系统命令

         

          :r !命令

                      导入命令执行结果

         

          :map        自定义快捷键

                      :map [ctrl+vp]  I#<ESC>   ctrl+p添加#

                      :map [ctrl+vb]  0x<ESC>   ctrl+b取消#

     

          :n1,n2s/^/#/g     行首添加#

          :n1,n2s/^#//g     行首去除#

          :n1,n2s/^/\/\//g  行首添加//

         

          :ab  omg  oh my god!

                            定义缩写,替换为完整文本

         

          .vimrc

                      用户目录下 vim 命令配置文件,

                      可添加快捷键、缩写配置等

     

     

    vim

    i

    asdfas

    dfsdfsasd

    fasasdfasdfas

    dfsfsdf

    dfsdfasfsdfdfa

    sdf sdfs

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 在前面的实验中,我们都是直接运行Linux内核。而在实际的嵌入式系统中都是通过BootLoader加载Linux镜像,然后再去运行。 嵌入式BootLoader 功能类似PC中的BIOS,用以检测硬件是否正常。 加载操作系统镜像到RAM 设置...

    在前面的实验中,我们都是直接运行Linux内核。而在实际的嵌入式系统中都是通过BootLoader加载Linux镜像,然后再去运行。

    嵌入式BootLoader

    • 功能类似PC中的BIOS,用以检测硬件是否正常。
    • 加载操作系统镜像到RAM
    • 设置不同启动方式
      • NOR/NAND Flash启动
      • 从SD卡启动
      • BootLoader从网络加载内核启动

    下面将介绍QEMU从Ubuntu加载镜像然后启动。


    一、U-BOOT编译

    1、下载U-BOOT

    <官网>下载,也可以从我的<网盘>直接下载,提取码:lrd6 。【建议下载网盘里的】

    下载完毕拖曳到虚拟机目录./QEMU中,并输入tar jxvf u-boot-2017.05.tar.bz2进行解压!

    2、修改Makfile

    ①、进入解压后的目录,修改Makefile文件,输入vi Makefile

    和之前的一样,我们需要修改交叉编译器的相关变量值。在vi的一般模式下,输入/CORSS_COMPILE进行查找。

    我的u-boot-2017.05在249行添加内容CROSS_COMPILE ?= arm-linux-gnueabi-,保存退出。

    在这里插入图片描述

    行号,可以在一般模式下,然后输入:set nu进行显示。

    vim永久显示行号配置

    要想每次都显示,可以进入输入vi /etc/vim/vimrc,然后再文件末尾添加set nu,保存退出即可!

    ②、修改config.mk,输入vi config.mk

    修改25行为:ARCH := arm

    在这里插入图片描述

    3、修改配置文件

    输入make vexpress_ca9x4_defconfig

    在这里插入图片描述

    4、编译

    ①、输入make -j4

    在这里插入图片描述
    完成后
    在这里插入图片描述
    ②、验证U-boot是否可用

    输入qemu-system-arm -M vexpress-a9 -m 512M -nographic -kernel u-boot

    注意:出现这个倒计时的时候按下任意键直接进入,不要让它自启动,我们还没有完全配置完成,让它自启动的话会出错的。
    在这里插入图片描述

    按下任意按键之后会出现
    在这里插入图片描述

    输入print ipaddr,若成功打印IP地址,说明安装的没有问题。否则需要再找问题!

    二、QEMU网络功能配置

    一般来说QEMU可以通过NAT方式与虚拟机进行连接,但是虚拟机也是通过NAT与我们主机PC进行连接的,进而外网不能访问虚拟机。若开发板也采用这种方式,造成实际虚拟机访问不了QEMU。

    1、安装依赖包,apt install uml-utilities bridge-utils

    2、查看tun设备文件

    输入ls /dev/net,可看到Ubuntu16.04已经默认有一个tun文件。

    3、查看网络配置

    输入ifconfig
    在这里插入图片描述

    我的对应网口是ens33,IP地址是192.168.112.142

    4、修改配置文件

    ①、输入vi /etc/network/interfaces

    在其中添加如下内容

    auto ens33
     
    auto br0
    iface br0 inet dhcp
    bridge_ports ens33
    
    

    在这里插入图片描述
    ②、在/etc目录下添加qemu-ifupqemu-ifdown

    qemu-ifup内容如下

    #!/bin/sh
    
    echo sudo tunctl -u $(id -un) -t $1
    sudo tunctl -u $(id -un) -t $1
    
    echo sudo ifconfig $1 0.0.0.0 promisc up
    sudo ifconfig $1 0.0.0.0 promisc up
    
    echo sudo brctl addif br0 $1
    sudo brctl addif br0 $1
    
    echo brctl show
    brctl show
    
    sudo ifconfig br0 192.168.112.142 
    

    qemu-ifdown内容如下

    #!/bin/sh
    
    echo sudo brctl delif br0 $1
    sudo brctl delif br0 $1
    
    echo sudo tunctl -d $1
    sudo tunctl -d $1
     
    echo brctl show
    brctl show
    
    

    在这里插入图片描述

    ③、上面两个修改和添加完成后,输入reboot进行重启!

    重启后输入ifconfig,可发现已经生成虚拟网口br0,这个就是以后的虚拟开发本与主机host通信接口。

    在这里插入图片描述

    三、使用U-boot引导内核镜像

    前提

    • 需要将内核编译为uImage格式
    • 需要指定uImage的加载地址
    • 编译时指定:$ make LOADADDR=0x60003000 uImage -j4

    1、进入linux内核所在目录,cd /home/clay/QEMU/linux-4.4.195/

    2、指定U-boot加载内核地址

    ①、输入make LOADADDR=0x60003000 uImage -j4

    在这里插入图片描述

    ②、查看uImage是否生成,输入ls arch/arm/boot

    在这里插入图片描述

    四、TFTP工具安装

    1、安装tftp工具:apt install tftp-hpa tftpd-hpa xinetd

    2、修改配置文件,输入vi /etc/default/tftpd-hpa

    修改文件内容如下所示:

    # /etc/default/tftpd-hpa
     
    TFTP_USERNAME="tftp"
    TFTP_DIRECTORY="/home/clay/QEMU/tftpboot"
    TFTP_ADDRESS="0.0.0.0:69"
    TFTP_OPTIONS="-l -c -s"
    

    在这里插入图片描述

    3、在/home/clay/QEMU/下,创建tftpboot文件夹

    在这里插入图片描述

    然后设置其权限为最高权限,输入chmod 777 tftpboot
    在这里插入图片描述

    4、重启tftp服务

    输入/etc/init.d/tftpd-hpa restart

    在这里插入图片描述

    5、拷贝文件到tftpboot文件夹

    ①、拷贝三个文件

    • uImage
      • cp -r /home/clay/QEMU/linux-4.4.195/arch/arm/boot/uImage .
    • u-boot
      • cp -r /home/clay/QEMU/u-boot-2017.05/u-boot .
    • vexpress-v2p-ca9.dtb
      • cp -r /home/clay/QEMU/linux-4.4.195/arch/arm/boot/dts/vexpress-v2p-ca9.dtb .

    在这里插入图片描述

    ②、新建脚本boot-uboot.sh ,并添加可执行权限,然后写入代码如下。

    qemu-system-arm \
    	-M vexpress-a9 \
    	-kernel u-boot  \
    	-nographic  \
    	-m 512M  \
    	-net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
    	-sd a9rootfs.ext3
    
    

    在这里插入图片描述

    展开全文
  • 教你学Python17-玩转linux系统 MacOS系统,Windows系统,是我们平时在工作和生活中最常见的PC操作系统,除了这两种系统之外,在服务器上最主要的是linux操作系统,作为一名程序开发人员,今天我来带大家玩转linux...
  • Linux 基础命令 -- id

    2020-02-23 15:07:42
    命令:id 显示用户的ID,以及所属群组的ID 用法:id [OPTION]… [USER] id 用户 命令选项 [root@fp-21 ~]# id --help -Z, --context # 打印当前用户的安全上下文 -g, --group # 打印有效的组ID -G, --groups # ...
  • mysql----linux系统

    2018-11-09 20:38:58
    MYSQL命令: 一、进入mysql(linux安装mysql后默认是没有密码的): mysql -uroot; 二、mysql命令----“增“:create(关键字) ...1、新建一个库(database):aaa ...id int unsigned not nu...
  • Day31 - 玩转Linux操作系统 操作系统发展史 只有硬件没有软件的计算机系统被称之为“裸机”,我们很难用“裸机”来完成计算机日常的工作(如存储和运算),所以必须用特定的软件来控制硬件的工作。最靠近计算机硬件...
  • 写在前面的话:Linux命令有很多,死记硬背的可以说是太傻了,所以天真的我选择记下来。记之前建议大家能够系统的学习Linux,而不是单单记住几个简单的命令。个人推荐B站视频尚硅谷韩顺平讲的视频:...
  • 树莓派的学习使用(番外) --Debain系Linux系统学习 要熟练使用学习树莓派,树莓派系统的相关命令操作就需要熟练掌握。 而树莓派的系统Raspbian是Arm版的Linux系统,其基于Debian系,所以本篇章就介绍常用的Debain系...
  • 4.3. Camera ...1) 80-NA157-22_PRESENTATION- MSM8974-APQ8074-MSM8X26-APQ8084 LINUX CAMERA OVERVIEW.pdf2) 80-NE717-1_MSM8974-APQ8074-MSM8X26 LINUX CAMERA SOFTWARE DESIGN DOCUMENT.pdf3) 80-NU32
  • 建议&...Linux目录简介: Linux编辑器vi和vim 关机&重启&登陆&注销 用户管理 实用指令 运行级别 帮助指令 文件目录类 时间日期类 搜索查找类 压缩解压类 学习方法和建议 常用指令 ...
  • 初次接触Linux就是感觉这系统不够友好不够人性化,因为首先接触电脑就是win,图形化界面什么操作都可以清晰看到。随着更多的接触越来越发现Linux的强大,虽然我只是一个小白,可我就是爱上他了。现在就把上课学的...
  • 鸟哥的 Linux 与 ADSL 私房菜 一些基础的 Linux 问题 最近更新日期:2002/06/28 一些基础的 Linux 问题与讨论: 注意:如果您有更好的试题,或者是有相关的数据要提供给 VBird 的话,我也会尽快的将他写到...
  • Vim编辑器与Shell命令脚本—Linux就该这么学(三) 学习总览 Vim文本编辑器 编写Shell脚本 流程控制语句 计划任务服务程序 Vim文本编辑器 Vim的三种模式 命令模式:控制光标...
  • 晨魅--初学Linux系统

    2016-07-24 10:57:56
    Linux系统基础操作
  • Installing 11.2.0.3 Or 11.2.0.4 (32-bit (x86) or 64-bit (x86-64) ) On RHEL6 Reports That Packages "elfutils-libelf-devel-0.97" And "pdksh-5.2.14" Are ... (PRVF-7532) (文档 ID 1454982.1) 处理方式是忽略
1 2 3 4 5 ... 20
收藏数 6,659
精华内容 2,663
热门标签