文件管理和输出重定向

alias rm=‘mv -t /app/‘

tree     显示目录树

-  d     只显示目录

-  L     层数

mkdir     创建目录

-p     自动创建所需的个目录

-v     显示详细信息

-m     创建目录是直接指定权限

rmdir     删除空目录

-p     递归的删除父空目录

-v     显示详细信息

rm  -r     递归删除目录树

df     用于显示磁盘分区上的可使用的磁盘空间

-h     以KB以上的单位来显示

-a     查看全部文件系统

-T     文件系统类型

-i     列出inode信息而不是块使用情况

watch     定期执行程序,显示全屏输出

-n     指定更新间隔

ln  目标   链接名字    文件之间建立链接(硬链接)

-s     使符号链接,而不是硬链接(软链接)

stat  选项  文件名      显示文件或文件系统状态

shred  选项  文件名     覆盖文件以隐藏其内容,并可选地删除它

-n     覆盖次数,默认3次

-u     覆盖后删除

-v     查看过程

-z     用零添加最后的覆盖来隐藏粉碎

例:shred  -zvun  10

readlink      查看链接文件路径

file  文件名   确定文件类型 (看首部信息,不关心文件后缀)

-b    不显示文件名

-f     把需要处理的东西存在一个文件,读取文件的内容,适合批处理

-F     使用指定分隔符号替换输出文件名后默认的”:”分隔符

-L     查看对应软链接对应文件的文件类型

dd  if=/dev/zero of =/boot/bigfile bs=1M count=500  可控的添加文件内容

lsof  |  grep deleted  查看哪些文件已删除但未释放空间

killall  进程     关掉进程

ps  aux|grep  vim     查看进程

ls  -il     显示节点编号

echo  f{1..50000} | xargs touch     创建大批量文件

watch  -n 1 -df -i

通常rm删除大文件未必会立即释放空间,所以建议先使用  >   清空文件内容,在使用rm 删除文件。

Centos 6使用的文件系统 ext4   Centos7使用的文件系统 xfs

文件分为两部分元数据(文件的属性 )和用户数据(即文件数据块,数据块是记录文件真是内容的地方)。元数据中的inode号才是文件的唯一标识而非文件名,文件名(存在于数据块中)只是方便人的使用和记忆。

数据的位置:

直接指针(有12个,0-11)直接指向数据块(4K),数据低于48K可以通过直接指针直接找到

间接指针:直接指向的是指针块(4K),消耗4个字节来描述数据块的位置

节点编号会被重复利用

centos6 根的节点编号是 2  (挂载点都是为2)

centos7的节点编号是64

每个分区分配自己的节点编号,不同分区节点编号可以一样,同一个文件不能拥有不同的节点编号

文件名不在节点表里,存在于文件夹的文件内容中(数据块中)

链接数:一个节点编号对应的有几个文件名

删除文件只是删除节点信息,并没有把数据删除

硬链接:可以存放在同一目录上,也可以在不同目录上(不允许跨分区创建)

软链接大小是链接路径的大小

软链接和硬链接区别:

1.本质不同:硬链接是同一个文件。软链接不是同一个文件

2.删除:删除一个硬链接的文件并不影响有相同inode的文件使用。删除软链接的原始文件则软链接失效

3.创建:链接创建完成连接数会增加。软链接则不会

4.跨分区:硬链接不可以跨分区创建。软链接可以

5.目录:硬链接不 可以创建目录。软链接可以

软链接:源文件的路径是相对路径,一定是相对于软链接文件的路径,而非相对于当前工作目录的路径

程序:指令+数据

打开的文件都有一个fd: file descriptor (文件描述符)

I/O重定向:改变默认

STDOUT和STDERR可以被重定向到文件

命令 操作符号 文件名

支持的操作符号包括:

>      把STDOUT重定向到文件

2>      把STDERR重定向到文件

&>      把所有输出重定向到文件

>      文件内容会被覆盖

set –C 禁止将内容覆盖已有文件,但可追加

>| file 强制覆盖

set +C 允许覆盖

>> 原有内容基础上,追加内容

<     标准输入重定向

/dev/null     垃圾箱

ls /misc/

systemctl enable autofs ; systemctl start auttofs      让auttofs可用,auttofs可用了 /misc/cd  才可用

ls  -l  /proc/进程号/fd/

():合并多个程序的STDOUT

例如:

(ls;pwd;hostname) >> f3.log  多条命令同时重定向一个文件中

(errcmd;hostname) > /app/true.log  2> /app/error.log     正确的信息和错误信息分开重定向

(errcmd;hostname) > /app/true.log  2>&1     等同于    &>     等同于下面

((errcmd;hostname) 2>&1) > /app/true.log    错的变成对的,在重定向到文件

(echo error 1>&2) 2> /dev/nul     对的变成错的,错的重定向到 垃圾箱

linux和windows的文本格式不一样,linux一个符号来标识换行,Windows两个符号来标识 (0d  0a)

tr     转换和删除字符

-c     取补集(除了)

例:tr  -sc  ‘a‘     除了a全都压缩

aaabbbcccaaa

aaabcaaa

例:tr  -dc  ‘a‘     除了a全删,ctrl+d才能结束

abcabcabc

aaa

例:tr  -dc  ‘a\n’     保留a和回车

-d     删除

-s     连续重复字符会被压缩(2个以上)

-t

\t     表示tab键

\n     换行

\r     表示回车键

例:tr -d ‘\n‘  <  f1     删除回车并重定向 f1

tr  ‘\n‘ ‘ ‘  <  f1     换行替换成空格重定向 f1

tr -d ‘\r‘ < win.txt > newin.txt     windows文本格式转换为linux

dos2unix     windows文本格式转换为linux

unix2dos     linux文本格式转换为windows

cat  -A win.txt(windows文本)

a^M$

b^M$

c^M$

^M$

^M$

例:

hexdump  -c win.txt

mail   -s 邮件标题  收件人     发邮件

mail     接受邮件     输入主题名查看

单行重定向,

多行重定向 <<

例:cat  > f1 << EOF(end of file)    统一提交

aaabbbbccc

bbbbbccccc

EOF

命令 | 命令 |命令   管道符号(只能处理标准输出)

例: ls | tr ‘a-z‘ ‘A-Z‘

F1

F2

例: who | tr ‘a-z‘ ‘A-Z‘

ROOT     PTS/0        2017-11-14 17:33 (192.168.27.1)

ROOT     PTS/1        2017-11-14 21:32 (192.168.27.1)

LIYIHANG TTY2         2017-11-14 21:27

例:error  2>&1 | tr ‘a-z‘ ‘A-Z‘  (通过 2>&1把错误输出转换为正确输出)

BASH: ERROR: COMMAND NOT FOUND...

error   |& tr ‘a-z‘ ‘A-Z‘   等同    error  2>&1 | tr ‘a-z‘ ‘A-Z‘

例:error   |& tr ‘a-z‘ ‘A-Z‘ | tr -d ‘O‘

BASH: ERRR: CMMAND NT FUND...

例:ls -R /etc/ | more    管道符号配合 more 分段查看

tee     重定向到多个目标    (因为屏幕上可以显示,所以可以做第二次处理)

-s     追加到给定的文件,不要覆盖

例: who | tee  f1 | tr -d r

oot     pts/0        2017-11-14 17:33 (192.168.27.1)

oot     pts/1        2017-11-14 21:32 (192.168.27.1)

liyihang tty2         2017-11-14 21:27

例:who | tee who.out |grep liyihang        grep(搜索)

liyihang tty2         2017-11-14 21:27

时间: 2024-08-29 17:20:29

文件管理和输出重定向的相关文章

输出重定向与输入重定向

三种工作中最长用到的输出重定向方法: 以ls /home 为例:(下面的两种方法都是把正确的输出结果和错误的输出结果都保存到abc.log文件中) ① ls /home >> abc.log 2>&1 ② ls /home &>> abc.log 还有一种就是充当垃圾回收站的输出方法: ls /home >> /dev/null 输入重定向: wc -l 显示行数 -w 显示多少英文单字 -c 统计字节数 使用方法很简单,自己试着在终端敲一下就会了

Linux中的输出重定向

标准输入输出: 键盘        /dev/stdin        0       标准输入 显示器    /dev/stdout      1       标准输出 显示器    /dev/stderr       2       错误输出 输出重定向 正确输出: 命令 > 文件 以覆盖的形式,把命令的正确输出写入指定文件中 命令 >> 文件 以追加的形式,把命令的正确输出写入指定文件中 错误输出: 命令 2> 文件 以覆盖的形式,把错误信息写入指定文件中 命令 2>&

标准输入输出,输出重定向

标准输入输出: 输出重定向: 正确输出和错误输出同时保存:  命令 &>/dev/null 这条指令把正确输出写入文件中,错误输出丢入黑洞 解释: 放在>后面的&,表示重定向的目标不是一个文件,而是一个文件描述符,内置的文件描述符如下 1 => stdout 2 => stderr 0 => stdin 换言之 2>1 代表将stderr重定向到当前路径下文件名为1的regular file中,而2>&1代表将stderr重定向到文件描述符

shell输出重定向

在linux shell执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名. 标准输入:0(缺省是键盘,为0时是文件或者其他命令的输出) 标准输出:1(缺省是屏幕,为1时是文件) 标准出错:2(缺省是屏幕,为2时是文件) 系统中实际上有12个文件描述符,可以任意使用文件描述符3到9. 文件重定向:改变程序运行的输入来源和输出地点 Command > filename      #把标准输出重定向到一个新文件中

shell--10、Shell 输入/输出重定向

大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端.一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端.同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端. 重定向命令列表如下: 命令 说明 command > file 将输出重定向到 file. command < file 将输入重定向到 file. command >> file 将输出以追加的方式重定向到 file. n > file 将文件描述符为

Linux输出重定向

> 标准的正确输出重定向 用法示例     find /etc -name *network* > /tmp/findresult.txt 2> 标准的错误输出重定向 用法示例:     ls wrong/ 2> /tmp/wrong.txt &> 正确的以及错误的全部重定向输出     find / -name root &> /tmp/findresult.txt > ,2> ,&> 会清空输出目标文件 >> 追

如何关闭linux系统中的覆盖输出重定向(&gt;)功能

一.问题描述 我们在进行文件操作时经常会用到覆盖输出重定向(>),追加输出重定向(>>),很明显的看出两种输出重定向的符号相差不是很大,但是两种的意义却又很大的差别:前者是会覆盖文件的内容的,而后者并不会覆盖文件的内容!我们在使用追加输出重定向时极有可能由于自己的不小心而使用覆盖重定向,从而导致文件内容的丢失,但是linux系统还是可以解决这种问题的. 二.问题演示 [[email protected]~]# echo "cangls" > /root/test

linux后台运行&符号、nohup命令、输出重定向等使用方法

列出若干种情形,便于这几个命令及参数的理解: 在命令最后加上&符号,表示让这个进程到后台去执行,这样立刻返回到提示符状态,我们可以接着做下面的事.如:command & 但此时如果这个进程有输出,还是会显示出来,这又会干扰到我们的shell窗口.所以可以考虑把标准输出重定向到某个文件去,如:command >output & 现在清净了.但有时我们会发现后台运行的进程出错了,我们希望把错误信息也保存起来.那就用到了linux中默认定义两个变量:1指标准输出:2指错误输出,所以

C/C++-标准输入/输出重定向为文件输入/输出

/* Time: 2017-02-22 11:11:15 Describe: C++程序将标准输入/输出重定向为文件输入/输出. */ #include <iostream> #include <fstream> #include <string> using namespace std; void f() { string line; while(getline(cin, line)) //input from the file in.txt { cout <&