linux下常用命令与常用操作用法及解释tftp/nfs(初学者必备,正在总结更新中……)

 

1、环境变量

     (1)打印环境变量:ehco  $PATH(目录导出到环境变量后,里面的文件才能跨文件执行)

     (2)添加到环境变量(一般放在当前用户的宿主目录~/下的.bashrc文件里):export PATH=/usr/local/bin:$PATH

                解释:每一次用户在打开一个终端时,都会附带执行一次.bashrc

2、符号链接

     (1)软连接:(ln -s  源文件名     符号链接名)例如:ln -s   src.c    linker.c      删除源文件后,软连接文件失效,可以连接目录

     (2)硬连接:(ln   源文件名    符号链接名) 删除源文件后,硬链接文件还在,不能连接目录

                       

             解释:硬链接不占用磁盘空间,共用一个inode(http://blog.51cto.com/jk6627/1949090

                        软连接占用软链接的inode号不一样,链接文件B的数据中仅存储了一个路径指向A,只占用3个byte

3、压缩与解压缩dir 文件

    (1)tar   -czvf    dir.tar.gz    dir/       将dir目录压缩成dir.tar.gz

             tar   -zxvf    dir.tar.gz                dir.tar,gz解压缩

    (2)tar   -cjvf     dir.tar.bz2  dir/       将dir目录压缩成dir.tar.bz2

             tar   -jxvf     dir.tar.bz2              dir.tar.bz2解压缩

4、查找文件和内容

    (1)find 路径  -name  "文件名"           查找文件放哪里

    (2)grep  -nr   "某个词"                       查找内容    n表示查找结果中显示行号,-r 递归查找

    (3)which   应用程序                          比如which  ls    查找一个应用程序在哪里

    (4)vi命令模式下输入/xxx                  查找到xxx

    (5)vi设置显示行号输入:num          代码或内容显示行号       

    (6)快速切换到某行输入:set nu       快速切换到num行 

5、目标板挂载nfs

    (1)mount  -t  nfs  -o  nolock  192.168.1.141:/home/aston/rootfs   /mnt

             解释:Ubuntu搭建了NFS服务器后,就是促使Servers上的文件能被其他的机器mount,而达到资源共享,比如在目标板上要执行Ubuntu中的可执行程序,或要cp到目标板,机器(arm板)主动去使用nfs方式去挂载到servers(ubuntu),linux内核配置meuncofig时要选择nfs模块

6、tftp加载文件(ubuntu搭建好tftp-server后,会有一个自己定义专用的目录用来传输文件比如:tftpboot目录)

    (1)本地测试;在本地一个目录下使用命令: tftp localhost,进入tftp命令行

                                                            使用命令: get  a.c ,这个目录下多一个a.c

                                                            使用命令: q ,即可退出命令行(具体还有很多操作命令)

    (2)远程测试;比如将编译好的zImage加载到开发板的内存地址DDR去启动内核,uboot本身内置了tftp-client

                                                             在开发板uboot命令行下使用:tftp  0x30008000  zImage

7、uboot命令行烧录kernel、roofts到外部spiflash

              mw.b 0x82000000 ff 0x300000                (mw.b:二进制写内存; 0x82000000: 内存首地址; 0xff:值; 0x1000000:size)
              tftp 0x82000000 uImage_hi3518ev200    (下载文件到内存)
              sf probe 0                                                 (选择spiflash)
              sf erase 0x100000 0x300000                   (擦除)
              sf write 0x82000000 0x100000 0x300000(将内存内容写入spi flash)

8、uboot命令行设置bootcmd和bootargs

     7.1 命令:set bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000'

               (1)选择spiflash,命令:sf probe 0

               (2)将sflash的0x10000地址处内容读取0x300000个字节到内存地址0x82000000(DDR物理地址就是这个)

               (3)在0x82000000处启动,命令:bootm 0x82000000(比如0x100000存放的是kernel,则启动内核)

    7.2 命令:set bootargs mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1024K(boot),3072K(kernel),12288K(rootfs)

               (1)整个DDR被划分为两部分:系统内存和mmz。mem=32M,比如HIS3518的DDR共有64M,告诉kernel留给linux                            系统的内存只有32M,其他的32M给mpp,后面也要传参?

               (2)控制台参数。console=ttyAMA0,115200表示使用串口0作为控制台设备 波特率为115200

               (3)表示根文件系统所在的设备分区,mtdblock2表示根文件系统对应mtdparts中的rootfs,从第0个算

               (4)根文件系统类型,请根据烧写的文件系统类型配置,此处为jffs2,告诉内核文件系统类型

               (5)SPI Flash对应取值hi_sfc,Nand Flash对应取值hinand;size表示分区大小  name表示分区名称

               (6)参考博客https://blog.csdn.net/peng_apple/article/details/54315218

9、手动制作rootf命令

    命令:mkfs.jffs2 -d rootfs_uclibc -l -e 0x10000 -o  rootfs_uclibc_64k.jffs2

               (1)  mkfs.jffs2是用来制作.jffs2文件系统格式的工具(mkfs.jffs2需要 安装对应的软件包,在YAFFS2源文件的utils目录下,执行make就可以生成 mkyaffs2image工具,安装mkfs.jffs2 https://blog.csdn.net/lwg19870804/article/details/41448809

               (2)0x10000制作rootfs时指定块的大小;

  • 创建文件系统时,可以指定块的大小。如果将来在你的文件系统中是一些比较大的文件的话,使用较大的块大小将得到较好的性能。将ext2文件系统的块大小调整为4096byte而不是缺省的1024byte,可以减少文件碎片,加快fsck扫描的速度和文件删除以及读操作的速度。
  • 使用多大的块大小,需要根据你的系统综合考虑,如果系统用作邮件或者新闻服务器,使用较大的块大小,虽然性能有所提高,但会造成磁盘空间较大的浪费。比如文件系统中的文件平均大小为2145byte,如果使用4096byte的块大小,平均每一个文件就会浪费1951byte空间。如果使用 1024byte 的块大小,平均每一个文件会浪费927byte空间。在性能和磁盘的代价上如何平衡,要看具体应用的需要。 

               (3)具体参数:博客https://blog.csdn.net/itismine/article/details/4775824

10、截取指定内容输出到另一个文件

     命令:find -name "a.c" -print -exec cat {} \; | grep "li" | sed 's/[[:space:]]//g' | cut -d"\"" -f2 > b.c

                (1)find ./ -name "a.c" -print -exec cat {} \;  当前目录下找到文件a.c文件,打印并执行cat命令,{} \是命令格式而已

                (2)管道 |                         表示前面语句的输出作为后面语句的输入

                (3)grep "li"                     查找到与内容li相关的行

                (4)sed 's/[[:space:]]//g'   把li相关的行里面的空格字符去掉,比如libowen  26  "abc" 变成libowen26"abc"

                (5) cut -d"\"" -f2              以"作为列分隔符,输出第二列到b.c

11、查看可执行文件使用了哪些动态库

        命令:ldd 可执行文件

                 (1)作用是可以在一个使用了共享库的程序执行之前解析出这个程序使用了哪些共享库,并且查看这些共享库是否能被找到,能被解析(决定这个程序是否能正确执行)。

12、环境变量

(1)echo $PATH打印PATH这个环境变量的值(在环境变量前要加$),将路径添加到PATH环境变量,这样该路径下的可执行文件或脚本可以在任意路径下执行,否则会提示找不到该执行文件或脚本添加方式到PATH的方式:export PATH=/usr/local/bin:$PATH

(2)命令行下执行export后可以查看系统中所以的环境变量

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值