linux命令

198 阅读3分钟

1.搜索

1. grep
  1. 在指定目录下,搜索包含指定字符串的文件

    • 在product目录下面搜索
      • grep -s AAA ./product/*
    • 在当前目录下面搜索
      • grep -s AAA ./*
  2. 在指定目录及其子目录下,搜索包含指定字符串的文件

    • 在product目录及其子目录下搜索
      • grep -R AAA ./product/*
    • 在当前目录及其子目录下搜索
      • grep -R AAA ./*
  3. 搜索结果仅显示文件名 l

    • grep -Rl AAA ./*
  4. 大小写不敏感 i .以下两条是同样效果,大小写不敏感.

    • grep -Ri AAA ./*
    • grep -Ri aaa ./*
  5. 显示结果包含要搜索的字符串在文件中的行号

    • grep -Rni AAA ./*
  6. 在指定文件中搜索指定内容,并显示行号 : grep -n 指定内容 指定文件

    • grep -Rni devices 指定目录 : 在指定目录下递归搜索所有文件内容包含devices的文件并显示对应行号.
    XXX:~/testDir$ grep -n devices 1.txt 
    17:./qcom/cts/hostsidetests/shortcuts/deviceside/backup/launcher1
    18:./qcom/cts/hostsidetests/shortcuts/deviceside/backup/launcher1/src/android/content/pm/cts/shortcut/backup/launcher1
    19:./qcom/cts/hostsidetests/shortcuts/deviceside/backup/launcher2
    20:./qcom/cts/hostsidetests/shortcuts/deviceside/backup/launcher2/src/android/content/pm/cts/shortcut/backup/launcher2
    21:./qcom/cts/hostsidetests/shortcuts/deviceside/backup/launcher3
    22:./qcom/cts/hostsidetests/shortcuts/deviceside/backup/launcher3/src/android/content/pm/cts/shortcut/backup/launcher3
    23:./qcom/cts/hostsidetests/shortcuts/deviceside/backup/launcher4new
    
2. find

juejin.cn/post/689887…

baijiahao.baidu.com/s?id=173206…

  1. 在当前目录及子目录搜索特定名称的文件和目录
    • 在当前目录及子目录下搜索以launcher开头的文件及目录
find . -name launcher*

2. 在当前目录及子目录搜索特定名称的文件 -type f * 在当前目录及子目录下搜索以launcher开头的文件

find . -name launcher* -type f

3. 在当前目录及子目录搜索特定名称的目录 -type d * 在当前目录及子目录下搜索以launcher开头的目录

find . -name launcher* -type d

4. 在当前目录及子目录搜索特定类型文件 * 在当前目录及子目录下搜索 .sh 文件

find . -name *.sh

2.将linux命令执行结果不显示,直接写入到指定文件

1. > 将执行结果写入到指定文件,文件原始内容不保留
  • 命令 > 指定文件
ls > testDir/1.txt
2. >> 将执行结果写入到指定文件,会附加到原始文件内容之后
  • 命令 >> 指定文件
ls >> testDir/1.txt

3.将linux命令执行结果写入到指定文件,并同时显示执行结果

1. 命令 | tee 指定文件
  • 将命令执行结果写入指定文件,并同时显示执行结果. + 文件原始内容不保留
find . -name launcher* -type d | tee testDir/1.txt
2. 命令 | tee -a 指定文件
  • 将命令执行结果写入指定文件,并同时显示执行结果. + 文件原始内容保留,执行结果会附加到原始内容后面
find . -name launcher* -type d | tee -a testDir/1.txt

4.删除

  1. 删除当前目录下所有文件,文件夹及其子文件夹,递归删除
rm -rf ./*

2. 删除指定文件夹

删除文件夹 d

rm -rf d/

5.查看当前所在目录

pwd

***:~/LinuxTest/d1$ pwd
/work/用户名/LinuxTest/d1

6.创建文件

  1. 创建1个文件
touch f1.txt

2. 创建多个文件

touch 1.txt 2.txt 3.txt

7.创建文件夹

  1. 创建1个文件夹
mkdir d1

2. 创建多个文件夹

mkdir d1 d2 d3

3. 将所需要的文件夹递归创建完成: mkdir -p a/a1/a2/a3

***:~/testDir$ mkdir -p d1/d11/d12/d13
***:~/testDir$ cd d1/d11/d12/d13/
***:~/testDir/d1/d11/d12/d13$ pwd
XXX/testDir/d1/d11/d12/d13

8.进入linux系统根目录: cd /

linux根目录路径就是 /

***:/$ cd /
***:/$ pwd
/
***:/$ 

9.linux下查看文件属性. ls -l 可以看到当前目录下所有文件及目录的属性

***:/$ ls -l
total 1943024
//文件夹
drwxr-xr-x   2 root root      12288 Oct 11  2021 bin
//链接文档
lrwxrwxrwx   1 root root         32 Oct 11  2021 XXX.img -> boot/XXX.img-XXX-generic
lrwxrwxrwx   1 root root         34 Oct 11  2021 XXX.img.old -> boot/XXX.img-XXXOLD-generic
//文件
-rw-------   1 root root 1989529600 Feb 24  2021 swapfile
  1. 第0位标记文件类型: d代表 文件夹. l代表链接文档. -代表 文件.
  2. 第1到3位标记该文件的所有者拥有的该文件的权限.
    • r: 可读
    • w: 可写
    • x: 可执行
    • rwx3个顺序不会改变,没有对应权限则显示-
  3. 第4到6位标记该文件的所有者的同组用户拥有的该文件的权限.
  4. 第7到9位标记其他用户拥有的该文件的权限.
  5. 对于linux下的文件及目录,都有一个用户是它的所有者,而每个用户都属于一个或多个组.
//文件夹
//所有者是 root. 所有者的组是 root.
//所有者权限: rwx
//所有者同组权限: r-x
//其他用户权限: r-x
drwxr-xr-x   2 root root      12288 Oct 11  2021 bin

10. cd

  1. cd / :进入系统根目录
  2. cd ~ :进入当前用户目录
  3. cd .. :进入上一级目录

11. 复制文件及文件夹

1. cp -i 原始文件名字 目标文件位置/目标文件名字
***:~/testDir$ ls
1.txt  2.txt  av  base	d1  d2	d3
//将文件1.txt拷贝至文件夹d2下, 并重命名为1copyfile
***:~/testDir$ cp -i 1.txt d2/1copyfile

***:~/testDir$ cd d2/

//拷贝来的1.txt现在名称是1copyfile
***:~/testDir/d2$ ls
1copyfile
2. cp -r 原始文件夹 目标文件夹位置/目标文件夹名字
***:~/testDir$ ls
1.txt  2.txt  av  base	d1  d2	d3
//将文件夹d1拷贝至文件夹d2下, 并重命名为d1copy
***:~/testDir$ cp -r d1/ d2/d1copy/

***:~/testDir$ cd d2/

//拷贝来的d1文件夹现在名称是d1copy
***:~/testDir/d2$ ls
d1copy

12. 文本文件查看

linux more命令详解

1. cat
  • cat 指定文件

    • 直接显示文本内容
    cat 1.txt
    
  • cat -n 指定文件

    • 显示文本内容,且显示行号,空白行也占用行号
    cat -n 1.txt
    
  • cat -b 指定文件

    • 显示文本内容,且显示行号,空白行不占用行号
    cat -b 1.txt
    
2. nl 指定文件 : 显示指定文件的内容,并显示行号
nl 1.txt
3. more -count +start 指定文件 : 每页显示count行,从第start行开始显示文本内容
  • more在运行中,有几个按键可以按
  • 空格 : 继续显示下一页(count行)
  • Enter : 继续显示下一行
  • b : 返回显示上一页
//每页显示32行. 从第20行开始显示.
more -32 +20 1.txt
4. head -n 指定文件 : 显示指定文件的开头n行
head -32 1.txt
5. tail -n 指定文件 : 显示指定文件的结尾n行
tail -32 1.txt

13. df -h : 显示指定目录下整体空间使用量

//获取当前目录的磁盘使用量
XXX:~/testDir$ df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb       1000G  811G  189G  82% /data

//获取系统整体磁盘使用量
XXX:~/testDir$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             31G     0   31G   0% /dev
tmpfs           6.1G  9.1M  6.1G   1% /run
/dev/sda1        40G  7.5G   30G  21% /
tmpfs            31G     0   31G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs            31G     0   31G   0% /sys/fs/cgroup
/dev/loop2       68M   68M     0 100% /snap/lxd/22753
/dev/loop5       62M   62M     0 100% /snap/core20/1405
/dev/loop1       68M   68M     0 100% /snap/lxd/21545
/dev/loop6       62M   62M     0 100% /snap/core20/1518
/dev/sdb       1000G  811G  189G  82% /data
/dev/loop0       47M   47M     0 100% /snap/snapd/16010
tmpfs           6.1G     0  6.1G   0% /run/user/1001
/dev/loop3       47M   47M     0 100% /snap/snapd/16292

14. du : 获取指定目录

  1. du -sh : 统计当前目录整体占用
  2. du -ah : 统计当前目录文件夹及文件占用明细
//统计当前目录磁盘整体占用
XXX:~/testDir/d1$ du -sh
32K	.

//统计当前目录磁盘整体占用,及每个文件夹占用情况
XXX:~/testDir/d1$ du -ah
0	./d11/d12/d13
0	./d11/d12
0	./d11
32K	./1
0	./d1file1.txt
0	./d1file2.txt
0	./d1file3.txt
32K	.

15. vi

  1. vi 指定文件 : 进入编辑指定文件模式
  2. i 是进入输入模式
  3. ESC -> :wq 是保存并退出

16. 修改文件/文件夹的组

  • sudo chgrp bin DOC\ 文档.doc
  • sudo chgrp bin tt/

    **/test$ ls -al
    总用量 52
    drwxrwxr-x 2 xjsd xjsd  4096 6月   7 18:56  .
    drwxrwxr-x 6 xjsd xjsd  4096 6月   7 18:56  ..
    -rw-rw-r-- 1 xjsd xjsd  9216 5月  17 19:44 'DOC 文档.doc'
    -rw-rw-r-- 1 xjsd xjsd 20992 5月  17 19:44 'PPT 演示文稿.ppt'
    -rw-rw-r-- 1 xjsd xjsd  6656 5月  17 19:44 'XLS 工作表.xls'
    
    **/test$ sudo chgrp bin DOC\ 文档.doc 
    [sudo] xjsd 的密码: 
    xjsd@XJSH01351:~/Jet/文档/test$ ls -al
    总用量 52
    drwxrwxr-x 2 xjsd xjsd  4096 6月   7 18:56  .
    drwxrwxr-x 6 xjsd xjsd  4096 6月   7 18:56  ..
    -rw-rw-r-- 1 xjsd bin   9216 5月  17 19:44 'DOC 文档.doc'
    -rw-rw-r-- 1 xjsd xjsd 20992 5月  17 19:44 'PPT 演示文稿.ppt'
    -rw-rw-r-- 1 xjsd xjsd  6656 5月  17 19:44 'XLS 工作表.xls'
    
    **/test$ ls -al
    总用量 56
    drwxrwxr-x 3 xjsd xjsd  4096 6月   7 18:59  .
    drwxrwxr-x 6 xjsd xjsd  4096 6月   7 18:56  ..
    -rw-rw-r-- 1 xjsd bin   9216 5月  17 19:44 'DOC 文档.doc'
    -rw-rw-r-- 1 xjsd xjsd 20992 5月  17 19:44 'PPT 演示文稿.ppt'
    drwxrwxr-x 2 xjsd xjsd  4096 6月   7 18:59  tt
    -rw-rw-r-- 1 xjsd xjsd  6656 5月  17 19:44 'XLS 工作表.xls'
    
    **/test$ sudo chgrp bin tt/
    **/test$ ls -al
    总用量 56
    drwxrwxr-x 3 xjsd xjsd  4096 6月   7 18:59  .
    drwxrwxr-x 6 xjsd xjsd  4096 6月   7 18:56  ..
    -rw-rw-r-- 1 xjsd bin   9216 5月  17 19:44 'DOC 文档.doc'
    -rw-rw-r-- 1 xjsd xjsd 20992 5月  17 19:44 'PPT 演示文稿.ppt'
    drwxrwxr-x 2 xjsd bin   4096 6月   7 18:59  tt
    -rw-rw-r-- 1 xjsd xjsd  6656 5月  17 19:44 'XLS 工作表.xls'

17. chmod命令使用数字修改文件权限

chmod 777 DOC\ 文档.doc

**/test$ ls -al
总用量 56
drwxrwxr-x 3 xjsd xjsd  4096 6月   7 18:59  .
drwxrwxr-x 6 xjsd xjsd  4096 6月   7 18:56  ..
-rw-rw-r-- 1 xjsd bin   9216 5月  17 19:44 'DOC 文档.doc'
-rw-rw-r-- 1 xjsd xjsd 20992 5月  17 19:44 'PPT 演示文稿.ppt'
drwxrwxr-x 2 xjsd bin   4096 6月   7 18:59  tt
-rw-rw-r-- 1 xjsd xjsd  6656 5月  17 19:44 'XLS 工作表.xls'

**/test$ chmod 777 DOC\ 文档.doc 

**/test$ ls -al
总用量 56
drwxrwxr-x 3 xjsd xjsd  4096 6月   7 18:59  .
drwxrwxr-x 6 xjsd xjsd  4096 6月   7 18:56  ..
-rwxrwxrwx 1 xjsd bin   9216 5月  17 19:44 'DOC 文档.doc'
-rw-rw-r-- 1 xjsd xjsd 20992 5月  17 19:44 'PPT 演示文稿.ppt'
drwxrwxr-x 2 xjsd bin   4096 6月   7 18:59  tt
-rw-rw-r-- 1 xjsd xjsd  6656 5月  17 19:44 'XLS 工作表.xls