Linux基础(2)
1、Linux上的文件管理类命令
pwd命令
作用:显示当前工作路径的绝对路径
用法:pwd [选项]
常用选项:
-p 显示真实物理路径
-L 显示链接路径(默认)
实例:
显示当前工作路径
[root@gongzy bin]# pwd
/bin
显示当前工作路径的真实物理路径
[root@gongzy bin]# pwd -P
/usr/bin
cd命令
作用:改变当前路径
用法:cd [-L|-P] [dir]
常用选项:
-P 如果是链接目录则进入真实物理目录
特殊用法:
cd .. 切换到父目录
cd 切换到当前用户家目录
cd- 切换到上次的工作目录
相关环境变量
PWD:当前工作路径
OLDPWD:上一次的目录路径
实例:
更改路径到/binD的真实物理目录
[root@gongzy ~]# cd -P /bin
[root@gongzy bin]# pwd
/usr/bin
ls命令
作用:列出当前或指定目录的内容
用法:ls [选项] [目录…]
常用选项
-a 列出所有文件包括隐藏文件
-l 显示额外的信息
-R 递归列出遇到的子目录
-d 列出目录本身
-r 逆序排列
-1 单列输出
-S 由大到小排列
-t 按mtime排列
-u 按atime从新到旧排列
-U不排序,按照磁盘上的位置列出
-X 按照后缀排序
实例:
按照mtime列出/etc目录下的所有文件包括隐藏文件详细信息
[root@gongzy ~]# ls -alt /etc/
stat命令
作用:查看文件inode内容
用法:stat 文件名 [文件名 … ]
说明:metatime
access time:访问时间atime
modify time:修改时间mtime,文件内容更改
change time:改变时间ctime,文件属性更改,包括所有者,权限,大小,等元数据
实例:
查看文件etc/fstab的inode内容
[root@gongzy ~]# stat /etc/fstab
文件:"/etc/fstab"
大小:445 块:8 IO 块:4096 普通文件
设备:fd01h/64769d Inode:196610 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2018-01-09 18:22:26.986000000 +0800
最近更改:2018-03-19 16:17:21.635669788 +0800
最近改动:2018-03-19 16:17:21.635669788 +0800
创建时间:-
touch命令
作用:修改文件时间戳
用法:touch [选项]… 文件…
常用选项:
-a仅改变 atime和ctime
-m仅改变 mtime和ctime
-t指定atime和mtime的时间戳
-c如果文件不存在,则不予创建
特殊用法:如果指定文件不存在,则创建空文件
实例:
修改/etc/motd的atime,mtime为为2016年6月6日
[root@gongzy ~]# touch -t 201606060000.00 /etc/motd
[root@gongzy ~]# stat /etc/motd
文件:"/etc/motd"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd01h/64769d Inode:196655 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2016-06-06 00:00:00.000000000 +0800
最近更改:2016-06-06 00:00:00.000000000 +0800
最近改动:2018-05-18 17:39:40.390859127 +0800
创建时间:-
cp命令
作用:复制文件和目录
用法:
单源复制:cp [OPTION]… [-T] SOURCE DEST
多源复制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
如果DEST存在:
如果DEST是非目录文件:则覆盖目标文件;
如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
常用选项
-i 覆盖前提醒
-f 强制覆盖,不提示
-r,-R递归复制目录
-d 复制符号链接文件本身,而非其指向的源文件
-a 相当于-dR –preserve=all, archive,用于实现归档
-p 等同–preserv=mode,ownership,timestamp
-v 显示过程
-u 只复制源比目标更新文件或目标不存在的文件
–backup=numbered 目标存在,覆盖前先备份加数字后缀
–preserv=保留源文件的属性
mode:权限
ownership:属主和属组
timestamps: 时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
实例
将/etc/目录下所有文件,备份到/testdir独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见
[root@gongzy ~]# cp -av /etc/ /testdir/bakup`date +%F`
mv命令
作用:移动文件
用法
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE..
常用选项:
-i 交互
-f 强制
实例:
将a文件重命名为b
[root@gongzy ~]# mv a b
rm命令
作用:移除文件
用法:rm [options”]file…
常用选项
-i 交互
-f 强制删除
-r递归
–no–preserve-root 忽略对跟的保护
实例:
自杀
[root@gongzy ~]# rm -rf /*
mkdir命令
作用:创建目录
用法: mkdir [选项] 目录…
常用选项:
-p: 自动按需创建父目录
-v: verbose,显示详细过程
-m MODE: 创建目录时直接指定权限
实例:
创建目录 /1/2/3
[root@gongzy ~]# mkdir -pv /1/2/3
mkdir: 已创建目录 "/1"
mkdir: 已创建目录 "/1/2"
mkdir: 已创建目录 "/1/2/3"
rmdir命令
作用:删除空目录
用法:rmdir [选项] 目录…
常用选项:
-p:删除某目录后,如果其父目录为空,则一并删除之
-v: 显示过程
实例:
删除空目录/1/2/3
[root@gongzy ~]# rmdir -pv /1/2/3
rmdir: 正在删除目录 "/1/2/3"
rmdir: 正在删除目录 "/1/2"
rmdir: 正在删除目录 "/1"
rmdir: 正在删除目录 "/"
rmdir: 删除目录 "/" 失败: 设备或资源忙
tree命令
作用:显示目录树
用法:tree[选项] 目录
常用选项:
-d 只显示目录
-L 指定显示的层级数目
-P pattern: 只显示由指定pattern匹配到的路径
实例:
查看/etc目录树,显示到第二级只显示目录
[root@gongzy ~]# tree -dL 2 /etc/
2、bash的工作特性
(1)命令执行状态返回值
linux命令执行的状态结果为linux状态返回值,bash通过状态返回值来输出此结果,其中
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中
实例:
成功
[root@gongzy ~]# ls
123 tmp
[root@gongzy ~]# echo $?
0
失败
[root@gongzy ~]# la
-bash: la: 未找到命令
[root@gongzy ~]# echo $?
127
(2)命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径
实例:
创建tmp/a 与tmp/b
[root@gongzy ~]# mkdir -pv tmp/{a,b}
mkdir: 已创建目录 "tmp"
mkdir: 已创建目录 "tmp/a"
mkdir: 已创建目录 "tmp/b"
3、命令行展开功能练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@gongzy ~]# mkdir -v /tmp/{a,b}_{c,d}
mkdir: 已创建目录 "/tmp/a_c"
mkdir: 已创建目录 "/tmp/a_d"
mkdir: 已创建目录 "/tmp/b_c"
mkdir: 已创建目录 "/tmp/b_d"
(2)、创建/tmp/mylinux目录下的:
mylinux/
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run
[root@gongzy ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig,network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/{local,bin,sbin},var,lock,log,run}
mkdir: 已创建目录 "/tmp/mylinux"
mkdir: 已创建目录 "/tmp/mylinux/bin"
mkdir: 已创建目录 "/tmp/mylinux/boot"
mkdir: 已创建目录 "/tmp/mylinux/boot/grub"
mkdir: 已创建目录 "/tmp/mylinux/dev"
mkdir: 已创建目录 "/tmp/mylinux/etc"
mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"
mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"
mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"
mkdir: 已创建目录 "/tmp/mylinux/etc/network-scripts"
mkdir: 已创建目录 "/tmp/mylinux/lib"
mkdir: 已创建目录 "/tmp/mylinux/lib/modules"
mkdir: 已创建目录 "/tmp/mylinux/lib64"
mkdir: 已创建目录 "/tmp/mylinux/proc"
mkdir: 已创建目录 "/tmp/mylinux/sbin"
mkdir: 已创建目录 "/tmp/mylinux/sys"
mkdir: 已创建目录 "/tmp/mylinux/tmp"
mkdir: 已创建目录 "/tmp/mylinux/usr"
mkdir: 已创建目录 "/tmp/mylinux/usr/local"
mkdir: 已创建目录 "/tmp/mylinux/usr/bin"
mkdir: 已创建目录 "/tmp/mylinux/usr/sbin"
mkdir: 已创建目录 "/tmp/mylinux/var"
mkdir: 已创建目录 "/tmp/mylinux/lock"
mkdir: 已创建目录 "/tmp/mylinux/log"
mkdir: 已创建目录 "/tmp/mylinux/run"
[root@gongzy ~]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── network-scripts
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
├── lib
│ └── modules
├── lib64
├── lock
├── log
├── proc
├── run
├── sbin
├── sys
├── tmp
├── usr
│ ├── bin
│ ├── local
│ └── sbin
└── var