常用 Linux 命令

331 阅读6分钟
  • grep
grep "test"  ./ -rn

在当前目录及其子目录中递归搜索包含 "test" 字符串的文件,并显示匹配的行号和内容,

image.png

  • logcat
logcat -b all |grep test

image.png

  • 查看某个进程或线程的 cpu 占用
top -d  5 -H -p 30759 |grep cae

image.png

image.png

  • 文件权限解读

-rwxr-xr-x 是 Linux 或 Unix 系统中文件权限的一种表示方式。它描述了文件的所有者、所属组和其他用户对文件的访问权限

image.png

  1. -rwxr-xr-x 的具体含义 -:这是一个普通文件。 rwx:文件所有者有读、写、执行权限。 r-x:文件所属组有读和执行权限,但没有写权限。 r-x:其他用户有读和执行权限,但没有写权限。
  • open . 打开根目录

  • 拷贝 sdcard 文件到电脑

1、不能在 shell 环境中执行 pull 命令,会报 inaccessible or not found 2、对于 pull 包含空格的文件路径,需要将需要拷贝的文件加上" "号

adb pull "/sdcard/acoustic/2024-12-24 15-38-39/original.wav"   F:\document   //ok
adb pull /sdcard/acoustic/2024-12-24 15-38-39/original.wav     F:\document   //error

  • 显示某个文件夹下的文件
ls -la |grep 2024
  • 从文件夹中循环查找某个字符串
grep  "100006" . -r   

. : 表示当前目录。`grep`会从该目录开始搜索。
-r: 递归选项(`--recursive`的简写),指示 `grep`递归搜索当前目录及其所有子目录下的文件内容。
  • 查看某个文件的大小 修改日期等信息
 ls -la test.txt
  • 修改目录权限
chmod 777  /data/data/com.tcl.pkgName/lib/*.so
chown system:system /data/data/com.tcl.walleve/lib/*.so

将当前目录下所有以 `.so` 结尾的文件的用户和群组所有权更改为 `system`

-   `chown`:命令本身,用于改变文件的用户和群组。
-   `system:system`:指定新的所有者和群组。在这个例子中,文件的新所有者和群组都被设置为 `system`。冒号 `:` 之前的部分是用户(OWNER),之后的(如果有的话)是群组(GROUP)。如果群组部分省略,那么文件的群组将被设置为与用户相同的名称。
-   `*.so`:这是一个通配符,表示当前目录下所有以 `.so` 结尾的文件。`.so` 文件通常是共享库文件,在 Linux 系统中,它们是动态链接库(Dynamic Link Library)。
  • 重命名文件

mv是最常用的重命名命令,也可用于移动文件。

`mv oldfile.txt newfile.txt`:  将 `oldfile.txt`重命名为 `newfile.txt`:
`mv oldfile.txt dir/newfile.txt`: 移动并重命名(将文件移动到 `dir/`并改名):
  • 删除指定路径文件的文件或者文件夹;
rm test.txt  :删除文件  加上 -f 强制删除(可选)
rm -r <folder>:  `-r`:递归删除目录及其子内容。
  • 移动文件到新的目录
mv <old-folder> <new-folder>
  • adb shell mkdir path/foldelname

作用:新建文件夹; adb shell chmod777 设置文件的权限; adb shell cat <folder/file> 查看文件内容;

  • 在u 盘新建目录
mkdir /mnt/usb/9998-4EC0/databases 

  • sdcard 拷贝文件到某个应用目录下
cd 到 sdcard ,然后 
cp -r wicket.json  /data/data/com.xxx.xxx/json/

  • 拷贝文件到 u 盘

cp-r databases/*   /mnt/usb/9998-4EC0/databases/ 
sync
把 databases 目录下的所有文件拷贝到 u盘的 databases 目录,记得需要执行 sync 同步一下
    
cp -r /path/to/source  /path/to/destination    (-r 选项告诉 cp 命令递归地复制目录及其所有子目录和文件。)

  • 在u 盘新建目录

mkdir /mnt/usb/9998-4EC0/databases 
  • sdcard 拷贝文件到某个应用目录下
cd 到 sdcard ,然后 
cp -r wicket.json  /data/data/com.xxx.xxx/json/
  • 查看 top 命令

top -d 1

  • 查看 带 walleve 的进程

ps -A|grep walleve

  • 查看某个进程的所有日志

logcat --pid 10245

  • 杀进程

top -9 pId

killall com.tcl.walleve

  • 连续执行多个指令

logcat -c; killall com.tcl.walleve; logcat |grep -Ei "yunyun"

  • 查找指定进程 *> ps -A |grep -Ei "xiri"

  • 修改文件权限

chmod 777 *
chmod 755 * 
  • 查看文件权限

ls -l

  • 新建文件

touch readme.txt

  • 打开文件

open readme.txt 或者 open e readme.txt

  • cat readme.txt

查看文件内容

  • 创建一个包含文本内容的文件
    echo "Hello, World!" > newfile.txt
  • 用vi命令打开文件

touch .bash_profile 创建文件

  • vim .bash_profile
  • 输入i ,切换为insert模式
  • 编辑文本
  • 按「ESC」键,切换为命令行模式
  • 输入 :wq 保存结果, :q! 退出(不保存)
  • 使修改的文件立即生效

source readme.txt

  • cd 切换到用户主目录

  • 获取md5值

md5 /system/app/SDKLongRrs.apk

linux 命令

  • 拷贝文件

  • 删除文件

    rm  test.txt 
    rm -f test.txt
    rm -rf CMakeFiles CMakeCache.txt cmake_install.cmake Makefile main

  • 删除空文件夹

rmdir foldname

  • 删除非空文件夹

rm -rf foldname -r 选项表示递归地删除目录及其子目录,-f 选项表示强制删除,不进行确认提示。请注意,rm 命令删除的操作也是不可恢复的,请谨慎使用。

  • 删除某个文件夹下的所有文件
    rm -f *
    rm -rf prefix_*  //删除以某个前缀开头的所有文件和文件夹
  • 终端执行 ./gradlew build -s 提示没有权限
chmod +x gradlew
再执行  ./gradlew build -s  就可以了
  • 查看文件
ls -la /sdcard
  • 拷贝文件
cp -r /sdcard/iflytek_asr.wav  /mnt/media_rw/1FD1-8B6B/
sync
    
cp v1 v2 -r //将 v1 目录的所有文件拷贝到 v2 目录    
    
  
cp test.txt ../  //将 test.txt  拷贝到上级目录
  • 移动文件
  mv  walleve.apk  /sdcard
  mv header.h  include/   
  • 创建目录

mkdir /sdcard/test

  • 查看 top 进程

top -d 1

image.png

 top: 这是命令本身,用于启动 top 工具。    
 -d 1: 这个选项设置 top 的刷新间隔时间为 1 秒。-d 是 "delay" 的缩写,后面的数字表示刷新间隔的秒数。在这个例子中,top 会每 1 秒刷新一次显示的信息。   
 

可查看 pid 进程号、cpu 、内存等信息

  • 查看某个进程的详细信息
top -d 1 -p 21383 -H
    
   
 top: 这是命令本身,用于启动 top 工具。    
 -d 1: 这个选项设置 top 的刷新间隔时间为 1 秒。-d 是 "delay" 的缩写,后面的数字表示刷新间隔的秒数。在这个例子中,top 会每 1 秒刷新一次显示的信息。   
    
    -p 21383: 这个选项指定要监控的进程 ID(PID)。-p 是 "process" 的缩写,后面的数字 21383 是你要监控的进程的 PID。top 只会显示这个特定进程的信息,而不是所有进程。

-H: 这个选项告诉 top 显示指定进程的所有线程信息。-H 是 "threads" 的缩写。启用这个选项后,top 会显示该进程的每个线程的详细信息,而不是只显示进程的总体信息。

  • 查看某个进程属于哪个应用

which walleve

  • mount

mount -o rw,remount

  • 移动文件

rm test.txt /sdcard/backup

  • 修改权限

mount -o rw,remount 先 mount 再 remount

  • 卸载 预装 apk

  • cd 到某个目录

cd data/data/com.tcl.walleve/lib

  • 查看某个包名所在的安装目录

pm path com.iflytek.xiri