linux之应用开发杂记(一)
1、Shell 当前目录 $(pwd)
2、Samba的配置
sudo apt-get install samba
Samba的配置文件是/etc/samba/smb.conf
[global]
security=share [linux_share]
path=/home/linux/share
public=yes sudo /etc/init.d/smbd restart
struct statfs diskInfo;
statfs("/", &diskInfo);
unsigned long long totalBlocks = diskInfo.f_bsize;
unsigned long long totalSize = totalBlocks * diskInfo.f_blocks;
size_t mbTotalsize = totalSize>>20;
unsigned long long freeDisk = diskInfo.f_bfree*totalBlocks;
size_t mbFreedisk = freeDisk>>20;
printf ("/ total=%dMB, free=%dMB\n", mbTotalsize, mbFreedisk);
4、ubuntu安装fcitx五笔拼音输入法
第一步:缷载ibus
sudo apt-get remove ibus
重启ubuntu 第二步:安装fcitx五笔拼音
sudo add-apt-repository ppa:wengxt/fcitx-nightly
sudo apt-get update
sudo apt-get install im-switch fcitx
sudo apt-get install fcitx-table-wbpy
sudo im-switch -s fcitx
im-switch -s fcitx
重启ubuntu
中文简繁转换:ctrl+shift+f
syntax on
Ctags 5.6支持自动补全
用 “Ctrl+t”可以退回原来的地方。即使用户使用了N次“Ctrl+]”查找了N个变量,按N次“Ctrl+t”也能回到最初打开的文件,它会按原路返 回 。
按“Ctrl + P”可自动补全
ctags –R
删除操作(命令模式使用)
x删除光标处的单个字符
dd删除光标所在行
dw删除当前字符到单词尾包括空格的所有字符
#x例如3x删除光标处向右的三个字符
#dd例如3dd从当前行开始向下删除三行文本
撤销操作
u命令取消最近一次的操作,可以使用多次来恢复原有的操作
U取消所有操作
Ctrl+R可以恢复对使用u命令的操作
复制操作
yy命令复制当前整行的内容到vi缓冲区
yw复制当前光标所在位置到单词尾字符的内容到vi缓存区,相当于复制一个单词
y$复制光标所在位置到行尾内容到缓存区
y^复制光标所在位置到行首内容到缓存区
#yy例如:5yy就是复制5行
#yw例如:2yw就是复制两个单词
如果要复制第m行到第n行之间的内容,可以在末行模式中输入m,ny例如:3,5y复制第三行到第五行内容到缓存区。
vi的查找和替换功能主要在末行模式完成:
至上而下的查找
/ 要查找的字符窜,其中/代表从光标所在位置起开始查找,例如:/ work
至下而上的查找
?要查找的字符窜 例如:/ work
替换
:s/old/new用new替换行中首次出现的old
: s/old/new/g 用new替换行中所有出现的old
:#,# s/old/new/g用new替换从第#行到第#行中出现的old
:% s/old/new/g用new替换整篇中出现的old
在GUI下:
(1)可按i进入插入模式
(2)使用鼠标拖动反选要粘贴的内容,按鼠标左键复制选定块到缓冲区
(3)然后将光标移到要粘贴处,按鼠标中键(两键鼠标可同时按左右键),粘贴缓冲区内容。
在纯文本终端下:
(1)选定文本块,使用v进入可视模式;移动光标键选定内容
(2)复制选定块到缓冲区,用y;复制整行,用yy
(3)剪切选定块到缓冲区,用d;剪切整行用dd
(4)粘贴缓冲区中的内容,用p
在同一编辑窗打开第二个文件,用:sp [filename]
在多个编辑文件之间切换,用Ctrl+w
"ayy 在多个文件中复制
x86情况下:ldd
例如:#ldd ffplay
addr2line 0x804888c -e backstrace_debug -f
6、mips和mipsel的区别
mips是big-endian的mips架构
mipsel是little-endian的mips架构。
两者之间的区别就是内存中存放的数据的字节顺序相反,也就是把低位放在低地址还是高地址。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1、mips指令
LI --> 指令用于将一个立即数存入一个通用寄存器
LA-->指令用于将一个地址(或者标签)存入一个通用寄存器
MOVE-->指令用于将一个寄存器的值存入另外一个通用寄存器
2、Linux 内核映像
Linux 内核映像文件有两种:一种是非压缩版本,叫Image;另一种是它的压缩版本,叫zImage,头部加了压缩代码。
3、清除svn
rm -rf .git
rm -rf .gitignore
4、CPU相关时钟信号
FCLK是CPU提供的时钟信号。
HCLK是为AHB总线提供的时钟信号, Advanced High-performance Bus,主要用于高速外设,比如内存控制器,中断控制器,LCD控制器, DMA 等。
PCLK是为APB总线提供的时钟信号,Advanced Peripherals Bus,主要用于低速外设,比如看门狗,UART控制器, IIS, I2C, SDI/MMC, GPIO,RTC and SPI等。
5、mmc引导内核命令
mmc read 0x81010000 0x2000 0x2000; bootm 0x81010000
0x2000 为内核的偏移地址,0x4000内核长度,0x81010000为拷贝内核到内存地址
内核制作时 mkinimage -s Ingenic -a 0x80040000 -d arch/mips/boot/zcompressed/zImage,如果压缩内核要注意解压缩的地址的覆盖问题。
6、PCM与WAV
mplayer -quiet -ao alsa:device=hw=0.0 test.wav
PCM是原始的音频数据,加上WAV文件头,就成为WAV文件。
PCM是直接采样量化后的数据,是保存原始数字音频的一种文件格式,WAV格式就是PCM加了一个文件头。
7、版本号修改规则
(1)主版本号:当功能模块有较大的变动,比如增加模块或是整体架构发生变化。此版本号由项目决定是否修改。
(2)次版本号:相对于主版本号而言,次版本号的升级对应的只是局部的变动,但该局部的变动造成程序和以前版本不能兼容,或者对该程序以前的协作关系产生了破坏,或者是功能上有大的改进或增强。此版本号由项目决定是否修改。
(3)修订版本号:一般是Bug的修复或是一些小的变动或是一些功能的扩充,要经常发布修订版,修复一个严重Bug即可发布一个修订版。此版本号由项目经理决定是否修改。
8、去掉UltraEdit打开文件提示“文件可能不是DOS格式”
高级 -> 配置 -> 文件处理 -> DOS/UNIX/MAC 处理 -> UNIX/MAC 文件检测/转换 中,选取禁用,确定。
9、Vi命令
Vi不自动换行:set nowrap,相反的命令:set wrap
Vi显示行号:
linux之应用开发杂记(一)的更多相关文章
- Linux下c开发 之 线程通信(转)
Linux下c开发 之 线程通信(转) 1.Linux“线程” 进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型.Linux是一种“多进程单线程”的操作系统.Linu ...
- 只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs
只有文本编辑器才是王道, 什么ide都是evil的浮云, 看看linus linux的内核开发工具vim emacs [ide is evil] (http://i.cnblogs.com/EditP ...
- 热烈庆祝华清远见2014嵌入式系统(Linux&Android)开发就业培训课程全面升级
近日,华清远见公开宣布:2014嵌入式系统 (Linux&Android)开发就业培训课程再次升级!据悉,华清远见如今已经持续10年,一直保持课程每年2次的更新的频率.华清远见的每 次课程更新 ...
- linux应用程序开发-文件编程-系统调用方式
在看韦东山视频linux驱动方面有一些吃力,究其原因,虽然接触过linux应用程序编程,但是没有深入去理解,相关函数用法不清楚,正好看到国嵌视频对这一方面讲的比较透彻, 所以把学习过程记录下来,也作为 ...
- 嵌入式Linux应用程序开发详解------(创建守护进程)
嵌入式Linux应用程序开发详解 华清远见 本文只是阅读文摘. 创建一个守护进程的步骤: 1.创建一个子进程,然后退出父进程: 2.在子进程中使用创建新会话---setsid(): 3.改变当前工作目 ...
- 将linux用在开发环境中
我是如何将linux用在开发环境中的 1.为什么不直接安装Linux在主机 一直想深入学习一下linux的使用,于是将家里的笔记本装了linux系统,但是要将自己的系统打造一个适合开发的环境确实是一件 ...
- 【转载】Visual Studio 2015 for Linux更好地支持Linux下的开发
原文:Visual Studio 2015 for Linux更好地支持Linux下的开发 英文原文:Targeting Linux Made Easier in Visual Studio 2015 ...
- Linux设备驱动开发环境的搭建(转)
经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助. 刚接触Linux设备驱动时,初学者往 ...
- ios程序开发杂记
ios程序开发杂记 一.程序构建 与一般的程序构建无太大区别,都是源文件编译链接这一套,通常是在mac上做交叉编译,也就是利用xcode里带的ios编译工具集去生成arm架构的ios程序(或是x86的 ...
随机推荐
- shell中的比较语句
Linux比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格.笔者就曾因为空格缺少或位置不对,而浪费好多宝贵的时间 ...
- Maven安装和配置,eclipse创建Maven项目
提示:使用Maven需要先安装jdk. 下载安装Maven 一.下载最新版的Maven,下载地址:http://maven.apache.org/download.cgi 二.将Maven下载到E:\ ...
- javascript版Ajax请求
什么是Ajax请求,Ajax也就是“Asynchronous JavaScript and XML”(异步JavaScript和XML),无刷新数据读取.能减少流量的消耗,也提高了浏览的流畅性,给用户 ...
- C# 和Jsonp的一个小demo 用jQuery与JSONP轻松解决跨域访问的问题
客服端: 在A项目下面 建立一个 JsonpClient.aspx页面,代码如下: <%@ Page Language="C#" AutoEventWireup=& ...
- Android调用天气预报的WebService简单例子
下面例子改自网上例子:http://express.ruanko.com/ruanko-express_34/technologyexchange5.html 不过网上这个例子有些没有说明,有些情况不 ...
- group_concat
分割字符串 group_concat(a.EvidencesID separator ',') as EvidencesID #在MySQL配置文件(my.ini)中默认无该配置项,使用默认值时,值为 ...
- servlet 项目
1.Servlet基础类,必须继承HttpServlet package com.fan; import java.io.IOException; import java.io.PrintWriter ...
- javascript console
javascript console console.log(object[, object, ...])在控制台输出一条消息.如果有多个参数,输出时会用空格隔开这些参数. 第一个参数可以是一个包含格 ...
- Windows PAE 寻址
PAE 就是物理地址扩展.我们常规的寻址方式是之前的将虚拟地址化为10 10 12的方式来寻址页目录,页表,页偏移,但是在开始PAE之后的寻址方式发生了改变,将32位的虚拟地址转化成 2 9 9 12 ...
- Struts2 Convention插件的使用(1)
刚刚查阅官方文档(convention-plugin.html)并学习了Struts2的Convention插件,文章这里只作为一个笔记,建议大家去看官方文档比较清晰和全面. 需要在项目添加这些包 c ...