目录和文件操作
查看当前目录相对于根目录的位置
pwd
查看当前目录内容
ls
以长格式查看当前目录内容。对应每个文件的条目将包括连接数目、所有者、大小、最后修改时间、权限等内容
ls -l
改变当前目录。目的目录名可用相对路径表示,也可以用绝对路径表示。
cd [目的目录名]
转移到上一级目录
cd ..
创建目录
mkdir [新目录名]
例:mkdir /var/ftp
删除空目录
rm [目录名]
例:rm /var/ftp
递归删除一个目录中的所有文件和该目录本身。
rm -r [目录名]
复制文件
cp [源文件名] [目标文件名]
重命名文件
mv [源文件名] [目标文件名]
例:mv /etc/rc.d/rc3.d/K50xinetd /etc/rc.d/rc3.d/S50xinetd
删除文件
rm [文件名]
不需确认地删除多个文件
rm -f [带通配符的文件名]
硬链接文件。不能对目录文件做硬链接,不能在不同的文件系统之间做硬链接。
ln [源文件名] [目标文件名]
例:mv /etc/rc.d/rc3.d/K50xinetd /etc/rc.d/rc3.d/S50xinetd
软链接文件。也就是符号链接。可用此法创建文件的快捷方式。
ln -s [源文件或文件夹名] [目标名]
按文件名查找文件。
find / -name nametofind ......
1. gcc的__attribute__编绎属性
要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或定义的函数或数据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noreturn表示没有返回值、pure表明函数除返回值外,不会通过其它(如全局变量、指针)对函数外部产生任何影响。但这里我们比较感兴趣的是对代码段起作用子项section。
__attribute__的section子项的使用格式为:
__attribute__((section("section_name")))
其作用是将作用的函数或数据放入指定名为"section_name"输入段。
这里还要注意一下两个概念:输入段和输出段
输入段和输出段是相对于要生成最终的elf或binary时的Link过程说的,Link过程的输入大都是由源代码编绎生成的目标文件.o,那么这些.o文件中包含的段相对link过程来说就是输入段,而Link的输出一般是可执行文件elf或库等,这些输出文件中也包含有段,这些输出文件中的段就叫做输出段。输入段和输出段本来没有什么必然的联系,是互相独立,只是在Link过程中,Link程序会根据一定的规则(这些规则其实来源于Link Script),将不同的输入段重新组合到不 ......
在某些特殊的情况下,如因为网络或者X配置的关系无法连接到X server或者主机上没有X,就可以使用静默安装的方式安装数据库,同样如果需要大规模部署,则静默安装将会大大减轻DBA的重复劳动力,而且静默安装不需要X,从安装效率
在某些特殊的情况下,如因为网络或者X配置的关系无法连接到X server或者主机上没有X,就可以使用静默安装的方式安装数据库,同样如果需要大规模部署,则静默安装将会大大减轻DBA的重复劳动力,而且静默安装不需要X,从安装效率及资源占用上都比图形化OUI的方式有优势。
1、静默安装Oracle软件
Oracle的静默安装需要用到一个response文件,这个文件可以通过事先使用OUI录制:
执行以下命令,然后在OUI中根据提示执行安装数据库软件的操作
$./runInstaller –record –destinationFile /tmp/install_database.rsp 注意:
(1)录制过程中选择只安装数据库软件不创建数据库
(2)当安装界面到达最后一步时选择cancel
录制成功后,就可以使用产生的响应文件回放整个安装过程了:
(1)执行以下命令静默安装Oracle数据库软件
$./runInstaller –silent –responseFile /tmp/install_database.rsp (2)安装完成后 ......
在某些特殊的情况下,如因为网络或者X配置的关系无法连接到X server或者主机上没有X,就可以使用静默安装的方式安装数据库,同样如果需要大规模部署,则静默安装将会大大减轻DBA的重复劳动力,而且静默安装不需要X,从安装效率
在某些特殊的情况下,如因为网络或者X配置的关系无法连接到X server或者主机上没有X,就可以使用静默安装的方式安装数据库,同样如果需要大规模部署,则静默安装将会大大减轻DBA的重复劳动力,而且静默安装不需要X,从安装效率及资源占用上都比图形化OUI的方式有优势。
1、静默安装Oracle软件
Oracle的静默安装需要用到一个response文件,这个文件可以通过事先使用OUI录制:
执行以下命令,然后在OUI中根据提示执行安装数据库软件的操作
$./runInstaller –record –destinationFile /tmp/install_database.rsp 注意:
(1)录制过程中选择只安装数据库软件不创建数据库
(2)当安装界面到达最后一步时选择cancel
录制成功后,就可以使用产生的响应文件回放整个安装过程了:
(1)执行以下命令静默安装Oracle数据库软件
$./runInstaller –silent –responseFile /tmp/install_database.rsp (2)安装完成后 ......
在VFS的支持下,用户态进程读写任何类型的文件系统都可以使用read和write着两个系统调用,但是在linux内核中没有这样的系统调用我们如何操作文件呢?我们知道read和write在进入内核态之后,实际执行的是sys_read和sys_write,但是查看内核源代码,发现这些操作文件的函数都没有导出(使用EXPORT_SYMBOL导出),也就是说在内核模块中是不能使用的,那如何是好?
通过查看sys_open的源码我们发现,其主要使用了do_filp_open()函数,该函数在fs/namei.c中,而在改文件中,filp_open函数也是调用了do_filp_open函数,并且接口和sys_open函数极为相似,调用参数也和sys_open一样,并且使用EXPORT_SYMBOL导出了,所以我们猜想该函数可以打开文件,功能和open一样。使用同样的查找方法,我们找出了一组在内核中操作文件的函数,如下:
功能
函数原型
打开文件
struct file *filp_open(const char *filename, int flags, int mode)
读取文件
ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)
写文件
ssize_t vfs_write(struct file *file, const char ......
linux启动流程:
系统预处理程序->GRUB (此阶段可以理解为bootloader阶段)
->kernel (此阶段为kernel)
->initrd->init启动->inittab->rc.sysinit->functions(PATH)->modules->rcX.d(读配置文件)
1.->字符模式->tty->bash
2.->图形模式->进入X Window->gdm->xorg->gdm login ->GNOMESession
此日志只作本人笔记备份,如有错误,恳请指教。 ......
近来需要写一个在LINUX下的图形文件处理程序,最开始只支持BMP格式,后来要求也处理JPG。急得抓头啊,以前可没认真研究过JPG…………
在网上找到了libjpeg,可以用这个库实现JPG图片的各种操作:
下载:http://freeware.sgi.com/source/libjpeg/libjpeg-6b.tar.gz
下载后解压安装:
tar -zxvf libjpeg-6b.tar.gz
cd libjpeg-6b
./configure
make
make install
将jpg格式转换成bmp可以使用这样的命令行:
djpeg -bmp -outfile 22.bmp 11.jpg
......