linux基础入门之文件管理类命令

文件管理类命令

命令和选项

command [options] [arguments]

命令      选项    参数

选项

短选项-   例(-h -l -a)

短选项可组合 例(-hla)

有些命令短选项可以不带-, 通常称作BSD风格的选项 例(ps aux ,tar xf)

有些选项需要带参数 tail -n 2 /etc/passwd

长选项不能组合 --help --list

如果需要参数 长选项的参数通常需要=号  --size=1G

命令后的参数就是命令的作用对象

例:ls /root

cat /etc/passwd

命令帮助

内部命令

help command

外部命令

command --help

通过type查看命令是内部命令还是外部命令

目录管理

cd(change directroy)

[[email protected] ~]# cd ~  #切换目录到主(家)目录

[[email protected] ~]# cd    #切换目录到主(家)目录

[[email protected] ~]# cd /home/

[[email protected] home]# cd -   #来回切换

/root

[[email protected] ~]# echo $PWD #当前路径变量

/root

[[email protected] ~]# echo $OLDPWD #上一次路径变量

/home

[[email protected] ~]# cd ..  #上级目录

[[email protected] /]# cd .  #当前目录

..上级目录

. 代表当前目录

绝对路径 以根目录开始的路径

相对路径 以当前目录为参照

ls(list)

列出文件的信息(默认为当前目录)

-a列出目录中所有文件,包含隐藏文件

-l 长格式显示

-R 递归显示

-d 只显示目录属性

-r 逆序输出

mkdir(make directory)

创建目录

-p --parents   需要时创建目标目录的上层目录

-v --verbose   每次创建新目录都显示信息(显示创建目录的过程)

rmdir(remove directory)

删除目录

-p --parents   删除指定目录及其上级目录

-v --verbose   输出处理的目录详情(显示删除目录的过程)

tree

显示目录结构

最小化安装系统则没有该命令,需要安装该命令

[[email protected] ~]# mkdir /mnt/cdrom  #创建需要挂载光盘目录

[[email protected] ~]# mount /dev/cdrom /mnt/cdrom/  #挂载光盘到创建的光盘目录

mount: block device /dev/sr0 is write-protected, mounting read-only

[[email protected] ~]# find /mnt/cdrom/Packages/ -name "tree*"  #查找光盘内有无该命令的安装包

/mnt/cdrom/Packages/tree-1.5.3-3.el6.x86_64.rpm

[[email protected] ~]# rpm -i /mnt/cdrom/Packages/tree-1.5.3-3.el6.x86_64.rpm

package tree-1.5.3-3.el6.x86_64 is already installed  #该提示是之前安装过该命令

[[email protected] ~]# tree  #列出该目录结构

.

├── 2.txt

├── anaconda-ks.cfg

├── c

│   ├── a.c

│   ├── num

│   ├── num.c

│   └── sum

├── install.log

├── install.log.syslog

└── old.txt

1 directory, 9 files

文件管理

linux文件类型

1、普通文件 标识 -

2、目录文件 标识 d

3、链接文件

软链接 标识l

硬链接 标识-

4、特殊文件 用于作为硬件设备访问的文件

块设备 标识b  随机按块进行读取

字符设备 标识c  安装输入的顺序来读取

5、套接字文件(socket) 标识s  让两个进程进行通信使用软件模拟的设备

6、命名管道(pipe) 标识p

cp(copy)

拷贝目录及文件

格式:  cp_源_目标

-d 保留文件的链接属性

-a 保留所有属性

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理

-p 包含属性一起

拷贝过程不指定目标文件名,则目标文件名和源文件名一样

[[email protected] lisi]# cp 91/1.txt 51cto/

拷贝过程指定目标文件名(改名)

[[email protected] lisi]# cp 91/1.txt 51cto/2.txt

[[email protected] lisi]# ls

123  51cto  91

将51cto文件夹中扩展名是txt的文件拷贝到当前目录

[[email protected] lisi]# cp 51cto/*.txt .

[[email protected] lisi]# ls

123  1.txt  2.txt  51cto  91

将51cto文件夹拷贝到/tmp文件夹

[[email protected] lisi]# cp -R 51cto/ /tmp/

[[email protected] lisi]# ls 123

123

只有管理员能够将文件拷贝权限不变

[[email protected] lisi]# chmod 777 123   #改变123的权限

[[email protected] lisi]# ll 123

-rwxrwxrwx 1 root root 0 Jan 16 14:03 123

[[email protected] lisi]# cp 123 91/    #直接复制过去则文件属性会发生改变

[[email protected] lisi]# ll 91/

total 0

-rwxr-xr-x 1 root root 0 Jan 16 14:08 123

-rw-r--r-- 1 root root 0 Jan 16 14:04 1.txt

[[email protected] lisi]# cp -p 123 91/   #加-p参数后文件属性不变

[[email protected] lisi]# ll 91

total 0

-rwxrwxrwx 1 root root 0 Jan 16 14:03 123

-rw-r--r-- 1 root root 0 Jan 16 14:04 1.txt

rm(remove)

删除文件或目录

-r递归

-f强制

查看rm帮助

[[email protected] ~]# rm --help

删除单个文件

[[email protected] ~]# rm 2.txt

rm: remove regular file `2.txt‘? y

-r删除51cto目录中的文件和目录

[[email protected] lisi]# ls 51cto/

1.txt  2.txt

[[email protected] lisi]# mv -r 51cto/*

mv: invalid option -- ‘r‘

Try `mv --help‘ for more information.

[[email protected] lisi]# rm -r 51cto/*

rm: remove regular empty file `51cto/1.txt‘? y

rm: remove regular empty file `51cto/2.txt‘? y

[[email protected] lisi]# ls

123  1.txt  2.txt  51cto  91

删除目录

[[email protected] lisi]# rm 51cto/

rm: cannot remove `51cto/‘: Is a directory

[[email protected] lisi]# rm -r 51cto/

rm: remove directory `51cto‘? y

-f强制删除,无提示

[[email protected] lisi]# ls 51cto/

123

[[email protected] lisi]# rm -f 51cto/123

mv(move)

移动文件或目录;重命名功能

查看mv帮助

[[email protected] lisi]# mv --help

把目录123移动到91下

[[email protected] lisi]# mv 1

123    1.txt

[[email protected] lisi]# mv 123 91/

mv: overwrite `91/123‘? y

[[email protected] lisi]# ls 91/

123  1.txt

把91/123重命名为91/456

[[email protected] lisi]# ls 91/

123  1.txt

[[email protected]earn lisi]# mv 91/123 91/456

[[email protected] lisi]# ls 91

1.txt  456

touch

改变文件的时间戳

最近一次访问时间(access time)

最近一次修改时间(modify time)  改变文件的内容;内容变元数据变

最近一次改变时间(change time) 元数据(文件名、大小、权限)的改变

通过stat命令查询文件3个时间(元数据)

[[email protected] lisi]# stat 1.txt

File: `1.txt‘

Size: 0          Blocks: 0          IO Block: 4096   regular empty file

Device: 802h/2050d Inode: 787306      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2017-01-16 14:13:43.566016527 +0800

Modify: 2017-01-16 14:13:43.566016527 +0800

Change: 2017-01-16 14:13:43.566016527 +0800

更改访问时间和改变时间

[[email protected] lisi]# touch homework

更改修改时间和改变时间

[[email protected] lisi]# touch -a 1.txt

[[email protected] lisi]# stat 1.txt

File: `1.txt‘

Size: 5          Blocks: 8          IO Block: 4096   regular file

Device: 802h/2050d Inode: 787306      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2017-01-17 17:13:42.939001409 +0800

Modify: 2017-01-17 17:13:16.254001264 +0800

Change: 2017-01-17 17:13:42.939001409 +0800

使用指定的时间更改修改时间

[[email protected] lisi]# touch -m 1.txt

[[email protected] lisi]# stat 1.txt

File: `1.txt‘

Size: 5          Blocks: 8          IO Block: 4096   regular file

Device: 802h/2050d Inode: 787306      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2017-01-17 17:13:42.939001409 +0800

Modify: 2017-01-17 17:13:57.920001327 +0800

Change: 2017-01-17 17:13:57.920001327 +0800

如果没有则创建文件,如果存在则更改三个时间

[[email protected] lisi]# touch -m -t 201611110930.12 1.txt

[[email protected] lisi]# stat 1.txt

File: `1.txt‘

Size: 5          Blocks: 8          IO Block: 4096   regular file

Device: 802h/2050d Inode: 787306      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2017-01-17 17:14:08.478001013 +0800

Modify: 2016-11-11 09:30:12.000000000 +0800

Change: 2017-01-17 17:21:07.863002188 +0800

如果文件不存在不创建

[[email protected] lisi]# touch -c hjhj

[[email protected] lisi]# ls

1.txt  2.txt  51cto  91  c  homework

file

可以查看文件类型

文件类型有ASCII ,  LSB(二进制)executable(可执行)

[[email protected] lisi]# file 1.txt

1.txt: ASCII text

[[email protected] lisi]# which cat

/bin/cat

[[email protected] lisi]# file /bin/cat   #二进制可执行文件

/bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

find

查找文件

按名称和文件类型查找

-name 按名称

-type 按文件类型

-o 或者

! 非(取反)

文件时间查找

-amin n 查找系统中最后n分钟访问的文件

-atime n 查找系统中最后n*24小时访问的文件

-cmin n 查找系统中最后n分钟被改变文件状态的文件

-ctime n 查找系统中最后n*24小时被改变文件状态的文件

-mmin n 查找系统中最后n分钟被改变文件数据的文件

-mmtime n 查找系统中最后n*24小时被改变文件数据的文件

+n表示此值之前; n表示此值; -n表示此值以内

例: +7表示7天后;7表示第7天;-7表示7天内

默认查找当前路径

[[email protected] ~]# find -name "*.txt"

./old.txt

默认查找列出当前路径下所有文件包含子目录内的文件

[[email protected] ~]# find

.

./.tcshrc

./install.log

./anaconda-ks.cfg

./.cshrc

./old.txt

./.bash_logout

./.ssh

./.ssh/authorized_keys

./c

./c/num.c

./c/a.c

./c/sum

./c/num

./.viminfo

./install.log.syslog

./.bash_profile

./.bashrc

./.bash_history

查找指定路径的文件

[[email protected] ~]# find /home -name "*.txt"

/home/lisi/2.txt

/home/lisi/91/1.txt

/home/lisi/1.txt

/home/vmware-tools-distrib/doc/open_source_licenses.txt

查找满足两个条件的文件  都满足

[[email protected] ~]# find /home -name "*.txt"  -name "*.h"

查找满足两个条件的文件 或者

[[email protected] ~]# find /home -name "*.txt" -o -name "*.h"

/home/lisi/2.txt

/home/lisi/91/1.txt

/home/lisi/1.txt

/home/vmware-tools-distrib/lib/include/vmci/vmci_sockets.h

/home/vmware-tools-distrib/doc/open_source_licenses.txt

除了某个条件的文件

[[email protected] ~]# find /home ! -name "*.txt"

查找/home目录中最近一天更改过的文件

[[email protected] ~]# find /home -mtime -1

/home

/home/123

查找/home目录中60分钟内(小于)修改过的文件

[[email protected] ~]# find /home -mmin -60

/home

/home/123

查找/home目录中60分钟以前(大于)更改过的文件

[[email protected] ~]# find /home -mmin +60

查找所属主(lisi)的文件

[[email protected] ~]# find /home -user lisi

/home/lisi

/home/lisi/.bash_logout

/home/lisi/.bash_profile

/home/lisi/.bashrc

/home/lisi/.bash_history

查找所属组(lisi)的文件

[[email protected] ~]# find /home -group lisi

/home/lisi

/home/lisi/.bash_logout

/home/lisi/.bash_profile

/home/lisi/.bashrc

/home/lisi/.bash_history

使用主id和组id查找文件

[[email protected] ~]# id lisi

uid=501(lisi) gid=501(lisi) groups=501(lisi)

[[email protected] ~]# find /home -uid 501

/home/lisi

/home/lisi/.bash_logout

/home/lisi/.bash_profile

/home/lisi/.bashrc

/home/lisi/.bash_history

[[email protected] ~]# find /home -gid 501

/home/lisi

/home/lisi/.bash_logout

/home/lisi/.bash_profile

/home/lisi/.bashrc

/home/lisi/.bash_history

按大小查找

查找空文件

[[email protected] ~]# find . -empty

./1

查找大于1M的文件

[[email protected] ~]# find /home -size +1M |xargs ls -lh

-rwxr-xr-x 1 root root 1.2M Feb 26  2016 /home/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libCommAmqpIntegration.so

-rwxr-xr-x 1 root root 2.8M Feb 26  2016 /home/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libFramework.so

-r-xr-xr-x 1 root root 1.6M Feb 26  2016 /home/vmware-tools-distrib/caf/usr/lib/vmware-caf/pme/lib/libglib-2.0.so.0.3400.3

查找小于1M的文件

[[email protected] ~]# find /home -size -1M |xargs ls -lh

-rw-r--r-- 1 root root 0 Jan 19 21:45 /home/123

-rw-r--r-- 1 root root 0 Jan 16 14:13 /home/lisi/2.txt

-rw-r--r-- 1 root root 0 Jan 16 14:04 /home/lisi/91/1.txt

-rwxrwxrwx 1 root root 0 Jan 17 09:19 /home/lisi/91/456

-rw-r--r-- 1 root root 0 Jan 17 17:14 /home/lisi/c

-rw-r--r-- 1 root root 0 Jan 17 17:14 /home/lisi/homework

-rw-r--r-- 1 root root 0 Feb 26  2016 /home/vmware-tools-distrib/etc/not_configured

文本查看命令

cat

显示文本文件内容单个或多个

-n 显示行号

-E 显示换行符

查看并显示当文件

[[email protected] ~]# cat old.txt

111

222

333

444

555i name is

i what

what is

查看并显示多个文件

[[email protected] ~]# cat old.txt oldboy.txt

111

222

333

444

555i name is

i what

what is

11111

显示文件内容行号

[[email protected] ~]# cat -n old.txt

1 111

2 222

3 333

4 444

5 555i name is

6 i what

7 what is

显示文件换行符

[[email protected] ~]# cat -E old.txt

111$

222$

333$

444$

555i name is$

i what $

what is$

tac

按行号逆向显示文本内容

[[email protected] ~]# tac old.txt

what is

i what

555i name is

444

333

222

111

more

分屏显示文本文件内容,从前往后翻;

b键往前翻一行,翻到文件的尾部显示结束则不能往前翻。

回车 往下翻一行;空格 往下翻一屏

less

分屏显示

向下翻一行   向下键或回车

向上翻一行   向上键

向下翻一屏   pgdn或空格键

向上翻一屏   pgup或b

查找功能     /或?

退出less命令  q

head

显示文本文件的前几行;默认是10行,可加参数定义需要的行数  -n 2

[[email protected] ~]# head old.txt

111

222

333

444

555i name is

i what

what is

[[email protected] ~]# head -2 old.txt

111

222

[[email protected] ~]# head -n 2 old.txt

111

222

tail

显示文本文件的后几行;默认是10行,可加参数定义需要的行数  -n 2

-f(follow) 一直(实时)跟踪 不再退出

默认显示

[[email protected] ~]# tail /etc/passwd

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

abrt:x:173:173::/etc/abrt:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

li:x:500:500::/home/li:/bin/bash

lisi:x:501:501::/home/lisi:/bin/bash

显示2行

[[email protected] ~]# tail -2 /etc/passwd

li:x:500:500::/home/li:/bin/bash

lisi:x:501:501::/home/lisi:/bin/bash

[[email protected] ~]# tail -n 2 /etc/passwd

li:x:500:500::/home/li:/bin/bash

lisi:x:501:501::/home/lisi:/bin/bash

实时显示(一直跟踪)

[[email protected] ~]# tail -f /etc/passwd

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

abrt:x:173:173::/etc/abrt:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

li:x:500:500::/home/li:/bin/bash

lisi:x:501:501::/home/lisi:/bin/bash

文本编辑器

vi 或vim

nano

winscp

文本操作命令

按照我们想要的格式显示文件内容,可以对文件内容进行过滤、改变样式输出。

cut(切开)

将文件使用指定的字符切开,显示我们想要的

使用冒号分割passwd文件,显示第1,3至5列

tr(translate翻译、转化)

能把文件中指定的字符进行替换,该命令后面只能使用标准输入重定向

使用A替换passwd文件中的a字符

[[email protected] ~]# tr ‘a‘ ‘A‘ <passwd

root:x:0:0:root:/root:/bin/bAsh

删除passwd文件中的:字符

[[email protected] ~]# tr -d ‘:‘ <passwd

rootx00root/root/bin/bash

binx11bin/bin/sbin/nologin

删除passwd文件中的空格,原理同上。

显示passwd文件中后2行,并以:号分割取1,5列,替换:号为空格

[[email protected] ~]# tail -2 passwd |cut -d: -f 1,3 |tr ":" " "

li 500

lisi 501

wc(word count)

字数统计,可以统计文件的行数、单词数量、字符数量

-l统计行数

-w统计单词数

-c统计字符数量(包含空格)

统计行数、单词数、字符数

[[email protected] ~]# wc passwd

26   35 1126 passwd

统计行数

[[email protected] ~]# wc -l passwd

26 passwd

统计单词数

[[email protected] ~]# wc -w passwd

35 passwd

统计字符数

[[email protected] ~]# wc -c passwd

1126 passwd

利用分割命令显示指定分割数

[[email protected] ~]# wc -c passwd |cut -d ‘ ‘ -f 1

1126

[[email protected] ~]# wc -c passwd |cut -d ‘ ‘ -f 2

passwd

[[email protected] ~]# wc -c passwd |cut -d ‘ ‘ -f 3

sort

对文件中的行进行排序(默认按字符(a-z)排序(生序))

-r 反转(z-a)排序(降序)

-t 指定分割符

-k 指定列

-u 去重

-n 按数值排序

-f 忽略大小写

把users文件的行进行排序输出(升序)

[[email protected] ~]# sort users

jia aa 33

li bb 12

wang bb 23

zhang aa 12

把users文件的行进行排序输出(降序)

[[email protected] ~]# sort -r users

zhang aa 12

wang bb 23

li bb 12

jia aa 33

使用空格把users文件分割 使用第3列排序

[[email protected] ~]# sort -t ‘ ‘ -k 3 users

li bb 12

zhang aa 12

wang bb 23

jia aa 33

使用空格把users文件分割 使用第3列排序 去掉重复行

[[email protected] ~]# sort -t ‘ ‘ -k 3 -u users

zhang aa 12

wang bb 23

jia aa 33

按数值排序

[[email protected] ~]# sort -t‘ ‘ -k3 -n users

bin aa 9

li bb 12

zhang aa 12

wang bb 23

jia aa 33

uniq(unique)

唯一的意思;针对文本中的连续的重复行进行操作

-d 只显示重复的行

-D 显示全部重复的行

-c 显示重复次数

不显示重复行

[[email protected] ~]# uniq uniqtest

zhang aa 12

wang bb 11

li bb 11

zhang aa 12

li bb 11

只显示重复的行

[[email protected] ~]# uniq -d uniqtest

zhang aa 12

li bb 11

显示全部重复的行

[[email protected] ~]# uniq -D uniqtest

zhang aa 12

zhang aa 12

zhang aa 12

li bb 11

li bb 11

显示重复次数

[[email protected] ~]# uniq -c uniqtest

3 zhang aa 12

1 wang bb 11

1 li bb 11

1 zhang aa 12

2 li bb 11

1

grep

grep(global re printing)全局搜索正则表达式并将搜索到的行打印出来

re(regular expression)正则表达式,由一些元字符和其他组成的表达式;元字符是由特定意义的字符并不代表这个字符本身。

文本过滤工具能够根据指定的正则表达式逐行扫描文件的内容,只要行中有满足正则表达式的内容则整行被显示。

re

basic re  基本正则表达式

extended re 扩展正则表达式

1) grep命令语法

grep[option]...‘re‘ file...

-v 显示不匹配的行

-i 不区分大小写

-o 只显示匹配的字符串

-A# 显示找到的行以及后面的行 #表示数字

-B# 显示找到的行以及前面的行 #表示数字

-C# 显示找到的行以及前后的行 #表示数字

-E 表示后面的表达式是扩展的正则表达式

--color=auto 将匹配的字符串改变颜色显示

显示匹配的行

[[email protected] ~]# grep ‘cpu‘ /proc/cpuinfo

cpu family : 6

cpu MHz : 2600.069

cpu cores : 1

cpuid level : 13

显示匹配行进行取反

[[email protected] ~]# grep -v ‘cpu‘ /proc/cpuinfo

processor : 0

vendor_id : GenuineIntel

model : 60

model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz

stepping : 3

microcode : 28

cache size : 3072 KB

physical id : 0

siblings : 1

core id : 0

apicid : 0

initial apicid : 0

fpu : yes

fpu_exception : yes

wp : yes

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts fsgsbase smep

bogomips : 5200.13

clflush size : 64

cache_alignment : 64

address sizes : 40 bits physical, 48 bits virtual

power management:

显示匹配行并将匹配的字符加色

[[email protected] ~]# grep ‘cpu‘ --color=auto /proc/cpuinfo

cpu family : 6

cpu MHz : 2600.069

cpu cores : 1

cpuid level : 13

[[email protected] ~]# grep ‘cpu‘ --color=auto -o /proc/cpuinfo

cpu

cpu

cpu

cpu

显示匹配行不区分大小写并显示颜色

[[email protected] ~]# grep ‘cpu‘ --color=auto -i /proc/cpuinfo

cpu family : 6

model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz

cpu MHz : 2600.069

cpu cores : 1

cpuid level : 13

显示匹配行以及后一行

[[email protected] ~]# grep ‘cpu‘ --color=auto -A1 /proc/cpuinfo

cpu family : 6

model : 60

--

cpu MHz : 2600.069

cache size : 3072 KB

--

cpu cores : 1

apicid : 0

--

cpuid level : 13

wp : yes

显示匹配行以及后两行

[[email protected] ~]# grep ‘cpu‘ --color=auto -A2 /proc/cpuinfo

cpu family : 6

model : 60

model name : Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz

--

cpu MHz : 2600.069

cache size : 3072 KB

physical id : 0

--

cpu cores : 1

apicid : 0

initial apicid : 0

--

cpuid level : 13

wp : yes

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc up arch_perfmon pebs bts xtopology tsc_reliable nonstop_tsc aperfmperf unfair_spinlock pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm ida arat epb pln pts dts fsgsbase smep

显示匹配行以及前一行

[[email protected] ~]# grep ‘cpu‘ --color=auto -B1 /proc/cpuinfo

vendor_id : GenuineIntel

cpu family : 6

--

microcode : 28

cpu MHz : 2600.069

--

core id : 0

cpu cores : 1

--

fpu_exception : yes

cpuid level : 13

显示匹配行以及前后一行

[[email protected] ~]# grep ‘cpu‘ --color=auto -C1 /proc/cpuinfo

vendor_id : GenuineIntel

cpu family : 6

model : 60

--

microcode : 28

cpu MHz : 2600.069

cache size : 3072 KB

--

core id : 0

cpu cores : 1

apicid : 0

--

fpu_exception : yes

cpuid level : 13

wp : yes

将命令结果通过管道匹配相关行

[[email protected] ~]# ifconfig |grep ‘addr‘

eth0      Link encap:Ethernet  HWaddr 00:0C:29:41:FA:11

inet addr:192.168.99.189  Bcast:192.168.99.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe41:fa11/64 Scope:Link

eth1      Link encap:Ethernet  HWaddr 00:0C:29:41:FA:1B

inet addr:192.168.10.100  Bcast:192.168.10.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe41:fa1b/64 Scope:Link

inet addr:127.0.0.1  Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

基本正则表达式

文件名通配符

*代表任意长度任意字符

?代表任意单个字符

[]指定范围内的任意单个字符

[^]指定范围外的任意当字符

1) 正则表达式的元字符

.匹配任意单个字符

[]匹配指定范围内的任意单个字符

[^]匹配指定范围外的任意单个字符

.*任意长度任意字符

匹配任意单个字符

[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘a.c‘ --color=auto

a2c a3c abc adb bad

[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘[a.c]‘ --color=auto

a2c a3c abc adb bad

匹配指定范围内的任意单个字符

[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘[a]‘ --color=auto

a2c a3c abc adb bad

[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘a[a-z]c‘ --color=auto

a2c a3c abc adb bad

匹配指定范围外的任意单个字符

[[email protected] ~]# echo ‘a2c a3c abc adb bad‘ |grep ‘a[^a-z]c‘ --color=auto

a2c a3c abc adb bad

匹配任意长度任意字符

[[email protected] ~]# echo ‘ac asc assc asssc asdc‘ |grep ‘a.*c‘ --color=auto

ac asc assc asssc asdc

7) 匹配次数

* 匹配前一个字符0次1次或多次  写法:ab*c   ac abc abbc abbdc

\? 匹配前一个字符0次或1次  写法:ab\?c  ac abc abbc

\{m,n\} 匹配前一个字符最少m次,最多n次

\{0,n\} 最多n次

\{m\} 最少m次

as\{0,2\}c  ac asc assc asssc asdc

匹配前一个字符0次或多次

[[email protected] ~]# echo ‘ac abc abbc abbdc abbbc‘ |grep ‘ab*c‘ --color=auto

ac abc abbc abbdc abbbc

匹配前一个字符0次或1次

[[email protected] ~]# echo ‘ac abc abbc‘ |grep ‘ab\?c‘ --color=auto

ac abc abbc

匹配最少0次最多2次

[[email protected] ~]# echo ‘ac asc assc asssc asdc‘ |grep ‘as\{0,2\}c‘ --color=auto

ac asc assc asssc asdc

[[email protected] ~]# echo ‘ac asc assc asssc asdc‘ |grep ‘a[a-z]\{0,2\}c‘ --color=auto

ac asc assc asssc asdc

8) 分组匹配

\(\)实现分组匹配

连续引用

[[email protected] ~]# echo ‘91abcabcabcabc51 fdsfsf‘ |grep ‘91\(abc\)*51‘ --color=auto

91abcabcabcabc51 fdsfsf

[[email protected] ~]# echo ‘91abcabcabcabc51 fdsfsf‘ |grep ‘91\(abc\)\{4\}51‘ --color=auto

91abcabcabcabc51 fdsfsf

[[email protected] ~]# echo ‘91abcabcabcabc51 91abcabcabc51 fdsfsf‘ |grep ‘91\(abc\)\{0,4\}51‘ --color=auto

91abcabcabcabc51 91abcabcabc51 fdsfsf

不连续引用

[[email protected] ~]# cat 123

zhangsan,math=good,english=bad

han,math=good,english=good

yixiu,math=bad,english=good

xiaomo,math=bad,english=bad,music=good,geography=good

yuan,math=good,english=bad,music=good,geography=good

[[email protected] ~]# grep ‘.*,math=\(.*\),english=\1‘ 123 --color=auto

han,math=good,english=good

xiaomo,math=bad,english=bad,music=good,geography=good

向后引用;

前后取值一致,前面括号内正则的值通过数字(用数字表示第几个括号)取值到后面。

[[email protected] ~]# grep ‘.*,math=\(.*\),english=\1,music=\(good\),geography=\2‘ 123 --color=auto

xiaomo,math=bad,english=bad,music=good,geography=good

9) 锚定符

\< 锚定词首

\> 锚定词尾

\<  \> 锚定单词

[[email protected] ~]# grep ‘\<r..t‘ --color=auto t1

root chroot rooter

this is root

[[email protected] ~]# grep ‘r..t\>‘ --color=auto t1

root chroot rooter

this is root

[[email protected] ~]# grep ‘\<r..t\>‘ --color=auto t1

root chroot rooter

this is root

^ 锚定行首

$ 锚定行尾

匹配行首为空一个或多个后面是root开始的行

[[email protected] ~]# grep ‘^[[:space:]]*root‘ --color=auto t1

root chroot rooter

匹配r任意字符t结尾的行

[[email protected] ~]# grep ‘r..t$‘ --color=auto t1

root chroot rooter root

匹配标点字符(punct)结尾的行

[[email protected] ~]# grep ‘root[[:punct:]]\?$‘ --color=auto t1

root chroot rooter root

this is root.

[[email protected] ~]# grep ‘root[[:punct:]]\{1\}$‘ --color=auto t1

this is root.

[[email protected] ~]# grep ‘root[[:punct:]]‘ --color=auto t1

this is root.

10) POSIX定义了一些只能在正则表达式中使用的字符类

alnum 字母和数字

alpha 字母

blank 仅表示空格或制表符

cntrl 控制字符

digit 十进制数

graph 打印字符,不包含空格

lower 小写字母

print 打印字符,包括空格

punct 打印字符,不包含字母和数字。

space 空白

upper 大写字母

xdigit 十六进制数

11) 练习题

1.找出ifconfig命令结果中1-255之间的数字。

[[email protected] ~]# ifconfig eth0|grep ‘[1-9]\{1,3\}‘ --color=auto -o |xargs

29 41 11 192 168 99 189 192 168 99 255 255 255 255 6 8 2 29 41 11 64 15 1 211 31 1 662 1 221 679 21 25 751 6 2 3

2.找出ifconfig命令结果中的ip地址。

[[email protected] ~]# ifconfig eth0|grep ‘\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}‘ --color=auto -o

192.168.99.189

192.168.99.255

255.255.255.0

3.分析文件rc  找出第4位字符数值和最后一位字符数值一样的行

[[email protected] ~]# cat rc

L1:1:wait:/etc/rc.d/rc 1

L3:3:wait:/etc/rc.d/rc 3

L1:1:wait:/etc/rc.d/rc 3

L3:1:wait:/etc/rc.d/rc 3

[[email protected] ~]# grep ‘L.:\(.\).*\1‘ rc

L1:1:wait:/etc/rc.d/rc 1

L3:3:wait:/etc/rc.d/rc 3

4.找出当前系统上名字为li的用户账户相关信息/etc/passwd,注意不要找到lisi或li1这样的用户

[[email protected] ~]# grep ‘^li:‘ /etc/passwd

li:x:500:500::/home/li:/bin/bash

扩展正则表达式

1) 元字符

.匹配任意单个字符

[]匹配指定范围内的任意单个字符

[^]匹配指定范围外的任意单个字符

12) 匹配次数

* 匹配前一个字符0次1次或多次

\? 匹配前一个字符0次或1次

新增

+至少匹配一次

[[email protected] ~]# echo "rooteeeeer" |egrep ‘ro+te*‘ --color

rooteeeeer

{m,n}括号前不需要转义字符\

[[email protected] ~]# echo ‘rooteeeeer‘ |egrep ‘e{2,6}‘ --color

rooteeeeer

[[email protected] ~]# echo ‘rooteeeeer‘ |egrep ‘ro+te{2,6}‘ --color

rooteeeeer

13) 锚定符

^ 锚定行首

$ 锚定行尾

新增

\< or \b 锚定词首

\> or \b 锚定词尾

[[email protected] ~]# echo ‘chroot root rooter123‘ |egrep ‘\bro+ter[[:digit:]]*\b‘ --color

chroot root rooter123

14) 或者

| 如abc|wer

[[email protected] ~]# echo ‘abcde abwde abc wde‘ |egrep ‘abc|wde‘ --color

abcde abwde abc wde

[[email protected] ~]# echo ‘abcde abwde abc wde‘ |egrep ‘ab(c|w)de‘ --color

abcde abwde abc wde

15) 分组

( )分组不用转义字符\

[[email protected] ~]# echo ‘a=10b=20c=10d=20‘ |egrep ‘a=(..)b=(..)c=\1d=\2‘ --color

a=10b=20c=10d=20

[[email protected] ~]# echo ‘a=10b=20c=10d=20‘ |egrep ‘a=(..)b=(..)c=\1‘ --color

a=10b=20c=10d=20

[[email protected] ~]# echo ‘a=10b=20c=10d=20‘ |grep -E ‘a=(..)b=(..)c=\1‘ --color

a=10b=20c=10d=20

16) fgrep

不解析正则表达式直接搜索文本

[[email protected] ~]# echo ‘abcfr123a{1,2}wde‘ |fgrep ‘wde‘ --color

abcfr123a{1,2}wde

[[email protected] ~]# echo ‘abcfr123a{1,2}wde‘ |fgrep ‘abc‘ --color

abcfr123a{1,2}wde

17) 写正则表达式需要注意的两点

1. 转义字符\

[[email protected] ~]# echo ‘91xueit\(han\)*51cto‘ |grep ‘91xueit\(han\)*51cto‘ --color

[[email protected] ~]# echo ‘91xueit\(han\)*51cto‘ |grep ‘91xueit\\(han\\)\*51cto‘ --color

91xueit\(han\)*51cto

将正则表达式中元字符转换成字符本身

2. 如果正则表达式中有命令替换,正则表达式只能使用" " 弱引用

如果正则表示式中没命令替换,可以使用 ‘ ‘ 强引用 " " 弱引用

[[email protected] ~]# echo ‘abc/root123‘ |grep ‘abc$(pwd)123‘ --color

[[email protected] ~]# echo ‘abc/root123‘ |grep "abc$(pwd)123" --color

abc/root123

关机命令shutdown,halt,poweroff

提示所有终端要进行关机操作

shutdown -c 取消关机操作

shutdown -r 重启

shutdown -r now现在重启

shutdown +5 过5分钟关机

shutdown -h 02:23 & 后台运行在2点23分关机

shutdown -r 02:23 & 后台运行在2点23分重启

日常使用shutdown命令关机,此命名有提示其他终端。其他两个命令无提示。

时间命令

cal

日历

[[email protected] ~]# cal

February 2017

Su Mo Tu We Th Fr Sa

1  2  3  4

5  6  7  8  9 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28

date

显示系统时间

-s 设置系统时间

[[email protected] ~]# date -s ‘2017/02/04 21:27‘

Sat Feb  4 21:27:00 CST 2017

hwclock

查看主板时间

[[email protected] ~]# hwclock

Sat 04 Feb 2017 09:26:19 PM CST  -0.798354 seconds

-w将系统时间写入主板时间

[[email protected] ~]# hwclock -w

[[email protected] ~]# hwclock

Sat 04 Feb 2017 09:27:19 PM CST  -0.768415 seconds

时间: 2024-11-06 22:37:46

linux基础入门之文件管理类命令的相关文章

Linux基础之文件查看类命令

文件查看类命令:cat, tac, head, tail, more, less 分屏查看命令:more和less more命令: more FILE 特点:翻屏至文件尾部后自动退出: less命令: less FILE head命令: 查看文件的前n行: head [options] FILE -n # -# tail命令: 查看文件的后n行: tail [options] FILE -n # -# -f:查看文件尾部内容结束后不退出,跟随显示新增的行: stat命令: stat - disp

[鸟哥linux视频教程整理]03_02_Linux文件管理类命令及bash特性详解

一.文本排序 sort  默认不是按照数值大小进行排序,是按ACIIS表进行排序. -n:按数值大小进行排序: -r:降序排序 -t:字段分隔符 -k:以哪个字段为关键字进行排序 [[email protected] ~]# sort -t: -k3 -n /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin -u:排序后相同的行只显示一次 -f:排序时忽略字符大小写 uniq: 不相邻的相同行不

[鸟哥linux视频教程整理]03_01_Linux文件管理类命令详解续3

一.查看文本: cat:连接并显示  tac:反向显示文本内容 -n:显示行号 -E:显示每一行的行结束符 注:对于Linux系统而言,所有的文本文件的每一行的行结束符是$.windows系统的结束符            有两个:$和换行符. 二.分屏显示: more:只支持向后翻,翻到最后一屏退出. less:同man一样 SPACE: B: ENTER: K: 三.head.tail head -n 查看前n行 tail -n: 查看后n行 -f:查看文件尾部然后不退出,等待显示后续追加至

linux文件管理类命令汇总及通配的几个事例

linux文件管理类命令汇总 1.文本文件查看类命令:cat,tac,more,less,tail,head cat(tac): 正向(反向)显示 cat [OPTION]... [FILE]...                -E:显示行结束符$ -n:对显示出的每一行进行编号 more [OPTIONS...] FILE... 特点:翻屏至文件尾部后自动退出; -d:显示翻页及退出提示 space:向下翻页                        Enter:向下翻一行 b,ctrl

linux文件管理类命令,类型,用户的权限管理及bash shell的特性:命令别名,文件名通配

文件管理类命令 ls 查看 :cat tac more less head tail 复制:cp -r:递归 -i:提示,交互 -f:强制覆盖 -a :保留所有文件信息 -d:当源为链接文件时,复制链接本身,而非源文件 -p:保持原有属性 删除 : rm 删除非空目录 rm -rf 移动 : mv 创建 : touch 用来修改时间戳,创建空文件 -c:不创建新文件,只修改时间戳 -a:仅修改访问时间 -m:修改修改时间 -t:指定时间戳 先加-m再加-t后跟时间 元数据属性:stat 显示文件

Linux上的文件管理类命令

1.Linux上的文件管理类命令都有哪些,其常用的方法及其相关示例演示: 命令格式:命令   -选项     参数 文件处理命令 Ls 功能:查看目录下文件的详细信息 语法:ls 选项[-ald] [文件或目录] -a显示所有文件,包括隐藏文件 -l 详细信息显示 -d 查看目录属性 演示: [[email protected] mytest1]# ls p23b p2e [[email protected] mytest]# ll total 0 drwxr-xr-x. 2 root root

linux文件管理类命令汇总(用法与选项)

1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 一.文件权限管理类命令 chown:改变文件所有者 chown [OPTION]... [OWNER][:[GROUP]] FILE... 常用参数 -R:递归修改(改目录就改目录中的目录及文件) 示例:# chown -R root /tmp/issue # chown -R root:root /tmp/issue chown [OPTION]... --reference=RFILE FILE... 示例:# c

6.Linux目录和文件管理类命令

bash特性之命令别名和命令引用:命令别名:命令的另外一个名字windows中清屏使用 clsLinux下的清屏命令为clear    alias:用来定义命令别名的    alias 不跟选项和参数时,显示系统上所有的命令别名    alias ALIAS=COMMANDNAME       alias - define or display aliases SYNOPSIS       alias [alias-name[=string] ...]    [[email protected]

Linux系统下的文件管理类常命令及使用方式

Linux上的文件管理类命令有哪些,常用的使用方式 文件系统操作命令分为:目录操作命令.文件操作命令.权限操作命令 目录操作命令: ls 列出目录的属性信息 pwd 列出用户当前所处目录路径 du 列出目录占用磁盘空间大小 cd 改变用户的当前目录 mkdir 建立一个新目录 rmdir 删除一个目录及其中的文件 文件操作命令 df 用于报告文件系统的总容量,使用量,剩余量. find 在指定路径找文件 whereis 查找一个命令相关信息放在那 grep 在指定文件中查找指定的字符串 cat