码迷,mamicode.com
首页 > 其他好文 > 详细

笔记整理

时间:2016-08-01 07:01:13      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:笔记

笔记2016/7/28 9:10:57

Linux版本信息位置-建议生产环境下,修改其内容。

/etc/redhat_release
/etc/cenos_release

删除特殊文件名的文件,例如-h可以使用绝对路径或相对路径删除。

ls按访问时间,修改时间..排序

ls  -la atime 排序
    -lc ctime 排序
    -lt mtime 排序

globbiing:文件名通配,(整体文件名匹配)而非部分匹配

匹配模式:元字符
    *:匹配任意长度的任意字符
    ?:匹配任意单个字符
    []:匹配指定范围内的任意单个字符
    [a-z],[A-Z],[0-9],[a-z0-9]
    [[:upper:]]    大写字母
    [[:lower:]]        小写字母
    [[:alpha:]]     所有字母
    [[:digit:]]        所有数字
    [[:alnum:]]    所有字母和数字
    [[:space:]]     所有空白字符
    [[:punct:]]         所有的标点符号
    [^]:匹配指定范围外的任意单个字符
    [^[:upper:]]
    [^[:digit:]]

    [a-z]=aAbBcC...zZ
    [a-c]=
    [A-Z]=AaBbCc...Zz

man 5 glob

1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
3、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
4、显示/etc目录下所有以m开头以非数字结尾的文件或目录
5、显示/etc目录下,所有以.d结尾的文件或目录
6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

1、[root@localhost tmp]# ls /var/l*[[:digit:]]*[[:lower:]]
/var/lsd3df
2、[root@localhost tmp]# ls /etc/[[:digit:]]*[^[:digit:]]
3、[root@localhost tmp]# ls /etc/[^[:alpha:]][[:alpha:]]*
4、[root@localhost tmp]# ls /etc/m*[^[:digit:]]
5、[root@localhost tmp]# ls /etc/*.d
6、[root@localhost tmp]# ls /etc/[mnrp]*.conf

只显示某目录下的隐藏文件

alias l.=‘ls -d .* --color=auto‘

只显示某目录下的目录文件

[root@yangyouwei ~]# ls -d /etc/*/

stat 显示时间戳 NAME stat - display file or file system status

SYNOPSIS
       stat [OPTION]... FILE...

touch 改变文件时间戳,创建文件(默认文件不存在创建一个空文件)

NAME
       touch - change file timestamps

SYNOPSIS
       touch [OPTION]... FILE...
                -a改变atime时间
                -m改变mtime时间
                -t  STAMP:
                    [[CC]YY]MMDDhhmm[.ss]
                -c文件不存在,不创建文件。

Linux文件管理cp mv rm

cp命令

复制命令,复制过程是,如果目标文件不存在,则创建空的目标文件(与源文件同名)。
如果源文件存在,则覆盖源文件。

    单源复制
        cp [OPTION]... [-T] SOURCE DEST
        源文件是单个文件,目标文件为目录的话,则目录必须能存在,否则不能复制。
        目标文件是文件的话,则是源文件覆盖目标文件。

    多源复制
         cp [OPTION]... SOURCE... DIRECTORY
         cp [OPTION]... -t DIRECTORY SOURCE...
        源文件是多个文件,则目标文件必须为目录,如果目录不存在,则不能复制。
        如果目标目录存在则,且目标目录中有与源文件同名文件,则覆盖源文件
        源文件是多个文件且有目录文件,则目标文件必须为目录。如果目录不存在则,不能复制。

    cp -r 源文件(目录 ) 目标目录(不存在)
    cp会创建目标目录(与源文件同名)
    再运行一次 cp -r 源文件(目录 ) 目标目录(已存在)
    cp会将源文件复制到奥目标目录之下(与源文件同名)

cp命令参数

    -i:交互式复制(centos7cp命令默认带-i参数)
    -r递归复制
    -a归档=-d --preserve=all
    -d表示不跟踪符号链接所指向的文件,只复制链接文件
    -p保持源文件的属性信息
    -f强制覆盖
    -v显示过程
    --preserv[=ATTR_LIST]
        mode
        ownership
        timestamp
        links
        xattr
        context
        all
    -p: 等同--preserv=mode,ownership,timestamp

mv命令

mv命令移动并重命名文件实现过程,在同一文件件系统上(磁盘分区上),文件的inod号不改变,
文件内容没有被重新复制,仅仅是更改了文件的元数据。目标文件和源文件在同一目录下,则就是重命名。
Usage: mv [OPTION]... [-T] SOURCE DEST
  or:  mv [OPTION]... SOURCE... DIRECTORY
  or:  mv [OPTION]... -t DIRECTORY SOURCE...

mv参数

-i:交互式
-f:强制

rm移除

#删除文件,是危险操作,删除后不容易恢复数据。删除文件的元数据,释放inod号。
生产环境下,不要删除文件,要自建目录,做移除只用。实在无用再删除。
     rm [OPTION]... FILE...
        -i:交互式 普通用的rm别名带参数-i
        -f:强制删除
        -r:递归删除

覆盖文件内容,文件属性没有变化
删除重建文件,文件属性也会有变化
删除特殊字符开头的文件。例如-h这个文件。可以使用绝对路径删除

tree 显示目录树

-d: 只显示目录
-L level:指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径

mkdir创建目录文件

-p 如果父目录不存在,先创建父目录在创建子目录
-v 显示过程

Linux命令展开{}

mkdir -p /testdir/dir1/{x/{a,b},y/{a,b}}

mkdir -p /testdir/dir2/{x/{a,b},y}

mkdir -p /testdir/dir{3,4,5/{6,7}}

[root@yangyouwei ~]# df -i #显示文件系统inod使用情况
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda2      6406144 136164 6269980    3% /
tmpfs           238413      3  238410    1% /dev/shm
/dev/sda1        51200     39   51161    1% /boot
/dev/sda3      1281120     11 1281109    1% /testdir
[root@yangyouwei ~]# df #显示文件系统空间使用情况,单位是块
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2      100660656 4643580  90897076   5% /
tmpfs             953652      72    953580   1% /dev/shm
/dev/sda1         194241   39064    144937  22% /boot
/dev/sda3       20027260   44992  18958268   1% /testdir
[root@yangyouwei ~]# df -lh #显示文件系统空间使用情况,单位是常用文件单位KMG
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        96G  4.5G   87G   5% /
tmpfs           932M   72K  932M   1% /dev/shm
/dev/sda1       190M   39M  142M  22% /boot
/dev/sda3        20G   44M   19G   1% /testdir

ln
创建硬链接/-s 软链接 目录不支持创建硬链接

但是目录有硬链接次数

\root@yangyouwei home]# ls -al
total 24
drwxr-xr-x.  6 root   root   4096 Jul 21 22:49 .
dr-xr-xr-x. 27 root   root   4096 Jul 23 15:04 ..
drwx------.  4 test1  test1  4096 Jul 21 23:12 test1
drwx------.  4 test2  test2  4096 Jul 21 22:49 test2
drwx------.  4 test23 test23 4096 Jul 21 22:49 test23
drwx------.  4 yang   yang   4096 Jul 21 23:12 yang

ln 创建链接时默认使用的是目标路径的相对路径。链接到当前目录之外的路径是事,源文件的路径要写 绝对路径。但是创建软链接多使用相对路径,软件编程,安装多使用相对路径。

[root@localhost testdir]# ls -ldi .
1048580 drwxr-xr-x 7 root root 4096 Jul 28 13:10 .
[root@localhost testdir]# ls -ldi /testdir/
1048580 drwxr-xr-x 7 root root 4096 Jul 28 13:10 /testdir/
[root@localhost testdir]# ls -ldi ..
2 dr-xr-xr-x. 25 root root 4096 Jul 28 09:59 ..
[root@localhost testdir]# ls -ldi /
2 dr-xr-xr-x. 25 root root 4096 Jul 28 09:59 /
[root@localhost testdir]# 

#cenos6上只要inode号为2的就是分区的根,cenos7上为128

file 显示文件内容(数据)类型

确定文件内容
文件可以包含多种类型的数据
检查文文件类型,然后确定适当的开放命令或应用程序使用
file [options] <filename>...
Option:
    -b列出文件辨识结果时,不显示文件名称。
    -c详细显示指令执行过程,便于排错或分析程序执行形
    -f列出文件中文件名的文件类型
    -F使用指定分隔符号替换输出文件名后默认的”:”分隔符
    -i输出mime类型的字符串
    -L查看对应软链接对应文件的文件类型
    -z尝试去解读压缩文件的内容
    --help显示命令在线帮助

lsblk

[root@yangyouwei tmp]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0 97.7G  0 part /
├─sda3   8:3    0 19.5G  0 part /testdir
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0  200M  0 part [SWAP]
sr0     11:0    1  3.7G  0 rom

显示系统信息

lsb_release -a
[root@yangyouwei ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description:    CentOS release 6.8 (Final)
Release:        6.8
Codename:       Final
[root@yangyouwei ~]#

课堂练习 定义命令别名复制目录并以当前日期命名,显示复制过程。

alias backroot="cp -av /home /testdir/`date +%F`"

一般后台运行的程序都不显示过程信息,不对标准输出任何信息

复制某目录下文件并,保留文件的多有权限。

cp -r --preserv[=mode] cp -rp


命令别名alias

显示当前shell进程所有可用的命令别名

#alias

定义别名NAME,其相当于执行命令VALUE;

#alias NAME=‘VALUE‘

在命令行中定义的别名,仅对当前shell进程有效
如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc

编辑配置给出的新配置不会立即生效; bash进程重新读取配置文件: source /path/to/config_file . /path/to/config_file

撤消别名:unalias

unalias[-a] name [name ...]

如果别名同原命令同名,如果要执行原命令,可使用

“\COMMAND”
’COMMAND’
/PATH/COMMAND:外部命令

uname

-a, --all
          print  all  information,  in  the following order, except
          omit -p and -i if unknown:

   -s, --kernel-name
          print the kernel name

   -n, --nodename
          print the network node hostname

   -r, --kernel-release
          print the kernel release

   -v, --kernel-version
          print the kernel version

   -m, --machine
          print the machine hardware name

   -p, --processor
          print the processor type or "unknown"

   -i, --hardware-platform
          print the hardware platform or "unknown"

   -o, --operating-system
          print the operating system

inode

inode(index node)表中包含文件系统所有文件列表
一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:
文件类型,权限,UID,GID
链接数(指向这个文件名路径名称个数)
该文件的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据

文件引用一个是inode号
人是通过文件名来引用一个文件
一个目录是目录下的文件名和文件inode号之间的映射

在CP的命令:

分配一个空闲的inode号,在inode表中生成新条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件

rm命令:

链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。

如果mv命令的目标和源在相同的文件系统,作为mv命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
如果目标和源在一个不同的文件系统,mv相当于cp和rm

硬链接、

创建硬链接会增加额外的记录项以引用文件
对应于同一文件系统上一个物理文件
每个目录引用相同的inode号
创建时链接数递增
删除文件时:
rm命令递减计数的链接
文件要存在,至少有一个链接数
当链接数为零时,该文件被删除
不能跨越驱动器或分区
语法:
ln filename [linkname]

软连接

符号(或软)链接
一个符号链接指向另一个文件
ls -l的显示链接的名称和引用的文件
一个符号链接的内容是它引用文件的名称
可以对目录进行
可以跨分区
指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;
语法:
ln -s filename [linkname]

输入输出重定向

IO重定向及管道

程序也有IO  来源很多

标准输入:0键盘
标准输出:1显示器
错误标准输出:2显示器

输出重定向:

>
    特性:覆盖输出
    [root@localhost test]# ls /tmp > /tmp/test/devdir
    输出至的文件可以不存在自动创建
        cat < file 用文件代替标准输入
>>
    特性:追加输出
    [root@localhost test]# ls /dev >> /tmp/test/devdir
    输出至的文件可以不存在自动创建
#多条命的结果同时输出到一个文件。(comm9and1:command2) > /path/to/some
cat file1 file2 file3 > ./somefile 多个文件合并到一个文件。

错误输出重定向

2>
    特性:覆盖输出
    [root@localhost test]# cd /tmp/bin 2> /tmp/test/erro
    /tmp/bin该目录不存在
2>>
    [root@localhost test]# ls /tmp/bin 2>> /tmp/test/erro
    追加输出错误
    特性:追加输出

合并正常输出和错误输出 合并正常输出

&>  覆盖
[root@localhost test]# ls /tm/p &> /tmp/test/stand_err
&>>  追加
[root@localhost test]# ls /tm/p &>> /tmp/test/stand_err
合并错误输出
    COMMAND > /PATH/TO/SOMEFILE 2>&1
    COMMAND >> /PATH/TO/SOMEFILE 2>&1

慎用:使用set -C 设置(+C关闭设置)shell取消覆盖输出重定向至已存在的文件,一般在编写脚本时使用,防止覆盖掉文件,脚本结束后再关闭。

>|强行覆盖输出
set仅对当前shell有效

特殊设备 /etc/dev/null

输入重定向:

<
    tr命令: tr [OPTION].....SET1 [SET2]
    把输入的数据当中的字符,凡事在SET1中出现的字符对位替换为SET2字符
    用法1
    tr SET1 SET2 < /PATH/TO/SOMEFILE
    用法2
    tr -d SET1 /PATH/TO/SOMEFILE
    注意tr只输出显示修改结果,不修改原文件。可以将修改结果输出重定向至其他位置
<<
    here doucument  此处文档
    cat << EOF      EOF为结束符
    输入什么输出什么。
    cat > /PATH/TO/SOMEFILE << EOF
    输入的内容保存到/PATH/TO/SOMEFILE

管道

连接程序,实现将前一个命令的标准输出(正确的,错误输出不会输出到后一个程序)直接定想到后一个程序当输入
    COMMAND1|COMMAND2|COMMAND3
    [root@localhost test]# cat test.txt 2> /dev/null | tr yangyouwei YANGYOUWEI

    错误输出到null,正确的输出到tr转换字符


笔记整理

标签:笔记

原文地址:http://yangyouwei.blog.51cto.com/114816/1832647

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!