Linux常用命令

来源:互联网 发布:hammer.js中文文档 编辑:程序博客网 时间:2024/06/03 18:10

1、替换当前目录下所有字符串

在Android的开发过程中,要将Android移植到自己的平台并将所有关于Android.mk字符串重命名为Mydroid.mk。

#sed -i s/"Android.mk"/"Mydroid.mk"/g `grep -rl "Android.mk" ./`

首先grep当前目录下包含”Android.mk”字符串的文件,然后输入给sed进行替换。注意包住grep命令的是`(TAB键上面的字符),而不是’(单引号)。
可在grep命令后面加上–exclude_dir=”.git”排除对.git/ 目录下文件的替换。


2、查看某个xxx命令的帮助

#man xxx

3、rename批量文件操作

将Android项目中所有文件夹下名字为Androd.mk的文件重命名为Mydroid.mk

#find ./ -name "Android.mk" | xargs rename "s/Android.mk/Mydroid.mk/g"

4、scp 局域网内拷贝

假设一份Android的source code在A(192.168.1.2)电脑上(~/work/A_Android),要将其拷贝到同一局域网内的B电脑(192.168.1.3 用户名为:xxx)的目录(~/work/B_Android)下:

#scp -r ~/work/A_Android/ xxx@192.168.1.3:~/work/B_Android

5、查看某个目录的占用空间

#du -sh ./

6、软连接

#ln -s entity_file virtual_file

其中entity_file为真是存在的文件,virtual_file为软连接生成的文件。


7、环境变量

#export MYVAR=true          // 添加环境变量 MYVAR#env | grep MYVAR             // 在环境变量中查找 MYVAR#unset MYVAR               // 删除环境变量 MYVAR

8、获取当前CPU温度

#cat /sys/class/thermal/thermal_zone0/temp

获取到的值除以1000就是当前CPU的摄氏温度了。


9、挂载只读分区

#mount -o remount rw /system

-o : 指定加载文件系统的选项;
remount: 为 -o 的选项,重新加载设备,常用于改变设备的状态;
rw: 为 -o 的选项,以可读写模式加载;
/system: 重新将挂载的只读的/system 分区挂载为可读写。


10、挂载U盘

#mount -t vfat /dev/block/sda1 /mnt/udisk1

其中sda1是根据u盘识别过来的,后面的数字有可能会有差异。


11、复制粘贴

在Linux shell窗口下”ctrl + shift + c” 和 ”ctrl + shift + v” 为复制粘贴。
shift + insert 可以进行粘贴。


12、编译过程中的信息输出到文件

#make 2>&1 | tee build.log

13、串口工具minicom的使用

#sudo minicom -s

启动minicom的配置选项,通过字母选择配置选项。启动minicom之后可以先按 ctrl+a 然后再按 z 可以出现帮助界面,之后选择对应字母可以配置minicom的功能。选择”Serial port setup”并做如下配置:
这里写图片描述

如果说minicom只输入打印信息但是键盘无法输入,此时是由于打开硬件流控,设置”Hardware Flow Control” 为 NO 即可。

minicom保存log
首先打开minicom,然后按一下ctrl + a,再按z键,会出现下面这个界面:
这里写图片描述
看到Capture on/off这项了吗,按下L键,命名要保存的log名称即可。


14、! 的神奇用法

http://www.linuxidc.com/Linux/2015-05/117774.htm
! 是可以指定执行前面执行过的第几条命令,通常跟 history命令搭配。比如说经常会出现这种情况,有个命令 xxx,此时你去执行它,比如

#xxx argv1 ~/work/other

这样会提示你没有权限执行 xxx 命令,正常你会重新做如下处理:

#sudo xxx argv1 ~/work/other

但是此时我们可以使用 !! 来替代上次的命令,可以使用

#sudo !!

你可以运行 !-1、!-2 或者 !-7 等命令来执行你记录序列中的倒数第一条命令、倒数第二条命令已经倒数第七条等等


15、查找命令

可以使用 ctrl + r,然后键入你要查找的关键字符串,此时会将已经执行过的命令自动补全。

(reverse-i-search)`make ker': make kernelimage

其中 make ker 是我敲入的,而 make kernelimage 是查找的结果,回车就可以执行 make kernelimage 的操作。


16、grep 忽略某个目录

#grep -rn “xxx” -R --exclude-dir=Dir_Name

17、while true

假设我们要持续cat 某一个GPIO的状态,不用一直执行如下的命令:

#cat /sys/class/gpio/gpio88/value

我们可以在 shell 下执行 while true 命令来连续执行某个命令,比如说:

#while true> do> cat /sys/class/gpio/gpio88/value> sleep 2> done

其中 do 和 done 中间为要循环执行的命令,sleep 2表示休眠2s。


18、反汇编

使用 objdump工具反汇编生成的vmlinux文件,将反汇编的结果输出给vmlinux.log

#../prebuilts/gcc/linux-x86/arm/arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objdump -d -l -f -g -S vmlinux > vmlinux.log

19、grep两个字符串

Victor@Victor-HP:/$cat /proc/1/statusName:   initState:  S (sleeping)Tgid:   1Ngid:   0Pid:    1PPid:   0TracerPid:  0Uid:    0   0   0   0Gid:    0   0   0   0FDSize: 64Groups: NStgid: 1NSpid:  1NSpgid: 1NSsid:  1VmPeak:    33900 kBVmSize:    33860 kBVmLck:         0 kBVmPin:         0 kBVmHWM:      4296 kBVmRSS:      3496 kBVmData:     1636 kBVmStk:       136 kBVmExe:       248 kBVmLib:      3068 kBVmPTE:        88 kBVmPMD:        12 kBVmSwap:      272 kBThreads:    1SigQ:   0/15244SigPnd: 0000000000000000ShdPnd: 0000000000000000SigBlk: 0000000000000000SigIgn: 0000000000001000SigCgt: 00000001a0016623CapInh: 0000000000000000CapPrm: 0000003fffffffffCapEff: 0000003fffffffffCapBnd: 0000003fffffffffSeccomp:    0Cpus_allowed:   ffCpus_allowed_list:  0-7Mems_allowed:   00000000,00000001Mems_allowed_list:  0voluntary_ctxt_switches:    4450nonvoluntary_ctxt_switches: 2503

比如说我只想要VmSizeVmRSS的内容,可以使用如下命令:

#cat /proc/1/status | grep -E 'VmSize|VmRSS'
Victor@Victor-HP:/$cat /proc/1/status | grep -E 'VmSize|VmRSS'VmSize:    33860 kBVmRSS:      3496 kB

1 0
原创粉丝点击