[linux小水滴]linux常用命令


1 某路径下搜索:名称包含某字符串的所有文件

#当前路径下搜索文件**名称**包含有某字符串的文件
$ls *tag*

举例:

didi@ubuntu:/deta/Desktop/周记$ ls *笔记*
42周笔记.txt   44周笔记~      50周小笔记.txt    第40周小笔记.txt
42周笔记.txt~  45周笔记.txt   52周笔记.txt      第40周小笔记.txt~
44周笔记       46周笔记.txt~  git学习笔记.txt~
#在当前路径下所有文件中搜索,包含下一级路径
$find . -name <文件名称(包含扩展名)>

举例:

2 adb shell连接指定设备

假设这里有两台设备,怎么adb到指定设备呢?

#首先查看设备号
$adb devices
List of devices attached
0123456789AB    device
109876543210    device
#连接adb shell
$adb -s 109876543210 shell

同样的,adb pull和adb push也可以

$adb -s 109876543210 push test.apk /sdcard/test
$adb -s 109876543210 pull /sdcard/test/test.apk

安装apk也一样

$adb -s 109876543210 install xxx.apk
#安装成功会显示Success
Success
#注意:如果apk安装包的名称中有空格,需要加右斜线。
#比如:安装包全名为 subway surf.apk,相应安装命令如下:
$adb -s 109876543210 install subway\ surf.apk

3 进程相关的命令

$ps -aux #查看系统所有进程
$pstree #查看进程树,所有进程的树状图,清晰地表明进程间的关系

4 打开pr_debug

pr_info()并不是写上去就能打印出来的。默认loglevel为7,在kernel/printk/printk.c中有定义‘

#define DEFAULT_CONSOLE_LOGLEVEL 7 //loglevel < 7 的log可以打印出来

而printk(KERN_DEBUG…)的级别是7,loglevel设为7是打不出来的,需要改为8。这样很麻烦是吧,可以通过printk的sysfs节点来修改:

$cat /proc/sys/kernel/printk
7 4 1 7 
$echo 8 > /proc/sys/kernel/printk
$cat /proc/sys/kernel/printk
8 4 1 7

5 kernel dynamic debug

kernel动态调试提供一个debugfs接口,它可以用来获取已完成的调试信息列表。
比如你想打印xxx1.c文件的pr_debug信息,在系统运行的时候执行如下语句:

#echo 'file xxx1.c +p' > <debugfs>/dynamic_debug/control 

如果是两个文件,则如下:

#echo 'file xxx1.c +p' > <debugfs>/dynamic_debug/control;\
> echo 'file xxx2.c +p' > <debugfs>/dynamic_debug/control

6 查看进程状态命令

$ps -ux

7 查看系统信息

$cat /proc/version #查看正在运行的系统的内核版本
$cat /proc/cpuinfo #查看cpu信息
$uname -a #查看电脑及操作系统的相关信息

8 查看系统内存信息

方法一:

$sudo dmidecode | grep -A16 "Memory Device"

方法二:

$sudo lshw -html > ~/sdcard/lshw.html 

参考链接

9 查看系统的各种时钟信息

$cat /sys/kernel/debug/clk/clk_summary 

参考链接

10 busybox find查找某文件或文件夹

$ busybox find -name <filename>
#举例:注意filename是全识别的,输错一个字母就搜不到了
$ busybox find -name test0
./周记/test0
./test0

11 查看当前工作目录路径

$ pwd
#举例
~/source_code/r_code$ pwd
/home/username/source_code/r_code

12 各种删除命令

删除文件夹:

$ rm -rf <文件夹名称>

一次性删除某文件夹下的所有文件:

#跳转到该文件夹
$ rm -f *

13 查看磁盘剩余空间

$ df -hl #查看磁盘剩余空间

14 grep用法汇总

14.1查找包含某字符串的所有文件

在看log的时候如果log量非常大,包含很多文件,而我们想搜索的关键字只包含在其中少数几个文件中,这时候怎么去找呢?强大的grep派上用场了:只需要一句

grep -rn "string" * # *表示对当前文件夹下的所有文件,同时列出字符串所在行

举例:

didin@ubuntu: ~/Downloads/log$ grep -rn "stash" *
43周笔记:111:	3.$git stash   //保存当前的工作现场
43周笔记:113:	5.$git stash pop  //还原本地修改
43周笔记~:111:	3.$git stash   //保存当前的工作现场
43周笔记~:113:	5.$git stash pop  //还原本地修改

参考链接

14.2 查找某文件中包含某字符串的所有行

grep -E "str" file_name
grep -E "str1|str2" file_name

15 性能问题常用命令

15.1 查询进程的内存信息

adb shell后输入procrank

#procrank
  PID       Vss      Rss      Pss      Uss     Swap    PSwap    USwap    ZSwap  cmdline
 4364  8578204K  479172K  182546K  110820K       0K       0K       0K       0K  system_server
 4684  6416764K  264868K   84342K   63000K       0K       0K       0K       0K  com.android.systemui
......

15.2 查看进程cpu利用率

top -m 5 #查看cpu利用率前5的进程
Tasks: 407 total,   1 running, 403 sleeping,   0 stopped,   3 zombie
  Mem:      3.6G total,      3.2G used,      411M free,      3.5M buffers
 Swap:      2.2G total,       57M used,      2.1G free,      2.3G cached
800%cpu   7%user   0%nice   4%sys 786%idle   0%iow   4%irq   0%sirq   0%host
  PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS                                                                                                     
14268 root         20   0  35M 3.8M 3.1M R 10.7   0.1   0:00.04 top -m 10
 3792 system       20   0 173M 4.0M 2.7M S  7.1   0.1 206:46.37 slogmodem
13862 root         20   0    0    0    0 I  3.5   0.0   0:03.44 [kworker/u16:5]
14267 system       20   0  35M 3.0M 2.4M S  0.0   0.0   0:00.00 sleep 60s
14242 system       20   0  35M 3.0M 2.4M S  0.0   0.0   0:00.00 sleep 120s

16 查看图形界面下文件夹的路径

快捷键ctrl+L,使得文件夹窗口中的文件路径可以编辑、复制、粘贴

17 查看当前目录空间大小和分配情况

1.查看当前目录空间大小

mobilphone:/data # du -sh                                                               
4.5G	.

2.查看当前目录各个文件的大小

mobilphone:/data # du -h -d 1 .                                                       
27K	./unencrypted
3.5K	./bootchart
18K	./apex
3.5K	./app-staging
8.5M	./misc
14K	./local
3.5K	./preloads
1.7M	./vendor
11K	./vendor_ce
14K	./vendor_de
49M	./data
....
3.3G	./ylog
3.5K	./minidump
3.5K	./server_configurable_flags
3.5K	./corefile
150M	./per_boot
4.5G	.

18 查看所有加载的模块ko

lsmod |grep <ko名称>

19 ubuntu系统日志清理

sudo echo "" > system.journal
或
sudo rm -rf /var/log/*

[SP]shell脚本相关

1 循环读取某节点信息

这是一条简短的shell语句,方便在一些测试场景下循环读取节点信息,观察节点信息变化情况。

while true; do cat ./<节点名称>; echo; sleep 1; done
#比如:读取cpu cluster0 的当前频率
abc:/sys/devices/system/cpu/cpufreq/policy0 $ cat scaling_cur_freq                                                      
768000
abc:/sys/devices/system/cpu/cpufreq/policy0 $ while true; do cat ./scaling_cur_freq; echo; sleep 1; done                     
768000

768000

768000

768000

1200000

1200000

1200000

768000

768000

^C
abc:/sys/devices/system/cpu/cpufreq/policy0 $ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是微信小程序底部导航中间水滴凹槽的实现方法: 1. 在app.json文件中设置tabBar的样式,将中间按钮的位置留出来,例如: ```json "tabBar": { "color": "#999999", "selectedColor": "#1296db", "backgroundColor": "#ffffff", "borderStyle": "black", "list": [ { "pagePath": "pages/index/index", "text": "首页", "iconPath": "images/tabbar/home.png", "selectedIconPath": "images/tabbar/home_active.png" }, { "pagePath": "pages/mine/mine", "text": "我的", "iconPath": "images/tabbar/mine.png", "selectedIconPath": "images/tabbar/mine_active.png" }, { "pagePath": "pages/center/center", "text": "", "iconPath": "images/tabbar/center.png", "selectedIconPath": "images/tabbar/center_active.png" }, { "pagePath": "pages/cart/cart", "text": "购物车", "iconPath": "images/tabbar/cart.png", "selectedIconPath": "images/tabbar/cart_active.png" }, { "pagePath": "pages/category/category", "text": "分类", "iconPath": "images/tabbar/category.png", "selectedIconPath": "images/tabbar/category_active.png" } ] } ``` 2. 在TabBar组件中添加中间按钮的样式,例如: ```css .tabbar-center { position: fixed; left: 50%; bottom: 0; transform: translateX(-50%); z-index: 999; width: 60rpx; height: 60rpx; border-radius: 50%; background-color: #1296db; box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.15); } ``` 3. 在TabBar组件中添加中间按钮的点击事件,例如: ```javascript methods: { onCenterClick() { wx.navigateTo({ url: '/pages/center/center' }) } } ``` 4. 在TabBar组件中添加中间按钮的图片和文字,例如: ```html <view class="tabbar-center" @tap="onCenterClick"> <image src="/static/images/tabbar/center.png" class="tabbar-center-icon"></image> <text class="tabbar-center-text">中心</text> </view> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值