2020-05-02 linux文件管理命令详解

一、linux中文件或文件目录的命名规则:

1.长度不能超过255个字符;

2.仅不能使用“/”当文件名;

3.严格区分大小写;

二、文件管理类命令

(一)文件管理:touch  ;  stat  ;file ;文本编辑器nano  ;rm  ;cp  ;  mv  ;install  ;  uninstall  ;cat  ; tac  ;more ; less  ; head  ; tail  ; cut  ;  jion  ;  sed  ;  awk  ;  sort  ;uniq  ;  wc ;tr  ;

(1)创建和删除文件:

touch:用于修改文件时间戳(默认参数是同时修改访问/修改/改变三个时间戳为当前时间,选项中可改功能,其中改变时间是必会改成当前时间的,因为时间戳也属于文件属性,必定当下被改)

    touch PATH/XX.xxx:当PATH路径下XX文件不存在时创建xxx(文件类型)新的空文件XX(附带的功能)

stat:显示一个文件或文件系统的状态信息

file:查看文件内容类型

ELF:可链接的文件格式(linux只能识别这种格式的文件执行)

echo:“”内的内容打印到屏幕(有无双引号影响参数功能)      

    echo $变量:可获取变量值

backslash escape:反斜杠转义/逃逸(使反斜杠有意义)

    如在echo命令中 echo -e "a \n b" (-e 使 \n 有换行意义,但注意 \* 只有在 “” 内才有意义) 如下例

printf:按格式显示字符(同样 \* 需要在 “” 内才有意义)

rm XX:删除XX文件

    -i:interactive 交互式(管理员默认rm = rm -i,rm是rm -i的别名,避免误操作)

    使用 \rm 可以使用 rm 本身的命令而不是 rm -i

    -f:强行删除

    -r:recursive 递归删除 可以用来删目录

(2)文本编辑器:

    ASCII:美国国家标准信息交换代码 ,规定了基本的二进制位变化表示的不同的字符

    如128个不同的字符需要7位数字 2^7=128    0-127    从 000 0000 - 111 1111

    计算机最小储存单位是字节,1个字节是8位(二进制数字 0000 0000 - 1111 1111)

    ASCII码是纯文本,文本编辑器是编辑纯ASCII码的,区别于word,word是字处理器,除了文本内容外,还存储了诸如颜色,大小,下划线等很多属性信息

    汉字标准:GB18030,GBK,GB2312(国标)2^16=65536  转换器/转义集

    Unicode(全球统一标准)

    文本编辑器:如windows的Notepad++(可以识别仅$行结束符,其他windows文本编辑器如记事本可能识别出来仅一行,Notepad++可以正常识别),linux里的文本编辑器有 nano,也可以创建文件并能键入一些内容

    linux中 ^ 表示control键

(3)复制和移动文件

cp:copy 复制文件   复制一个文件到一个文件,或 多个文件到一个目录(默认不会复制目录)

    cp SRC(源)... DEST(目标)

    cp 1 2 3 (只有最后一个是目标,此前都是源)

    -r/R:recursive 递归复制,可以复制目录

    -f:强行复制

    在root权限下默认是cp -i命令的别名

    -p:保留原有文件的权限,属主和属组以及时间戳

    -a:archive,归档复制,保留原有文件所有属性,常用于备份

    -L:(dereference)如果复制的是一个符号链接文件,不复制链接,复制链接指向的文件

    -P:(no dereference)如果复制的是一个符号链接文件,保持链接

    -d:同为保持链接

mv:move 移动文件,基本用法同 cp(但默认可以移动目录,不需要 -r)

    mv SRC... DEST

    mv a b:在当前目录下,将文件/目录a重命名为文件/目录b

    mv -t DEST SRC...

install:复制文件并设置属性(默认不能复制目录,也不能通过 -r 实现)

    -d DIRECTORY...:创建目录,可以多个

    SRC DEST:复制文件并赋予使用权限

        -m:指定权限

    install -t DIRECTORY SRC...

(4)查看文本

cat:concatenate  将纯文本文件连接并逐个显示(全倾倒dump)文件显示为一行

    -n:显示行号

    -E:显示linux文本文件行结束符$(windows的文本文件行结束符是$+回车符,所以Linux的文本复制到windows中后全显示为一行,是因为linux的行结束符没有回车符windows不识别。同样windows的文本复制到Linux中来可能识别不了或者报错,是因为多了一个回车符)

tac:逆序显示文本

Ctrl+c键:终止/撤销命令

Shift+Pageup/Pagedown键:在终端翻屏(翻屏数有限)

more:从前向后分屏显示文本内容,翻到尾部自动退出

    space键向后翻屏  b键向前(前提是没翻到尾部)  enter键按行向后翻

less:查看文本,用法同man

head:查看文件前n行    tail:查看文件后n行(n默认是10)

    -n:显示的行数   head -n 3 FILE(显示前3行)与前面的显示行数区分开 = head -3 FILE

    tail -f:follow,查看文件尾部,并不退出,等待显示后续追加至此文件的新内容,起实时监控作用

(5)文本处理

cut:剪切文件按列显示,列与列之间由分隔符隔开

    -d:delimiter 指定字段分隔符,默认是一个空格或  -d' ' 

    -f:field 指定要显示的字段   -f 1 显示第一个字段    -f 1,3(离散表示法) 显示第一个和第三个字段  -f 1-3(连续表示法) 显示1到3段字符

(6)文本排序

sort:与cut一样,不影响原文件内容,只影响显示次序,默认按字符在ASCII码表中顺序升序进行

    -n:按数值大小升序

    -r:降序(默认了-n)

    -t:指定字段分隔符,-t$'\t'表示以制表符TAB作为分隔符

    -k:以哪个字段为关键字进行排序

    -u:排序后相同的行只显示一次

    -f:排序时忽略字符大小写

sort多字段排序:

# sort -k1 -k3 FILE  表示先按第一列排序,第一列相同时按第三列排序

# sort -k1.2,1.6 FILE  表示按第一列的第一个字符到第一列的第六个字符之间的字符排序,可以叠加选项如-n按数值升序等

# sort -k 1, 1: 按照第一列的值进行排序,如果只有一个1的话,相当于告诉sort从第一列开始直接到行尾排列

uniq:排序后报告或忽略相同且相邻的行 (因为要求相同且相邻因此一般在使用前要先用sort进行排序)

    -d:只显示重复的行(显示一次)

    -D:显示所有重复的行(重复几次显示几次)

    -c:显示文件中行重复的次数

(7)文本统计

wc:word count   统计文件中1.行数 2.单词数 3.字节数(包括空白)

    -l:只显示行数

    -w:只显示单词数

    -c:只显示字节数   -m:只显示字符数

    -L:显示最长的一行包含多少字符

(8)字符处理命令

tr:转换或删除字符

    -d:删除出现在字符集中的所有字符(按字符处理不是按单词处理)


(二)目录管理:ls  ;  cd  ;  pwd  ;  mkdir  ;  rmdir  ; tree  ;

pwd:查看现在所处的文件位置(printing working directory)

ls:列出指定路径下的所有子目录(文件夹)/文件(list)  列出的蓝色显示为目录,绿色为具有执行权限

    -l :long  长格式,显示完整信息

           依次解释 -l 之后显示的信息含义:

           左1栏:10位:第1位.文件类型(不是内容类型而是文件本身属性类型),linux中有如下分类:

                           -:普通文件(f)file ;  d:目录文件 ; b:块设备文件(block); c:字符设备文件(character); l:符号链接文件(symbolic link file)/软连接文件(类似windows的快捷方式);p:命令管道文件(pipe);s:套接字文件(socket)

                        后9位:文件权限(mode),每3位一组,每一组:rwx(读,写,执行三种权限),-表示无相应权限,自左而右分别是属主,属组,其他用户

            左2栏:文件硬链接的次数

            左3栏:文件的属主(owner)(文件创建者)

            左4栏:文件的属组(group)

            左5栏:文件大小(size),单位是字节

            左6栏(6.7.8):时间戳(timestamp),每一个文件都有三个时间戳,最近一次被访问/修改/改变的时间,显示的是最近一次被修改的时间。访问:access;修改:modify(改变文件内容);改变:change(改变文件属性/metadata,元数据)。

            右1栏:文件名

    -h(human readable,人可读的):做单位转换,默认是b,转换成kb/Mb/Gb等

    -a(all):显示以“.”开头的隐藏文件

               .:表示当前目录(ls .:显示当前目录)

               ..:表示父目录(参考cd ..,返回上一级目录,ls ..:显示上一级目录)

    -A:显示所有隐藏文件但不包含“.”和“..”

    -d:显示目录自身属性

    -i:显示文件索引节点号index node(inode)    每一个文件对应一个索引节点——一个号码

    -r:逆序显示文件

    -R:递归(recursive)显示,显示当前目录,子目录,子子目录(依此类推)内容(内容多的时候很消耗资源)

cd XX: 切换目录(change directory)  不能进入文件     

    家目录,主目录(home directory),在家目录中用户有所有操作权限,默认登录位置

    cd不接参数:回到用户家目录  = cd ~

    cd ~username:进入指定用户的家目录(只有管理员有权限进别的用户家目录,普通用户不可以)

    cd -:在当前目录和前一次所在的目录之间来回切换)

    cd ..:进入上层目录

mkdir:创建空目录,创建的是路径上的最后一个目录

    mkdir /root/x/y/z:创建目录z,如果/x/y不存在则无法创建

    -p:parent 父目录

        mkdir -p x/y/z:如果z文件夹已存在则不创建,如果不存在则创建;如果/x/y不存在则创建

    -v:verbose 详细信息

rmdir:删除目录(remove directory)只用于删除空目录

    rmdir -p /x/y/z:x下只有y,y下只有z,删除z后y变空目录被删除,然后x变空目录也被删除,实现全部删除,多分枝的目录删到不为空的目录停止

tree:查看目录树


(三)、日期时间: date  ;clock ;hwclock ;cal ;

date:时间管理(显示系统时间/修改)

date +%s:时间戳,显示格林威治时间自1970-01-01时起经过的秒数,意义是全球各地当地时间不同,但这个时间相同,用来计量全球统一时间,用来在数据库中记录精确时间而非当地时间

86400=一天的秒数

clock:显示硬件时间

hwclock:显示硬件时间(hardware clock)

hwclock -w:将系统时间同步到硬件区(将硬件时间改为系统时间)

hwclock -s:读取硬件时钟到系统(将系统时间改为硬件时间)

linux的时间实现方式:电脑上计量时间的设备是一个晶体振荡器,需电,主板上有一个纽扣电池。这个时间叫硬件时钟,rtc(real time clock,实时时钟),每次操作系统开机时都是从硬件系统中读取的当前时间,然后设置为当前系统时钟,此后靠内核以软件的方式模拟晶体振荡器,不再使用硬件时钟。所以Linux开机后有两个时钟,硬件时间和系统时间,系统时钟在CPU非常繁忙的时候可能会出现误差。硬件时间和系统时间不一定是一致的,就算一开始一致,可能走着走着就不一致了。可以单独修改其中任意一个。

ntp:时间服务器(network time protocol)主机时间走的非常准,客户机都可以以它的时间作为时钟,可以在本地时间不准的时候校准,需联网。

cal:calendar显示日历,可以具体年月 

bc:计算器

    scale=n 结果精度,结果保留几位小数(否则只显示整数位,非四舍五入)

    quit退出

你可能感兴趣的:(2020-05-02 linux文件管理命令详解)