标签:笔记
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文件不存在,不创建文件。
复制命令,复制过程是,如果目标文件不存在,则创建空的目标文件(与源文件同名)。 如果源文件存在,则覆盖源文件。 单源复制 cp [OPTION]... [-T] SOURCE DEST 源文件是单个文件,目标文件为目录的话,则目录必须能存在,否则不能复制。 目标文件是文件的话,则是源文件覆盖目标文件。 多源复制 cp [OPTION]... SOURCE... DIRECTORY cp [OPTION]... -t DIRECTORY SOURCE... 源文件是多个文件,则目标文件必须为目录,如果目录不存在,则不能复制。 如果目标目录存在则,且目标目录中有与源文件同名文件,则覆盖源文件 源文件是多个文件且有目录文件,则目标文件必须为目录。如果目录不存在则,不能复制。 cp -r 源文件(目录 ) 目标目录(不存在) cp会创建目标目录(与源文件同名) 再运行一次 cp -r 源文件(目录 ) 目标目录(已存在) 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命令移动并重命名文件实现过程,在同一文件件系统上(磁盘分区上),文件的inod号不改变, 文件内容没有被重新复制,仅仅是更改了文件的元数据。目标文件和源文件在同一目录下,则就是重命名。 Usage: mv [OPTION]... [-T] SOURCE DEST or: mv [OPTION]... SOURCE... DIRECTORY or: mv [OPTION]... -t DIRECTORY SOURCE...
-i:交互式 -f:强制
#删除文件,是危险操作,删除后不容易恢复数据。删除文件的元数据,释放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
显示当前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