1、文件管理类命令有:cp,mv,rm
cp:复制命令
用法:cp [OPTION]… SOURCE… DEST
如果DEST不存在,则先创建此文件并复制源文件的数据流到DEST中
]# mkdir test
tmp]# cd test/
test]# cp /etc/fstab ./temp
]# ls
temp
如果DEST存在且是非目录文件,则覆盖目标文件
]# cp /etc/fstab ./
cp:是否覆盖"./fstab"? y
如果DEST存在且是目录文件,则先在DEST创建一个与源文件同名的文件,并复制其数据流
]# cp /etc/fstab ./
]# ls
fstab
常用选项:
-i:覆盖文件前提醒用户确认 默认覆盖前需要用户确认
-f:强制覆盖目标文件
-r:复制目录并复制目录中的文件到目标 cp不加-r默认不能复制目录
]# cp /dev/mapper ./
cp: 略过目录"/dev/mapper"
test]# cp -r /dev/mapper ./
test]# ll
总用量 8
-rw-r–r–. 1 root root 632 8月 28 13:42 fstab
drwxr-xr-x. 2 root root 4096 8月 28 13:49 mapper
mv:移动命令
mv [OPTION]… SOURCE DEST
如果源文件和目标文件在同一目录下,则mv命令的作用是重命名文件
mv命令等于是cp命令后加上删除源文件的操作。
mv命令可以不加选项直接移动文件夹
]# mv mapper mymapper
test]# ls
fstab mymapper
rm:删除命令
rm [OPTION]… FILE…
常用选项:
-r:递归删除目录及其目录下的文件
-i 删除前提醒用户,root用户默认启用该选项
-f 直接强制删除
注意:生产环境所有不用的文件建议不要直接删除而是移动到某个专用的目录(模拟回收站)
]# rm -rf fstab mymapper/
test]# ll
总用量 0
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
bash通过状态返回码来输出命令执行的状态结果 区分状态返回值和命令自身的返回值
成功:0 失败:1~255
显示特殊变量 echo $? 来得到状态返回码
]# df -lh
….
]# echo $?
0
]# fdisk -l /dev/sdd
fdisk: 打不开 /dev/sdd: 没有那个文件或目录
test]# echo $?
1
bash命令行展开:
~:自动展开为用户的家目录,或一个指定用户的家目录
{}:可承载一个以逗号分隔的路径列表,并自动将其展开为多个路径
]# pwd
/tmp/test
test]# cd ~
~]# pwd
/root
~]# cd /tmp/test/
test]# mkdir a{b,c}1{d,e,f}
test]# ls
ab1d ab1e ab1f ac1d ac1e ac1f
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, 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
]# mkdir -pv {a_,b_}{c,d}
mkdir: 已创建目录 "a_c"
mkdir: 已创建目录 "a_d"
mkdir: 已创建目录 "b_c"
mkdir: 已创建目录 "b_d"
]# mkdir -pv {bin,dev,lib64,proc,sbin,sys,tmp,boot/grub,etc/{rc.d/init.d,sysconfig/network-scripts},lib/mod
ules,usr/local/{bin,sbin},var/{lock,log,run}}mkdir: 已创建目录 "bin"
mkdir: 已创建目录 "dev"
mkdir: 已创建目录 "lib64"
mkdir: 已创建目录 "proc"
mkdir: 已创建目录 "sbin"
mkdir: 已创建目录 "sys"
mkdir: 已创建目录 "tmp"
mkdir: 已创建目录 "boot"
mkdir: 已创建目录 "boot/grub"
mkdir: 已创建目录 "etc"
mkdir: 已创建目录 "etc/rc.d"
mkdir: 已创建目录 "etc/rc.d/init.d,lib"
mkdir: 已创建目录 "etc/rc.d/init.d,lib/modules"
mkdir: 已创建目录 "etc/sysconfig"
mkdir: 已创建目录 "etc/sysconfig/network-scripts,lib"
mkdir: 已创建目录 "etc/sysconfig/network-scripts,lib/modules"
mkdir: 已创建目录 "usr"
mkdir: 已创建目录 "usr/local"
mkdir: 已创建目录 "usr/local/bin"
mkdir: 已创建目录 "usr/local/sbin"
mkdir: 已创建目录 "var"
mkdir: 已创建目录 "var/lock"
mkdir: 已创建目录 "var/log"
mkdir: 已创建目录 "var/run"
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
文件包含两类数据:
元数据:metadata 描述属性的数据 可用stat file 看到
数据:data 文件本身的数据 可用cat file看到
test]# touch temp.txt
test]# cat temp.txt
test]# stat temp.txt
文件:"temp.txt"
大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:67374345 硬链接:1
权限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:user_tmp_t:s0
时间戳信息:
最近访问:2016-08-28 14:25:56.679054155 +0800
最近更改:2016-08-28 14:25:51.339029587 +0800
最近改动:2016-08-28 14:25:51.339029587 +0800
创建时间:-
可以用touch命令来修改时间戳信息
t]# touch -a temp.txt
test]# touch -m temp.txt
最近访问:2016-08-28 14:28:48.842846226 +0800
最近更改:2016-08-28 14:28:57.903887914 +0800
最近改动:2016-08-28 14:28:57.903887914 +0800
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
bash shell有两类配置文件。profile类和bashrc类。其中,可以在/etc/bashrc下定义对
所有用户都生效的命令别名或者在~/.bashrc定义某个用户专属的命令别名。
]# vim + /etc/bashrc 例如定义对所有用户都生效的cls=clear清屏命令
93 alias cls='clear'
***注意,在配置文件中定义的命令别名或做的其他设置,将在之后启动的bash shell中永远生效
引用命令的执行结果
1,$(COMMAND) 2,`COMMAND`
]# mkdir `date +%y%m%d`
]# ls
160828
]# touch $(ls /var/log/m*log | cut -d/ -f4)backup
test]# ls
160828 maillogbackup
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
~]# ls -d /var/l*[0-9]*[[:lower:]]
ls: 无法访问/var/l*[0-9]*[[:lower:]]: 没有那个文件或目录
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
]# ls -d /etc/[0-9]*[^0-9]
ls: 无法访问/etc/[0-9]*[^0-9]: 没有那个文件或目录
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
]# ls -d /etc/[^[:alpha]][0-9]*
ls: 无法访问/etc/[^[:alpha]][0-9]*: 没有那个文件或目录
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
~]# ls /tmp
tfile-2016-08-28-17-44-47
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
]# cp -r /etc/p*[^0-9] /tmp/mytest1/
]# ls /tmp/mytest1/
pam.d passwd- pinforc plymouth pnm2ppa.conf postfix prelink.conf.d profile protocols purple
passwd pbm2ppa.conf pki pm popt.d ppp printcap profile.d pulse python
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
]# cp -r /etc/*.d /tmp/mytest2
tmp]# ls /tmp/mytest2
auto.master.d depmod.d init.d modules-load.d profile.d rc5.d sane.d usb_modeswitch.d
bash_completion.d dnsmasq.d ipsec.d my.cnf.d rc0.d rc6.d setuptool.d xinetd.d
binfmt.d dracut.conf.d ld.so.conf.d oddjobd.conf.d rc1.d rc.d statetab.d yum.repos.d
cgconfig.d exports.d libibverbs.d pam.d rc2.d request-key.d sudoers.d
chkconfig.d gdbinit.d logrotate.d popt.d rc3.d rsyslog.d sysctl.d
cron.d grub.d modprobe.d prelink.conf.d rc4.d rwtab.d tmpfiles.d
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3
tmp]# ls /tmp/mytest3
ld.so.conf libuser.conf logrotate.conf mke2fs.conf nfsmount.conf ntp.conf
libaudit.conf locale.conf man_db.conf mtools.conf nsswitch.conf numad.conf
原创文章,作者:上海-brown,如若转载,请注明出处:http://www.178linux.com/41374
评论列表(1条)
希望同学注意一下作业格式,这样无论别人阅读及批改都很方便