linux入门开发常用小工具小命令

来源:互联网 发布:淘宝店铺怎么转让 编辑:程序博客网 时间:2024/06/16 00:41

(自己入门linux时的痕迹,勿笑我这些都不知道,当时真是啥都不知道,被window毒害至深啊 )

1、查找 

查找 find / -name 'kvm.h'
查找 find ./ -name *.h|xargs grep "add_wait_queue" -rn
查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print
2、打包

解压: tar -zxvf filename.tar.gz
压缩: tar -zcvf ..

tar jxvf XX.tar.bz2

如果tar不支持j选项,就用下面方式解压

bzip2 -d  XX.tar.bz2

tar -xvf  XX.tar.bz2

# tar -rf all.tar *.gif 
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。

# tar -uf all.tar logo.gif 
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar 
这条命令是列出all.tar包中所有文件,-t是列出文件的意思

# tar -xf all.tar 
这条命令是解出all.tar包中所有文件,-x是解开的意思

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/” from member names』那是关於绝对路径的特殊设定

3、查看OS信息

查看版本: cat /etc/rehat-release
查看位数、内核版本: uname -a
内核输出dmesg

查看驱动配置信息: zcat /proc/config.gz

4、不同host间拷贝

rsync  bb-sim-log.bb01::install/pkg/centos6u3/tarball.tgz . 

scp拷贝多个文件

scp user@remotehost:/dir/{doc1,doc2,doc3} .

5、编译内核时遇到熵不够

#cat /proc/sys/kernel/random/entropy_avail

如果太少,就用这个来生成,吧

#rngd -r /dev/urandom  -o /dev/random  -f -t 1

6、挂载相关

在固件开发过程中常常遇到这样的情况:为测试某个新功能,必需修改某个系统文件。而这个文件在只读文件系统上(总不能为一个小小的测试就重刷固件吧),或者是虽然文件可写,但是自己对这个改动没有把握,不愿意直接修改。这时候mount --bind就是你的好帮手。

假设我们要改的文件是/etc/hosts,可按下面的步骤操作:

1. 把新的hosts文件放在/tmp下。当然也可放在硬盘或U盘上。
2. mount --bind /tmp/hosts /etc/hosts

测试完成了执行 umount /etc/hosts 断开绑定。

如果我需要在/etc下面增加一个exports文件怎么办?原来没有这个文件,不能直接bind。我们有两个方法:

方法1:绑定整个/etc目录,绑定前先复制/etc


# cp -/etc /tmp
# mount 
--bind /tmp/etc /etc
此时的/etc目录是可写的,所做修改不会应用到原来的/etc目录,可以放心测试。

方法2:挂载ramfs到/etc,同样要先复制/etc

挂载ramfs
# mkdir 
/tmp/etc
# mount 
-t ramfs none /tmp/etc

复制
/etc,这里我们不能用cp -a,改用tar
# cd 
/etc
# tar cf 
- . |(cd /tmp/etc; tar xf -)
# cd 
/

覆盖
/etc
# mount 
--move /tmp/etc /etc
测试完了记着 umount /etc

挂载镜像命令
guestmount -a test.img -i --rw /mnt/
7、非常有用的 sed
sed的介绍 http://www.iteye.com/topic/587673 觉得这个还算不错。

8、VIM小命令

vsplit 
18,30s/temp_ptr/ptr/g  替换
剪切1-10行到20行
  1. :1,10 m 20 

9.十六进制

二进制转十六进制:xxd 文件名  文件名.xxd

然后就可以查看了,head 文件名.xxd 显示为十六进制数

10.gdb使用

gdb coredump core.8943
where
disassemble  pc
display
11、驱动相关
加载卸载: insmod /rmmod  *.ko
查看:  lsmod   
or  modinfo *.ko