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 失?。?~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 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.www58058.com/41374
希望同學注意一下作業格式,這樣無論別人閱讀及批改都很方便