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目录下创建一个与源文件同名的文件,并复制其数据流;

Linux基础(2)_第1张图片

常用选项

-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

你可能感兴趣的:(Linux基础(2))