linux 文件管理类命令
- ls 命令:list directory contents;列出指定目录下的内容
SYNOPSIS: ls [OPTION]... [FILE]...
OPTION:
-
-a :--al显示所有文件,包括隐藏文件
-
-A :--almost-all:显示除 . 和 ..外的所有文件
-
-l :--long 长格式显示列表,即文件的详细属性信息
-
-d :查看目录自身而非其内部的文件列表;经常和-l 一起配合使用
-
-r :reverse,逆序显示
-
-R: recursive,递归显示
[root@localhost ~]# ls -a /etc/lvm . .. archive backup cache lvm.conf lvmlocal.conf profile [root@localhost~]# ls -A /etc/lvm archive backup cache lvm.conf lvmlocal.conf profile [root@localhost ~]# ls -l /etc/lvm 总用量 104 drwx------. 2 root root 4096 5月 5 20:16 archive drwx------. 2 root root 4096 5月 5 20:16 backup drwx------. 2 root root 4096 5月 5 21:25 cache -rw-r--r--. 1 root root 83972 3月 23 2017 lvm.conf -rw-r--r--. 1 root root 2301 3月 23 2017 lvmlocal.conf drwxr-xr-x. 2 root root 4096 5月 2 04:59 profile [root@localhost ~]# ls -d /etc/lvm /etc/lvm [root@localhost ~]# ls -ld /etc/lvm drwxr-xr-x. 6 root root 4096 5月 2 04:59 /etc/lvm
- cd 命令:change directory
SYNOPSIS: cd [PATH/TO/SOMEDIR]
-
cd: 切换回家目录
-
cd ~: 切换回自己的家目录
-
cd ~USERNAME: 切换至指定用户的家目录
-
cd -:在上一次目录和当前目录之间来回切换
示例:
[root@localhost apache2]# cd
[root@localhost ~]# cd /var
[root@localhost var]# cd /var/log
[root@localhost log]# cd ~slackware
[root@localhost slackware]# cd -
/var/log
[root@localhost log]# cd -
/home/slackware
- mkdir:创建目录
SYNOPSIS: mkdir [OPTION]... DIRECTORY...
- -p:表示存在时不返回错误,不存在时,自动创建所需目录
- -v:显示其过程详细信息
- -m MODE: 创建目录是直接指定权限
- rmdir:删除目录
SYNOPSIS: rmdir [OPTION]... DIRECTORY...
-
-v:显示执行过程
示例:
[root@localhost ~]# mkdir -pv /tmp/x/y/z
mkdir: 已创建目录 "/tmp/x"
mkdir: 已创建目录 "/tmp/x/y"
mkdir: 已创建目录 "/tmp/x/y/z"
[root@localhost ~]# rmdir -v /tmp/x/y/z
rmdir: 正在删除目录 "/tmp/x/y/z"
[root@localhost ~]# rmdir -v /tmp/x/y
rmdir: 正在删除目录 "/tmp/x/y"
[root@localhost ~]# rmdir -v /tmp/x
rmdir: 正在删除目录 "/tmp/x"
- cat命令和tac命令:文件文本查看工具
SYNOPSIS: cat [OPTION]... [FILE]...; tac [OPTION]... [FILE]...
OPTION:
-
-n : 给显示的文本行编号
-
-E :显示行结束符
tac和cat显示相反示例:
[root@localhost ~]# cat /etc/fstab# # /etc/fstab # Created by anaconda on Wed May 2 04:48:00 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=d7d511f0-74c6-4293-8311-ace822f60b26 / ext4 defaults 1 1 UUID=c394a12c-bc82-4eee-a24e-9ae55b77a810 /boot ext4 defaults 1 2 UUID=38540df9-d17e-4dba-ab6b-550054159993 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=MYREID /backup ext4 defaults,acl 0 0 [root@localhost ~]# tac /etc/fstab LABEL=MYREID /backup ext4 defaults,acl 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs defaults 0 0 UUID=38540df9-d17e-4dba-ab6b-550054159993 swap swap defaults 0 0 UUID=c394a12c-bc82-4eee-a24e-9ae55b77a810 /boot ext4 defaults 1 2 UUID=d7d511f0-74c6-4293-8311-ace822f60b26 / ext4 defaults 1 1 # # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # Accessible filesystems, by reference, are maintained under '/dev/disk' # # Created by anaconda on Wed May 2 04:48:00 2018 # /etc/fstab #
- 文件内容查看命令:more、less、head、tail
- more: more [options] file [...]
- -d:显示翻页及退出提示 - -less :与more相反
- -head:显示文件前几行内容 ;head [OPTION]... [FILE]...
- -n # :指定获取前#行
- -c # :指定获取后#行自己内容
- tail :显示文件后几行的内容
- -n # : 指定获取后#行,也可以是用-#
- -c # : 指定获取后#字节内容
- -f :动态显示文件新内容,如果要退出,可使用ctrl+c
- touch命令: change file timestamps;修改文件时间戳
SYNOPSIS : touch [OPTION]... FILE...
-
-a : 仅修改access time
-
-m:仅修改modify time
-
-t [[CC]YY]MMDDhhmm[.ss]: 修改制定时间戳为某时间
-
-c:指定的文件路径不存在时不予创建;(当touch一个不存在的文件时,会先创建一个空文件)
查看文件状态(属性信息或者元数据)命令:stat示例: [root@localhost ~]# ls /tmp keyring-HHoT1s orbit-gdm orbit-root pulse-hnV6FdwMKJ2W snap [root@localhost ~]# touch /tmp/test [root@localhost ~]# ls /tmp keyring-HHoT1s orbit-gdm orbit-root pulse-hnV6FdwMKJ2W snap test [root@localhost ~]# stat /tmp/test File: "/tmp/test" Size: 0 Blocks: 0 IO Block: 4096 普通空文件 Device: 803h/2051d Inode: 2621450 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-06-09 22:44:32.231994523 +0800 Modify: 2018-06-09 22:44:32.231994523 +0800 Change: 2018-06-09 22:44:32.231994523 +0800 [root@localhost ~]# touch -at 201505051240.50 /tmp/test [root@localhost ~]# stat /tmp/test File: "/tmp/test" Size: 0 Blocks: 0 IO Block: 4096 普通空文件 Device: 803h/2051d Inode: 2621450 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2015-05-05 12:40:50.000000000 +0800 Modify: 2018-06-09 22:44:32.231994523 +0800 Change: 2018-06-09 22:45:37.617998474 +0800
- cp命令:copy复制
<1> cp [OPTION]... [-T] SOURCE DEST
单源复制 :
如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST
如果DEST存在:
如果DEST是非目录文件:则覆盖目标文件;
如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;
<2> cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
多源复制:
如果DEST不存在:错误;
如果DEST存在:
如果DEST是非目录文件:错误;
如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;并且必须是用- r选项。
<3>选项[OPTION]:
-
-i: 交互式复制,即覆盖之前提醒用户确认
-
-f:强制覆盖目标文件
-
-r:递归复制目录
-
-d:复制符号链接文件本身,而非其指向的源文件
-
-a:-dR --preserve=all,archive,用于实现归档
-
-v:显示过程
示例: [root@localhost ~]# ls /tmp keyring-HHoT1s orbit-gdm orbit-root pulse-hnV6FdwMKJ2W snap test [root@localhost ~]# cp /etc/fstab /tmp [root@localhost ~]# ls /tmp fstab keyring-HHoT1s orbit-gdm orbit-root pulse-hnV6FdwMKJ2W snap test root@localhost ~]# cp -r /etc/yum.repos.d/ /tmp [root@localhost ~]# ls /tmp fstab keyring-HHoT1s log orbit-gdm orbit-root pulse-hnV6FdwMKJ2W snap test yum.repos.d [root@localhost ~]# cp -f /etc/fstab /tmp/test cp:是否覆盖"/tmp/test"? y [root@localhost ~]# cat /tmp/test # # /etc/fstab # Created by anaconda on Wed May 2 04:48:00 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=d7d511f0-74c6-4293-8311-ace822f60b26 / ext4 defaults 1 1 UUID=c394a12c-bc82-4eee-a24e-9ae55b77a810 /boot ext4 defaults 1 2 UUID=38540df9-d17e-4dba-ab6b-550054159993 swap swap defaults 0 0 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 LABEL=MYREID /backup ext4 defaults,acl 0 0
-
mv命令:move,移动命令
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用选项:
- -i:交互式
- -f:强制force -
rm命令:remove,删除
rm [OPTION]... FILE...
常用选项:
- -i:交互式
- -f:强制
- -r:recursive 递归
注意:rm -rf /PATH/TO/DIR 是非常危险的,建议不要直接删除,而是移动至某个专用的目录
bash的工作特性之命令执行状态返回值和命令展开
命令执行的状态结果:bash通过状态返回值来输出此结果
成功:0 失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量 $? 中;
可以使用'echo $?'查看最近一条命令的执行结果。
示例:
[root@localhost ~]# ls /var
account crash db ftp gdm local log nis preserve spool www yp
cache cvs empty games lib lock mail opt run tmp wwww
[root@localhost ~]# echo $?
0
[root@localhost ~]# ls /varr
ls: 无法访问/varr: 没有那个文件或目录
[root@localhost ~]# echo $?
2
命令行展开:
- ~:展开为用户的主目录
- ~USERNAME: 展开为指定用户的主目录
- {} : 可以承载一个以逗号分隔的列表,并将其展开为多个路径
命令展开行练习题
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@localhost ~]# mkdir -pv /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@localhost ~]# mkdir -pv /tmp/mylinux/{bin,boot/groub,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/groub"
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/sysconfig/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/local/bin"
mkdir: 已创建目录 "/tmp/mylinux/usr/local/sbin"
mkdir: 已创建目录 "/tmp/mylinux/var"
mkdir: 已创建目录 "/tmp/mylinux/var/lock"
mkdir: 已创建目录 "/tmp/mylinux/var/log"
mkdir: 已创建目录 "/tmp/mylinux/var/run"
[root@localhost ~]# tree /tmp/mylinux/
/tmp/mylinux/
├── bin
├── boot
│ └── groub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run
网友评论