一、目录操作

0)cd

https://blog.csdn.net/zjc910997316/article/details/82983251

“..”代表上一级目录、“~”代表当前登录用户的用户目录(home/root等)、“-”代表前一目录 “/"代表根目录、什么参数也不代则会进入“home/个人用户”目录。

2)pwd:查看当前目录

3)touch:创建文件

4)ls [-al]:列出当前目录下的文件,[-al]参数表示查看文件的详情信息(权限等)

5)rm:删除文件 (怎么设置删除提示)

http://www.linuxidc.com/Linux/2012-06/61856.htm

rm -rf 可以删除文件夹。

5-1)重命名文件 (也可以是复制文件)

mv 原文件名 新文件名

http://www.linuxidc.com/Linux/2015-01/111116.htm

6)clear:清空命令行

7)mkdir [-p]:创建文件夹,[-p]表示建立多层文件夹。

8)cp:复制文件
复制整个文件夹及文件 :cp -a dir1 dir2
https://blog.csdn.net/kzadmxz/article/details/74923559
https://blog.csdn.net/jiangyongy/article/details/78902966
https://www.cnblogs.com/axon/p/13707766.html

利用{}向前引用快速复制文件
cp users{,.bak},会生成users.bak文件。

10) 创建多级目录
mkdir -p

统计文件个数

wc命令

https://www.cnblogs.com/iloveyouforever/p/4014332.html
https://www.cnblogs.com/hls-code/p/16628825.html

wc -l:用于统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数

  • 查看当前文件夹下文件的个数(不包括子文件夹)
    ls -l|grep ^-| wc -l
    含义:Linux操作系统下查看当前目录内的文件数量(不包含子目录中的文件)(因为目录的权限首字母为d:代表文件夹)
  • 查看当前文件夹下文件的个数(包括子文件夹)
    ls -lR | grep ^- | wc -l

  • 查看某文件夹下文件夹的个数,包括子文件夹里的文件夹
    ls -lR | grep ^d | wc -l

二、文件操作

显示

查找

grep的各种用法:http://t.zoukankan.com/fyc119-p-8427340.html
1.根据字符串查找文件

https://blog.csdn.net/lcj_cjfykx/article/details/9003350

示例:比如我要查找在frameworks文件夹下的包含"Running dexopt on"字符串的文件

输入命令: find frameworks -type f -name "*" | xargs grep "Running dexopt on"

搜索结果:

img

2.查找某个软件的安装位置

whereis xxx

3.列出文件
find 目录 -type f

4.查找并导出文件
https://blog.csdn.net/weixin_33859844/article/details/91937033

  • 在文件server.log中查找 'search-string' 并输出到用户目录下的/log/test.log文件中:
    grep 'search-string' server.log > ~/log/test.log

如果test.log已存在,输出的内容将会覆盖test.log文件原有的内容

如果test.log不存在,则会创建test.log文件并输出查找到的内容

  • 若想实现输出的日志只执行追加操作而不覆盖原有的内容,可以使用 >> 代替 >即可,如下:
    grep 'search-string' server.log >> ~/log/test.log

  • 同样的原理,tail、head等命令输出的内容也可以使用这样的方式输出到文件中

浏览

计算

文件权限

r:4 w:2 x(可执行权限):1

chmod 数字 文件 :改变文件的权限

如果文件的群组权限小于用户的权限,如果文件所属用户属于这个群组,那么用户的权限即使比

群组的权限大,也会以群组的权限为准。(比如群组权限不可读,那么用户权限即使可读,也不能读取文件)

chmod +x/-x 文件:为文件的所有属增加/减少权限

chown 用户名 文件: 改变用户所属的用户

chown yangzongde testfile //修改文件拥有者为 yangzongde

chgrp 组名 文件:改变用户所属的组

chmod -R 777:加了-R,文件夹及其下的全部子文件夹的权限都会被修改。

文件复制

https://www.cnblogs.com/ysuwangqiang/p/11364529.html

-d :若来源档为连结档的属性(link file),则复制连结档属性而非文件本身

查看文件详情

ll指令(ls -l)

ls默认是不显示隐藏文件的(以.开头的文件),也不显示...
https://blog.csdn.net/u013250861/article/details/126669224

ls -lt

l:详解,t:按时间排序

文件名*:*号表示这个文件是可执行文件

  • 查询链接文件
    ls -l | grep "^l"

删除隐藏文件

使用命令: rm -rf * 这个命令可以删除看得见的文件及其自文件,但是隐藏的文件却删除不掉。

得使用命令: rm -rf .* 这个命令,就可以删除掉隐藏的文件,但是,.和..这2个文件是删除不了的。

rm 和ls grep的结合使用:https://blog.csdn.net/weixin_46021869/article/details/125970636

rm -rf ls | grep abc

查看文件大小

https://blog.csdn.net/oqqHuTu12345678/article/details/125556409

ls、du、wc、stat

空格分隔:
rtspLogSize=$(du -b /opt/bmclive/rtsp.log |cut -d " " -f 1

TAB制表符分隔:
rtspLogSize=$(du -b /opt/bmclive/rtsp.log | cut -f 1)

其中wc -c filename是查看文件内容的字节大小

查看可执行文件

https://baijiahao.baidu.com/s?id=1752520808745528831&wfr=spider&for=pc

查看某个so库中是否有某个函数的定义:nm -D libnucs.so(库名) | grep SDF_ExchangeDigitEnvelopeBaseOnRSA(函数名)

dd指令(读取转换输出文件)

https://www.runoob.com/linux/linux-comm-dd.html

https://blog.csdn.net/qingzhuyuxian/article/details/83058503

lsof(可看打开的文件)

echo(输出到文件)

在写shell的时候,可能出现的一种情况就是:echo $foo到file之后,在本shell cat这个文件,显示的内容不全,但是vim是正常的,新开一个shell cat也正常。

Linux系统中文件行末尾出现^M的原因及解决办法

在开发过程中,有时候Linux系统中文件行末尾出现^M,对于不同系统,有不同的换行符号:

在windows下的文本文件的每一行结尾,都有一个回车(’\n’)和换行(’\r’)

在linux下的文本文件的每一行结尾,只有一个回车(’\n’);

在Mac下的文本文件的每一行结尾,只有一个换行(’\r’);

因此:^M出现的原因: 在linux下打开windows编辑过的文件,就会在行末尾显示^M;

对此的解决办法就是通过字符替换,将^M换掉,具体方法如下:

利用vim打开文件,然后输入vim 命令 %s/^M$//g,进行全文件查找替换。

注意:^ 使用ctrl+v 来输入,M使用ctrl+m来输入

文件合并

# 将file1.txt和file2.txt合并到file.txt
$ cat file1.txt file2.txt > file.txt

方法二:只使用cat命令读入一个文件,然后使用>>将文本流追加到另一个文件的末位。

用法示例:

# 将file1.txt追加到file2.txt的末尾
$ cat file1.txt >> file2.txt

统计文件的行数

https://blog.csdn.net/BaiXuePrincess/article/details/127651930
awk '{print NR}' ./code.txt |tail -n 1

文件裁剪

文本过滤然后重定向到新文件

1.删除文件前几行或者后几行

https://www.cnblogs.com/1394htw/p/14852207.html

2.文件截断(truncate)

https://blog.csdn.net/mrhjlong/article/details/134710951

# 从前往后截取5个字节
$ truncate -s 5 test_truncate 
$ hexdump -C test_truncate 
00000000  31 32 33 34 35 

3.保留文件的后几行

只留最后100行 tail -n 100 original.txt > newfile.txt

使用rm删除文件时,排除某一个或多个文件(适用于文件夹)

https://blog.csdn.net/qq_50247813/article/details/133761034

rm -rf *                #删除所有文件
rm -rf  !(1.txt)        #删除所有文件,但是排除1.txt
rm -rf !(1.txt|2.txt)   # 删除所有文件,但是排除1.txt和2.txt

创建大文件

https://blog.csdn.net/qq_48811377/article/details/132232950

查看文件基本名称

basename命令
https://blog.csdn.net/weixin_40734030/article/details/122674137

三、文件监控inotify

https://www.cnblogs.com/abc1234567/p/14191210.html
支持文件夹递归监听

安装

  • ubuntu安装
    apt install inotify-tools

示例:
root@xinyi-virtual-machine:/home/xinyi/test# inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e" /home/xinyi/test

  • android平台
    android平台叫做inotifyd命令
    inotifyd - /sys/fs/cgroup

API接口

https://blog.csdn.net/zhanglei_admin/article/details/97636301


0 条评论

发表回复

您的电子邮箱地址不会被公开。