北京那段时间,由于我们的编译环境是linux,而我以前也算玩过linux,所以一开始的编译工作是由我来负责的,虽然linux下的编译不是很难,但是正是由于那段时间的工作,让我意识到了linux的重要性,同时也激发了我对linux的兴趣,于是,在测试之余,我会到公司的内部网站上down一些linux方面的资料,研读以下。
shell编程是我首先要看的,因为编译工作有很多命令要输入,而且都很长,于是写一个脚本出来迫在眉睫(当然这个脚本其实很简单,不懂shell的人也可以写,呵呵)。
在谈shell编程之前,还是来升级一下我的linux命令,呵呵,以前了解的不多,而且很多都忘了,这里就写一些比较常用,但是又不是很好记的。
1、shell启动、关闭方法
Ctrl+Alt+F2~F6 启动
Ctrl+Alt+F7 关闭
2、查看当前目录内容
pwd
3、递归删除一个目录中的所有文件及目录本身
rm -r [目录名]
4、强制删除一个文件
rm -f 文件名
5、硬链接文件
ln 源文件名 目的文件名
该命令不能对目录文件使用,不能在不同的文件系统之间使用
6、软链接文件
ln -s 源文件或文件夹名 目标名
软链接也就是符号链接,可用此法创建文件的快捷方式
7、按名称查找文件
find / -name 文件名 -print
8、改变文件所有者
chown workman.workgroup /data/pub/upload
9、改变文件访问权限
chmod -R 755 /usr/local/LumaQQ
10、查看一个文件有多少行
wc -l filename
11、查看一个文件有多少字节
wc -c filename
12、改变身份。如果不指定用户名,则默认将用户身份换至root。从root身份切换到其他任何身份都不需要口令。
su [username]
13、添加用户
adduser -c "MyW" -d /home/workman -g root workman
14、设置用户口令
passwd workman
15、文件的打包与解包
解tar包
例:tar -xvzf gaim-0.77.tar.gz
tar -jxvf XXX.tar.bz2
生成tar包
例:tar cvf - /etc | gzip-9c > backup.tar.gz
生成rar包3
rar a test.rar file1.txt
rar a test.rar dir1
解rar包
rar x test.rar
解zip 包
unzip lumaqq_p3.zip
生成一个iso 文件
cp /dev/cdrom /home/gsh/TomJerry1.iso
16、挂载文件
iso:mout -t iso9660 -o loop,iocharset=cp936 /data/myarc.iso /mnt/iso
fat32:mount -o codepage=936,iocharset=cp936 /deb/hda7 /mnt/cdrom
ntfs:mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom
软盘:mount /dev/fd0 /mnt/floppy
usb:mount /dev/sda1 /mnt/cdrom
如果要开机自动挂载,可以修改fstab文件,加一行://win_ip/d$ /mnt/d smbfs default,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb2312 0 0
17、远程shell命令
ssh远程登录进行命令行操作:ssh -l workman 192.168.0.101
ssh远程登录进行文件的传送:sftp workman@192.168.0.101
18、磁盘信息的低级复制
把Linux分区引导扇区的信息提取出来生成一个文件bootsect.lnx,放到Windows的C 盘
dd if=/dev/hda2 of=bootsect.lnx bs=512 count=1
把bootdisk.img写到软盘上
dd if=bootdisk.img of=/dev/fd0
19、缩略符号
波浪线(~)代表家目录。如果现在位于/home/workman/MyOSS-Stuff/IOSN,那么只需执行“cd ~”就可以回到家目录/home/workman而不必输入“cd /home/workman”。一个点(.)代表当前目录,而“../” 代表上一级目录。
“../”可以嵌套使用,比如“../../”
20、输出重定向
输出重定向的操作符为>或>>,后面紧跟文件名
>:如果指定的文件不存在,将建立这一文件。如果指定的文件存在,则文件原有的内容将被覆盖
>>:把输出内容追加到原来文件里面
21、管道
将一个程序的标准输出写道一个文件中去,再将这个文件的内容作为另一个命令的标准输入,等效于通过临时文件将两个命令结合起来。这种情况很普遍,需要Linux系统提供一种功能:它不需要或不必使用临时文件,就能将两条命令结合在一起。这种功能就是管道。管道的操作符是一个竖杠“|”。管道是可以嵌套使用的,因此可以把多个命令结合在一起。接上例,如果执行下面的命令将直接返回/usr/bin 中的文件列表的行数,而不是列表的内容。
例如:ls /usr/bin | wc -l 直接返回/usr/bin中文件列表的行数,而不是列表内容
22、软件的安装及卸载
tar格式:
解压:tar -xvzf httpd-2.0.tar.gz
tar -xvjf httpd-2.0.tar.bz2
配置、编译和安装命令:
./configure
make
make install
(其中./configure和make是在含有源码的时候编译使用)
清理临时文件的命令如下:
make clean
卸载:
make uninstall
rpm格式:
安装命令:rpm -Uvh kdevelope-3.1.1.rmp
卸载:rpm -e kdevelope
安装多个相似的文件时可以用:rpm -Uvh Tmp*.rpm --nodeps --force
其中*为文件名通配符,参数nodeps表示在安装时不检查软件包之间的依赖关系(有依赖关系时,要确定依赖关系,逐个安装),force表示强制安装,即使系统中已经有了要安装的软件,也会重新安装一遍,覆盖掉原来的文件
23、查找文件
ls -l | grep 关键词
24、vi升级
:g/str1/s//str2/g 寻找str2,并全都替换成str1。注意,s后面是两个斜杠(/)。如果斜杠(/)本身就是str1或str2中的字符,则加前导反斜杠(\)区别。这一点对用vi编辑html文件的操作尤为有用。
要进行复制、粘贴、查找等操作,也必须在非“插入”模式下输入指令完成,这时输入的指令不带冒号。现列举如下:
y5y 包括光标所在行,往下数,复制5 行到内存。若只复制一行,可以不写数字。
y3w 复制光标后面的3 个英文单词。
p 小写,把剪贴板内容粘贴到光标之后。
P 大写,把剪贴板内容粘贴到光标之前。
d3d 包括光标所在行,往下数,剪切3行到内存。若只剪切一行,可以不写数字。接下若不进行粘贴操作,就相当于删除操作。
/str1 寻找字符串str1,str1就是要寻找的字符串。如果斜杠(/)本身就是str1中的字符,则加前导反斜杠(\)区别。

