ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:91.09KB ,
资源ID:6361291      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6361291.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(linux学习心得.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

linux学习心得.docx

1、linux学习心得目录一常用命令 21系统管理 22程序安装与编译 23文件管理: 34压缩解压: 35文本编辑 36驱动相关 47U盘分区 4二程序设计 41汇编程序设计 42 shell编程 53 perl编程语言 5三小技巧 63 fedora中常用操作 64 cramfs文件解压 75 DNW操作命令 76 串口传文件命令 87.eclipse中使用arm-linux-gcc 89. Virtualbox使用技巧 810.linux下的超级终端 911 Linux网络服务 912根文件系统移植 9四 驱动开发 111 Gadget 驱动之U盘 112查看设备的命令 11五、常用结构体

2、111. struct file 112. struct file_operations 12Struct inode结构体 15struct inode_operations 16struct device 18字符设备 21终端设备相关结构体 22一常用命令1系统管理sudo su或sudo -s #获取root权限 ubuntu中先输入sudo passwd root设置root用户密码,然后直接root帐号登录env #查看环境变量export NAME=. #设置环境变量 例如export CC=gcc-4.4 ,可命令行中使用,也可加入.bashrcecho $name #查看环境

3、变量,例如: echo $CCps -aux -ef#查看进程top 实时显示各进程资源占用状况,类似windows任务管理器Kill -9 pid #根据pid号结束进程pgrep name #显示对应进程名的pid,类似命令pidof pkill name #根据进程名结束相应进程mount #查看文件系统cat /proc/devices # 查看设备passwd #修改密码 (要先取得root权限)date 查看帮助 date -s 19/10/2006 #修改日期 date -s 13:12:00 修改时间chkconfig #Ubuntu 中查看服务命令,要先安装才能使用ifcon

4、fig #查看网络配置ln -s /usr/src/linux-headers-2.6.38-8/include/ /usr/src/linux #创建符合链接dmesg #查看USB转串口设备echo test /dev/led/0 输出重定向,会带会产生换行符echo n test /dev/led/0 不带换行符 2程序安装与编译 apt-get install kmplayer #apt-get upgrade升级软件。 fedora中采用yum命令安装软件apt-get remove smplayer #卸载软件 upgrade 升级软件 #ubuntu可命令安装的软件cramfsp

5、rogs kmplayer smplayer samba等rpm -i rpm包名#rpm格式软件安装,参数 -e删除 -U 升级 -q查询 wget url #从网络现在安装gcc #编译器,例如gcc main.c -o main 详情看help.其他编译器如arm-linux-gcc用法一样arm-linux-objcopy -O binary main main.bin #生成.bin文件readelf -h exename #查看编译后的程序详情g+gdb #调试./file #执行,如./cofigure 常用于编译前配置文件,make clean #删除之前编译产生的文件,参数m

6、rproper 除进行clean操作外,还删除.config等文件 ,distclean 比前两者更彻底,还删除编辑备份文件,补丁等,使源代码树变为初始状态make menuconfig #fedora 下要先安装ncurses ncurses-develmake #编译,搜索makefile 内核编译make zImage 模块编译make modulesmake install 安装3文件管理: cd ./hb #进入目录 .当前目录 .返回上一目录chmod a+rxx * #为当前目录的所有文件所有用户添加rwx权限,实际中rwx三个权限可选择性添加ls #当前目录文件 ,参数-a 显

7、示所有文件(包括隐藏) -l 显示详细信息 file filename #查看文件类型rm file2 #删除file2rm -rf foldername #当提示目录非空时使用此命令mv hb haha #将hb更名为hahamv ./音乐/newfile ./视频 # 文件移动(也可移动文件夹)cp ./音乐/newfile ./视频 #文件复制(也可复制文件夹)mkdir hb #新疆目录 加参数-p建立有层次的目录,如:mkdir -p hb/work rmdir hb #删除目录diff file1 file2 #比较两个文件差异du #磁盘占用4压缩解压: tar cfvz out

8、.tar.gz file1 file2 # 将file1 file2压缩为out.tar.gztar xfvz file1.tar.gz -C / #前面一个参数file1为需要解压的文件,可以指定为其他目录 的文件,加参数 -C 后改变输出路径,不加默认当前目录tar xfvj file1.tar.bz2 解压5文本编辑gedit filename #有则打开,没有会自动创建vi filename vi编辑器使用: 1) 启动。 vi filename #打开文件 2)模式切换。 按insert进入插入模式 ,再按ESC键返回command模式 3)文件保存与退出。 命令模式下先输入冒号,然

9、后输命令,包括: w:保存不退出 q! : 不保存推出 wq! :保存退出 w filename :另存为filename wq! filename :另存为filename后退出6驱动相关modprobe name #加载模块 ,加载后可在proc/modules 下看到insmod name #加载模块,例如insmod hello.ko rmmod hello (前面一个命令加后缀名,后面一个不加)rmmod name #卸载模块mknod /dev/name c 254 0 #创建设备节点,名字,字符型设备,主设备号此设备号ls name -l #查看节点 ,创建节点后就可以才/dev

10、/下看到相应设备7U盘分区sudo fdisk /dev/sdb 二程序设计1汇编程序设计 #hello.s(AT&T格式).data #数据段声明 msg: .string hello,word! n #要输出的字符串 len =.-msg #字符串长度.text #代码段声明.global _start #指定入口函数 #在屏幕上显示一个字符串_start: movl $len,%edx #参赛三:字符串长度 movl $msg,%ecx #参赛二:要显示的字符串 movl $1,%ebx #参数一:文件描述符(stdout) movl $4,%eax #调用内核号(syswrite) i

11、nt $0x80 #调用内核功能 #退出程序 movl $0,%ebx #参数一:退出代码 movl $1,%eax #调用系统号(sys_exit) int $0x80 #调用内核功能保存后输入以下命令as -o hello.o hello.s #编译 ld -s -o hello hello.o #连接 ./hello #运行 ;hello.asm(intel格式) 要先安装nasmsection .data ;数据段声明 msg db hello,world!,0xA ;要输出的字符串 len equ $ - msg ;字符串长度 section .text ; 代码段声明 global

12、 _start ;指定入口函数 _start: ;在屏幕上显示一个字符串 mov edx,len ;参赛三:字符串长度 mov ecx,msg ;参赛二:要显示的字符串 mov ebx,1 ;参数一:文件描述符(stdout) mov eax,4 ;调用内核号(syswrite) int 0x80 ;调用内核功能 ;退出程序 mov ebx,0 ;参数一:退出代码 mov eax,1 ;调用系统号(sys_exit) int 0x80 ;调用内核功能 保存后输入:nasm -f elf hello.asm ld -s -o hello hello.o ./hello 2 shell编程 #!/

13、bin/bash #文件名为myshell.sh 首句不是注释,标示要使用的shell, echo $SHELL echo hello,my shell #显示字符串运行: ./myshell.sh3 perl编程语言 #!/usr/bin/perl #文件名为hello.pl,每个perl程序都以此开头 print hello,this is a perl program ; # 显示一个字符串输入 ./hello.pl #运行qemu虚拟机使用qemu -hda /home/hb/下载/linux-0.2.img #后面为镜像文件路径三小技巧1 vmwaretools安装说明:解压之后,运

14、行./vmware-install.pl途中如果提示Permission denied,修改相应文件权限,然后重新运行上次为执行完的命令直至结束以下为中途停止后要重新执行的命令./vmware-config-tools.pl/usr/bin/vmware-toolbox安装完后重启即可 2自动交叉编译工具cross-ng安装 #ubuntu下安装的软件较少,特别是libncurses5-dev、automakeapt-get install build-essential # 安装常用开发包apt-get install bison flex automake libtool texinfo

15、cvs curl #缺少texinfo时提示缺少makeinfoapt-get install gcj g+ subversion gawk libncurses5-dev zliblg-dev patch #缺少libncurses5-dev时提示缺少库ncurses wget http:/ymorin.is-a-geek.org/download/crosstool-ng/crosstool-ng-1.5.2.tar.bz2tar jxvf crosstool-ng-1.5.2.tar.bz2 从网上下载与解压./configure -localmakemake install./ct-n

16、g menuconfig 出现图形界面./ct-ng build 编译3 fedora中常用操作yum update #更新 yum -help #查看帮助,具体用法rpm -i filename 安装rpm格式的安装包1)安装ibus-pinyin输入法yum install ibus-pinyin ibus-setup #设置输入法2)访问共享:1选择连接到服务器 2选择windows共享 3输入服务器IP 4输入共享文件夹,例如f3)开启NFS lokkit 选择关闭防火墙 /etc/init.d/nfs start 启动nfs serviceconf 设置服务 4 cramfs文件解压

17、 简要说,就是把cramfs文件当成一个分区挂载到本地系统,然后就可以对它进行操作了。假设要解压的文件是LJD2440-II.cramfs (1) 将 LJD2440-II.cramfs 拷贝到任意目录下(2) 在该目录下建立两个文件:mkdir romsmkdir tmp(3)将LJD2440-II.cramfs 挂接到 roms 目录mount LJD2440-II.cramfs roms o loop(4)将 roms 目录下的内容压缩tar cvf 1.tar roms这样将在 roms 的上一级目录产生一个 1.tar 的包60(5) 将包解压到 tmp 目录下。umount rom

18、s ;卸载挂载cd. ;进入上一级目录mv 1.tar tmp ;cd tmp ;tar xvf 1.tar ;将打包的根文件系统里的内容解压rm 1.tar5 DNW操作命令*启动方式切换 *SD 01111100 *flash 01100100 *nand flash 分区信息见/arch/arm/plat-s3c24xx/common-smdk.c1 由于板子之前预装winCE,如果要烧写linux,要格式化flash 通过eboot启动后,安空格,选择A项即可2将u-boot-movi.bin烧至SD卡 3将u-boot-nand.bin烧写至nand flash 首先设置SD启动方式

19、 dnw c0008000 usbport-transmit nand erase 0 100000 nand write c0008000 0 1000004 设置bootargs,bootcmd首先更改启动方式为nand启动setenv bootargs root=/dev/mtdblock2 rootfstyle=cramfs console=tty0 console=ttySAC0,115200setenv bootcmd nand read 0xc0008000 0x100000 0x200000;bootm 0xc0008000saveenv5烧写zImage至nand flash

20、(写入kernel)重启dnw c0008000tansmit zImage (读到ram)nand erase 100000 200000 #起始地址为0x100000,大小0x200000字节即2Mnand write c0008000 100000 2000006 烧写roots_qt.cramfs至nand flash(写入根文件系统)重启dnw c0008000传输 rootfs_qt.cramfs nand erase 300000 3000000nand write c0008000 300000 3000000挂载SD卡:mount -t vfat /dev/mmcblk0p1

21、 /tmp/sd/ Vfat为文件类型,/dev/mmcblk 为要挂载的设备路径,/tmp/sd挂载的路径进入SD卡:cd /tmp/sd 卸载SD卡:umount /tmp/sd/内核启动相关文件:arch/arm/boot/compressed/head.s init/main.c-strart_kernel()6 串口传文件命令Windows超级终端,注意硬件控制流设为无,其他一般默认配置开发板PC sz filename 默认保存到超级终端的目录开发板/dev/ttyS0 会把单词test发送到ttyS0连接的设备上 11 Linux网络服务1)SSH 1 linux下安装sshd,

22、命令apt-get install openssh-server 2 windows下安装SSH secure shell,点快速连接,即可通过shell命令登陆到linux,还能ftp文件共享2)开启linux ftp服务 1输入命令apt-get install vsftpd安装ftp 2通过输入stop vsftpd停止服务,start vsftpd启动服务 3 相关配置文件在/etc/目录下3)Linux 下局域网共享Samba,输入apt-get install samba,右键目录,选择共享4)HTTP服务,输入命令apt-get install apache25)远程桌面连接,点

23、系统-首选项-远程桌面,勾选运行其他人查看和控制。然后再windows上运行VNC viewer,输入IP即可连接12根文件系统移植1 修改分区信息/arch/arm/plat-s3c24xx/common-smdk.c 2 配置内核,勾选相应操作系统支持进入File system,若要支持ext3,勾选EXt3 journalling file system support EXt3 extended attributes,若要支持carmfs,进入MIscellaneous filesystem,勾选cramfs3 修改启动参数可在内核配置时,进入boot项配置启动参数,也可在uboot中

24、执行如下命令: setenv bootargs root=/dev/mtdblock2 rootfstype=ext3 console=ttySAC0,115200 Saveenv根文件系统启动顺序/etc/inittab/etc/init.d/rc.S/usr/etc/rc.local (启动qtopia包含在内)其中rc.S中包含有path的定义,一些开机启动项,如:/etc/rc.d/init.d/mt startecho /dev/tty1echo Span Multi-touch x2 /dev/tty1echo Servicing. /dev/tty1sleep 1/etc/rc.

25、d/init.d/ 包含一些服务以leds为例说明:#!/bin/shbase=led-player# See how we were called.case $1 in #“$1表示第一参数,case 语句 start) #选项参数 /usr/bin/$base & #shell命令后加 & 表示后台执行 ; #该选项结束 stop) pid=/bin/pidof $base if -n $pid ; then #判段是否大于0 kill -9 $pid fi ;esac #case语句结束 exit 0四 驱动开发驱动调试信息函数Printk dev_info dev_warn dev_d

26、eg1 Gadget 驱动之U盘直接挂载开发板上的U盘,insmod g_file_storage.ko file=/dev/udisk stall=0 removable=1 1 建立img文件dd if=/dev/zero of=vfat.img bs=1M count=20losetup /dev/loop0 vfat.imgmkfs.vfat /dev/loop0mkdir vfat_mount_pointmount -t vfat /dev/loop0 vfat_mount_point2 配置内核选择/usb/gadget/filed-backstorage gadget(filed

27、-backstorage testing version可不选),make modules编译成模块3 加载模块insmod g_file_storage.ko file=/test/vfat.img stall=0 removable=1 字符设备注册函数int register_chrdev(unsigned int major,const char *name,struct file_operations *fops);注册后可在proc/devices下查看,若要登记到文件系统,调用devfs_register_chrdev,注册后被安装到/dev目录,同时在devfs中生成设备文件节点File结构体 下的private_data可指向任意数据类型2查看设备的命令调用cd /proccat /proc/tty/drivers cat slabinfocat devicescat interrupts查看所以设备的节点号cd /devls l五、常用结构体1. struct filestruct file结构体定义在include/linux/fs.h中定义。文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的 struct file。它由内核在打开

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1