Linux日常管理类命令

命令和选项

command [options] [arguments]

选项

    短选项 –h –l –a

    短选项可以组合  -hla

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

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

      长选项 --help , --list

      长选项 不能组合

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

扫描二维码关注公众号,回复: 5141530 查看本文章

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

   ls /root

   cat /etc/passwd

  命令帮助

     内部命令

     Help command

     外部命令

     command –help

目录管理

cd

change directory

返回到用户主目录

[root@WebServer tmp]# cd

[root@WebServer ~]# cd /tmp

[root@WebServer tmp]# cd ~

返回到其他用户的主目录

[root@WebServer ~]# cd ~hanlihui

当前路径和上一个路径来回切换

[root@WebServer hanlihui]# cd -

/root

[root@WebServer ~]# cd -

/home/hanlihui

[root@WebServer hanlihui]# cd -

/root

当前路径和上一个路径保存在这两个变量中

[root@WebServer ~]# echo $PWD

/root

[root@WebServer ~]# echo $OLDPWD

/home/hanlihui

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

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

.. 上级目录

. 代表当前目录

ls

list 列出文件夹中的内容 文件 文件夹

-a 列出目录中全部文件和目录 包括隐藏文件

-l 长格式显示

-R 递归显示

-d 只显示目录本身一些属性

-r 逆序排序输出

mkdir

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

-v, --verbose         每次创建新目录都显示信息

[root@WebServer ~]# mkdir /tmp/homework/zhang -pv

rmdir

只能删除空文件夹

-p, --parents         删除指定目录及其上级文件夹

-v, --verbose         输出处理的目录详情

tree

显示目录结构

[root@WebServer /]# mkdir /mnt/cdrom

[root@WebServer /]# mount /dev/cdrom /mnt/cdrom/

[root@WebServer /]# find /mnt/cdrom/Packages/ -name "tree*"

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

[root@WebServer /]# rpm -i /mnt/cdrom/Packages/tree-1.5.3-2.el6.x86_64.rpm

[root@WebServer /]# tree /abc

文件管理

Linux文件类型

1.普通文件   标识 -  f

2.目录文件   标识 d

3.链接文件  

      软链接 标识 l

      硬链接  标识 -

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

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

     字符设备 有前后顺          标识 c

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

6.命名管道 pipe 标识 p

cp

copy 拷贝文件

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

[root@WebServer ~]# cp /91xueit/teacher.txt 51cto/

拷贝过程指定目标文件名称

[root@WebServer ~]# cp /91xueit/teacher.txt 51cto/teacher1.txt

[root@WebServer ~]# cp 51cto/teacher.txt 51cto/teacher1.txt /tmp

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

[root@WebServer ~]# cp 51cto/*.txt .

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

[root@WebServer ~]# cp -R 51cto/ /tmp

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

[root@WebServer ~]# cp -p /home/hanlihui/hanlihui.txt 51cto/

-d 保留文件的链接属性

-a 保留所有属性

rm

remove 删除

查看rm帮助

[root@WebServer ~]# rm –help

删除单个文件

[root@WebServer ~]# rm 51cto/teacher.txt

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

[root@WebServer ~]# rm -r 51cto/*

删除51cto目录

[root@WebServer ~]# rm -r 51cto

-f 强制删除 没有提示

[root@WebServer ~]# rm -f /tmp/123

mv

move 移动文件 或 文件夹

mv命令帮助

[root@WebServer ~]# mv --help

把当前目录123 移动到/91xueit 目标文件名123

[root@WebServer ~]# mv 123 /91xueit/

将当前目录中a打头的文件 移动到/91xueit/

[root@WebServer ~]# mv a* /91xueit/

把b文件移动到 91xueit/改名为b2

[root@WebServer ~]# mv b 91xueit/b2

移动文件 目标文件夹中有重名 提示是否覆盖

[root@WebServer ~]# mv 123 /91xueit/

mv:是否覆盖"/91xueit/123"? y

将/91xueit目录移动到当前目录

[root@WebServer ~]# mv /91xueit/ .

touch

能够改变文件的时间戳

最近一次访问时间

最近一次修改时间  改变文件的内容 内容变化 元数据 也会变化

最近一次改变时间  元数据 文件名 大小 权限

查看文件的元数据

[root@WebServer ~]# stat teacher2.txt

更改文件的三个时间 默认是系统当前时间

[root@WebServer ~]# touch teacher2.txt

更改访问时间和改变时间

[root@WebServer ~]# touch -a teacher2.txt

更改修改时间和改变时间

[root@WebServer ~]# touch -m teacher2.txt

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

[root@WebServer ~]# touch -m -t 201407081326.12 teacher2.txt

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

[root@WebServer ~]# touch homework

如果文件不存在 不创建

[root@WebServer ~]# touch -c hanligang

file

可以查看文件类型

find

按名称和文件类型查找

默认查找当前目录

[root@WebServer ~]# find -name 'tea*'

[root@WebServer ~]# find -name "tea*"

查找指定路径的文件

[root@WebServer ~]# find /tmp -name "tea*"

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

[root@WebServer ~]# find /tmp -name "a*" -type f  

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

[root@WebServer ~]# find /tmp -name "tea*" -o -name "a*"

除了某个条件的文件

[root@WebServer ~]# find /tmp -name "a*" ! -type f

文件时间查找

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

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

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

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

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

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

+n –n

查找/home文件夹中 最近一天更改过文件

[root@WebServer ~]# find /home -mtime -1

查找/home文件夹中 60分钟内修改过的文件

[root@WebServer ~]# find /home -mmin -60

查找/home文件夹中 60分钟以前更改过的文件

[root@WebServer ~]# find /home -mmin +60

按文件属主和属组查找

按属主查找

[root@WebServer ~]# find /home -user hanlihui

按属组查找

[root@WebServer ~]# find /home -group hanlihui

查看当前用户的id

[root@WebServer ~]# id

uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

查看指定用户的id

[root@WebServer ~]# id hanlihui

使用uid和gid查找文件

[root@WebServer ~]# find /home -uid 503

[root@WebServer ~]# find /home -gid 503

按大小查找

[root@WebServer ~]# find . -empty

查找小于512k的文件

[root@WebServer ~]# find /root/ -size -512k

查找大于512K的文件

[root@WebServer ~]# find /root/ -size +512k

文本查看命令

cat

可以显示文本文件的内容 可以同时显示多个文本文件的内容

[root@WebServer ~]# cat -n teacher.txt abc

     1  dfasdfadsf

     2  aaaaaaaaaaaaaaaaa

     3  bbbbbbbbbbbbbbbbbtac

tac

按行号逆向显示文本内容

more

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

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

回车 往下翻一行

空格 往下翻一屏

more /etc/passwd

less

分屏显示

向下翻一行 向下键 回车

向上翻一行 向上键

向下翻一屏 pgdn 空格键

向上翻一屏 pgup

/vir

?vir

:q退出less命令

head

显示文本文件的前几行 默认显示前10行

[root@WebServer ~]# head -n 2 /etc/passwd

[root@WebServer ~]# head -2 /etc/passwd 

tail

显示文本文件的后几行 默认显示后10行

[root@WebServer ~]# tail -n 2 /etc/passwd

[root@WebServer ~]# tail -2 /etc/passwd 

-f  follow 一直跟踪 不再退出 ctrl+c结束

文本编辑器

vi

可以打开文件进行编辑 创建文件进行编辑

[root@WebServer ~]# vi test1

输入i  变为插入模式 编辑内容

esc 退出插入模式

:wq 写入退出

:w 保存

:q! 不保存退出

nano

安装nano

[root@WebServer ~]# mkdir /mnt/cdrom

[root@WebServer ~]# mount /dev/cdrom /mnt/cdrom/

 [root@WebServer ~]# cd /mnt/cdrom/Packages/

[root@WebServer Packages]# find -name 'nano*'

./nano-2.0.9-7.el6.x86_64.rpm

[root@WebServer Packages]# rpm -i nano-2.0.9-7.el6.x86_64.rpm

使用nano创建并编辑文件test

[root@WebServer ~]# nano test

winSCP

WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。

文本操作命令

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

cut

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

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

[root@WebServer ~]# cut -d: -f 1,3-5 /etc/passwd

使用空格分割文件 显示1-2列 将标准输出重定向到新的文件

[root@WebServer ~]# cut -d' ' -f 1-2 users >user2

使用e字符分割文件 取第1列

[root@WebServer ~]# cut -de -f 1 users 

tr

translate  翻译 转化  能够把文件中指定的字符进行替换

该命令后面只能使用标准输入重定向

使用A替换users文件中的e字符

[root@WebServer ~]# tr 'e' 'A' < users

删除users文件中的空格

[root@WebServer ~]# tr -d ' ' < users

删除users文件中的a字符

[root@WebServer ~]# tr -d 'a' < users

[root@WebServer ~]# tail -2 /etc/passwd | cut -d: -f 1,5 | tr ':' ' '

wc

word count 字数统计 可以统计文件的行数 单词数 字符数量

-l 只统计行数

-w 统计单词数

-c 统计字符数量

[root@WebServer ~]# wc users

 4 12 63 users

[root@WebServer ~]# wc -l users

4 users

[root@WebServer ~]# wc -w users

12 users

[root@WebServer ~]# wc -c users

63 users

[root@WebServer ~]# wc -wc users

12 63 users

[root@WebServer ~]# wc -lwc users

 4 12 63 users

[root@WebServer ~]# wc -c users | cut -d' ' -f 1

sort

对文本中的行进行排序

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

[root@WebServer ~]# sort users

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

[root@WebServer ~]# sort -r users

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

[root@WebServer ~]# sort -t" " -k3 users

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

[root@WebServer ~]# sort -t" " -k3 -u users

按数值排序 而不是按字符排序

[root@WebServer ~]# sort -t" " -k3 -n users

uniq

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

连续重复的行只显示一行

[root@WebServer ~]# uniq uniqtest

只显示重复的行

[root@WebServer ~]# uniq -d uniqtest

显示全部重复的行

[root@WebServer ~]# uniq -D uniqtest 

显示重复次数

[root@WebServer ~]# uniq -c uniqtest

grep

Global RE Printing 全局搜索正则表达式 并将搜索到的行打印出来

RE Regular Expression 正则表达式 由一些元字符和其他组成的表达式 元字符是由特定意义的字符 并不代表这个字符本身

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

RE

  Basic RE 基本正则表达式

  Extended RE 扩展正则表达式

grep命令语法

grep [optin]… ‘正则表达式’ file…

-v 显示不匹配的行

-i 不区分大小写

-o 只显示匹配的串

-A# 显示找到的行以及后面的行 # 1 2 3…

-B# 显示找到的行以及前面的行 #1 2 3…

-C# 显示找到的行以及前后的行 #1 2 3…

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

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

[root@WebServer ~]# grep 'cpu' /proc/cpuinfo

[root@WebServer ~]# grep -v 'cpu' /proc/cpuinfo          

[root@WebServer ~]# grep 'cpu' --color=auto /proc/cpuinfo

[root@WebServer ~]# grep 'cpu' --color=auto -o /proc/cpuinfo

[root@WebServer ~]# grep 'cpu' --color=auto -i /proc/cpuinfo

[root@WebServer ~]# grep 'cpu' --color=auto -B1 /proc/cpuinfo

[root@WebServer ~]# grep 'cpu' --color=auto -A1 /proc/cpuinfo

[root@WebServer ~]# grep 'cpu' --color=auto -C1 /proc/cpuinfo

[root@WebServer ~]# ifconfig | grep 'addr'

基本正则表达式

文件名通配符

* 代表任意长度任意字符

?代表任意单个字符

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

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

正则表达式的元字符

. 匹配任意单个字符

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

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

任意长度任意字符 ……………..

匹配次数

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

[root@WebServer ~]# echo 'ac abc abbc abbbc abbdc' | grep 'ab*c' --color=auto

ac abc abbc abbbc abbdc

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

[root@WebServer ~]# echo 'ac abc abbc' | grep 'ab\?c' --color=auto

ac abc abbc

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

     \{0,n\} 最多n次

     \{m\}  最少m次

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

[root@WebServer ~]# echo 'ac asc assc asssc asbc' | grep 'as\{0,2\}c' --color=auto

ac asc assc asssc asbc

[root@WebServer ~]# echo 'ac asc assc asssc asbc' | grep 'as\{2,3\}c' --color=auto

ac asc assc asssc asbc

[root@WebServer ~]# echo 'ac asc assc asssc asbc' | grep 'a[a-z]\{0,2\}c' --color=auto

ac asc assc asssc asbc

任意长度任意字符

.*

[root@WebServer ~]# echo 'ac asc assc asssc ase233bc' | grep 'a.*c' --color=auto

ac asc assc asssc ase233bc

分组匹配

91xueithanhanhanhan51cto

‘91xueit\(han\)*51cto’

[root@WebServer ~]# echo '91xueithanhanhanhan51cto sdfasdfdf' | grep '91xueit\(han\)*51cto' --color=auto

91xueithanhanhanhan51cto sdfasdfdf

zhangsan,math=good,english=band

hanligang,math=good,english=good

yixiu,math=bad,english=good

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

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

向后引用

[root@WebServer ~]# grep '.*,math=\(.*\),english=\1' student --color

hanligang,math=good,english=good

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

[root@WebServer ~]# grep '.*,math=\(.*\),english=\1,music=\(.*\),geography=\2' student --color

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

锚定符

\<  锚定词首

\>  锚定词尾

\<  \> 锚定单词

[root@WebServer ~]# grep '\<r..t\>' --color=auto t1

root  chroot rooter

this is root

^ 锚定行首

$ 锚定行尾

[root@WebServer ~]# grep '^r..t' --color=auto t1

[root@WebServer ~]# grep 'r..t$' --color=auto t1

锚定行首 前面有空格的root开头的行

[root@WebServer ~]# grep '^[[:space:]]*root' --color=auto t1 

     root  chroot rooter

锚定行尾 有标点符号时的正则表达式

[root@WebServer ~]# grep 'root[[:punct:]]\?$' --color=auto t1

this is root

there is chroot.

字符类

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

alnum 字母和数字

alpha 字母

blank 仅表示空格或制表符

cntrl 控制字符

digit 十进制数

graph 打印字符,不包含空格

lower 小写字母

print 打印字符,包含空格

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

space 空白

upper 大写字母

xdigit 十六进制数

[[:space:]]

[[:digit:]]

[[:alpha:]]

[root@WebServer ~]# echo '.,.,?.!123abcABC  abcA123..?1 2' | grep '[[:punct:]]\{4,8\}[[:digit:]]\{1,3\}[[:lower:]]*[[:upper:]]*[[:space:]]*[[:graph:]]*' --color=auto

.,.,?.!123abcABC  abcA123..?1 2

练习题

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

[root@WebServer ~]# ifconfig | grep '[1-9]\{1,3\}' --color=auto  -o

    1. 找出ifconfig命令结果中的IP地址

[root@WebServer ~]# ifconfig | grep '\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\}' -o

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

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

[root@WebServer ~]# grep 'L.:\(.\).*\1' rc

    1. 找出当前系统上名字为student的用户账户相关信息/etc/passwd,注意不要找到 student1这样的用户。

[root@WebServer ~]# grep '^student:' /etc/passwd

[root@WebServer ~]# useradd student

[root@WebServer ~]# useradd student1

student:x:500:500::/home/student:/bin/bash

扩展正则表达式

.

[]

[^]

匹配次数

*

+ 至少匹配一次

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

[root@WebServer ~]# echo "rooteeeeer" | egrep 'ro+te{2,10}' --color

rooteeeeer

锚定符

^

$

\< 新增  \b 

\> 新增  \b

[root@WebServer ~]# echo 'chroot root rooter123' | egrep '\broot' --color

chroot root rooter123

[root@WebServer ~]# echo 'chroot root rooter123' | egrep 'root\b' --color 

chroot root rooter123

[root@WebServer ~]# echo 'chroot root rooter123' | egrep '\broot\b' --color

或者

|    abc|wde

[root@WebServer ~]# echo 'abcde abwde abc wde' | egrep 'abc|wde' --color

abcde abwde abc wde

[root@WebServer ~]# echo 'abcde abwde abc wde' | egrep 'ab(c|w)de' --color

abcde abwde abc wde

分组

分组不用转义

[root@WebServer ~]# echo 'abchanhanhan100' | egrep 'abc(han){3}100' --color

abchanhanhan100

查找a=c b=d的行

[root@WebServer ~]# echo 'a=10b=20c=10d=20' | egrep 'a=(..)b=(..)c=\1d=\2' --color

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

fgrep

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

[root@WebServer ~]# echo 'abcfr123a{1,2}wde' | fgrep '{1,2}' --color

abcfr123a{1,2}wde

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

  1. 转义字符 \

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

[root@WebServer ~]# echo '91xueit\(han\)*51cto' | grep '91xueit\\(han\\)\*51cto' --color

91xueit\(han\)*51cto

 [root@WebServer ~]# echo '^root 91xueit$' | grep '\^root 91xueit\$' --color

^root 91xueit$

 [root@WebServer ~]# echo '^root\b91xueit$' | grep '\^root\\b91xueit\$' --color

^root\b91xueit$

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

如果正则表达式中没有命令替换 ‘ ’ “”

[root@WebServer ~]# echo 'abc/root123' | grep "abc$(pwd)123" --color 

abc/root1

关机重启命令

shutdown

shutdown –r now 现在重启

shutdown now 现在关机

shutdown +5 过5分钟关机

shutdown –c 取消关机命令执行

shutdown –h 02:23 & 在2点23分关机

shutdown –r 02:25 & 在2点25分重启

halt

poweroff

reboot 重启系统

时间命令

cal

date

[root@WebServer ~]# date +%Y-%m-%d

2014-08-24

[root@WebServer ~]# date +%Y/%m/%d

2014/08/24

设置系统时间

[root@WebServer ~]# date -s "2014-08-27 10:20:00"

查看主板上的时间

[root@WebServer ~]# hwclock

2014年08月24日 星期日 02时50分10秒  -0.985818 seconds

将系统时间写入主板时间

[root@WebServer ~]# hwclock -w

[root@WebServer ~]# hwclock

2014年08月27日 星期三 10时23分27秒  -0.250991 seconds

猜你喜欢

转载自www.cnblogs.com/DBlifeXu/p/10347799.html