Linux第二次作业
1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
文件管理類命令:cp,mv,rm
1)cp:復制文件或目錄
? 用法:cp [OPTION]... [-T] SOURCE DEST
? ? ? ? cp [OPTION]... SOURCE... DIRECTORY
? ? ? ? cp [OPTION]... -t DIRECTORY SOURCE...
? 注意事項:
SOURCE是文件:
如果目標文件不存在,新建目標文件,并將源文件中的內容填充到目標文件中
如果目標存在且為文件,將源文件中的內容覆蓋至目標文件中
如果目標存在且為目錄,在目標目錄下建立與原文件同名的文件,并將源文件中內容填充到新的文件中去
SOURCE是多個文件,目標必須存在,且為目錄,其它情況均會出錯
SOURCE是目錄:必須使用-r選項
如果目標目錄不存在,則會創建指定目錄,賦值源目錄中所有文件至目標目錄中
如果目標是目錄,在源目錄中的文件全部分復制到目標目錄中
? 常用選項:
-a, --archive ? ?等于-dR --preserve=all
-d ? ? ? ? ? ? ? ?等于--no-dereference --preserve=links
-f, --force ? ? ? ?如果目標文件無法打開則將其移除并重試(當 -n 選項存在時則不需再選此項)
-i, --interactive ? ? ? ?覆蓋前詢問(使前面的 -n 選項失效)
-L, --dereference ? 總是跟隨符號鏈接
-n, --no-clobber ? 不要覆蓋已存在的文件(使前面的 -i 選項失效)
-P, --no-dereference ? 不跟隨源文件中的符號鏈接
-p ? ? ? ? ? ? ? ?等于--preserve=模式,所有權,時間戳
--preserve[=屬性列表] ? 保持指定的屬性(默認:模式,所有權,時間戳),如果可能保持附加屬性:環境、鏈接、xattr 等
-R, -r, --recursive ?復制目錄及目錄內的所有項目
實例
[root@localhost?/]#?cp?etc/fstab?/tmp/123//復制文件,123文件不存在測創建文件 [root@localhost?/]#?cat?tmp/123? [root@localhost?/]#?cp?-a?/etc/system-release?/tmp/12/ # #?/etc/fstab #?Created?by?anaconda?on?Fri?Aug?12?06:53:38?2016 # #?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 # /dev/mapper/centos-root?/???????????????????????xfs?????defaults????????0?0 UUID=ab5f2947-2e09-4c7d-9c36-80c29e6391a4?/boot???????????????????xfs?????defaults????????0?0 /dev/mapper/centos-home?/home???????????????????xfs?????defaults????????0?0 /dev/mapper/centos-swap?swap????????????????????swap????defaults????????0?0 [root@localhost?/]#?cp?/etc/host.conf?/etc/fstab?/tmp/mylinux///復制多個文件到mylinux中 [root@localhost?/]#?cp?-a?/etc/system-release?/tmp/12///復制鏈接文件??-a選項復制文件的所有屬性和鏈接符號,但是鏈接地址是相對路徑,鏈接指向會出錯 [root@localhost?/]#?ll?/tmp/12/ 總用量?0 lrwxrwxrwx.?1?root?root?14?8月??13?19:49?123?->?centos-release lrwxrwxrwx.?1?root?root?14?8月??12?06:54?system-release?->?centos-release2)mv:移動文件或目錄
用法:mv [選項]... [-T] 源文件 目標文件
?或:mv [選項]... 源文件... 目錄
?或:mv [選項]... -t 目錄 源文件...
常用選項:
?-f, --force ? ? ? ? ? ? ? ? ?覆蓋前不詢問
?-i, --interactive ? ? ? ? ? ?覆蓋前詢問
?-n, --no-clobber ? ? ? ? ? ? 不覆蓋已存在文件
實例
[root@localhost?12]#?ls 123??system-release [root@localhost?12]#?mv?123?../a_c/?//將123文件復制到a_c目錄下 [root@localhost?12]#?mv?system-release?321//將文件system-release重命名 [root@localhost?12]#?ls 321 [root@localhost?tmp]#?mv?12/?b_c///復制目錄 [root@localhost?tmp]#?cd?b_c [root@localhost?b_c]#?ls 123)rm:刪除文件或目錄
用法:rm [選項]... 文件...
常用選項:
-f 強制刪除
-i 交互式
-r 刪除目錄
實例
[root@localhost?b_c]#?rm?-rf?12 //強制刪除12目錄2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
1.命令歷史:history
環境變量:
HISTSIZE:命令歷史記錄的條數
HISTFILE:~/.bash_history
HISTFILESIZE:命令歷史文件記錄歷史的條數
調用歷史命令的方式:
!#:重復執行第#條指令
!!:執行上一條命令
!string 調用最近以string開頭的命令
!$:調用上一條命令的最后一個參數
ESC,.:調用上一條命令的最后一個參數
控制命令歷史的記錄方式:
環境變量:HISTCONTROL
ignoredups:忽略連續且重復的命令,系統默認
ignorespace:忽略所有以空白開頭的命令;
ignoreboth:上述兩個同時生效
修改環境變量的方式:export 變量名="值"
變量賦值:把賦值符號后面的數據存儲與變量名指向內存空間,至對當前shell有限
2.命令補全:TAB鍵補全命令,
3.路徑補全
4.命令展開
~:展開為用戶的主目錄
~USERNAME:展開為指定用戶的主目錄
[root@localhost?/]#?cd?~ [root@localhost?~]#? [root@localhost?~]#?cd?~jun_shao/ [root@localhost?jun_shao]#?~jun_shao/5.命令的執行結果狀態:成功和失敗,0表示成功,1-255表示失敗
bash使用特殊變量$?保存最近一條命令的執行狀態結果
獲取方式 echo $?
程序執行的有兩類結果:程序的返回值和程序的執行狀態結果
[root@localhost?/]#?ls bin??boot??dev??etc??home??lib??lib64??media??mnt??opt??proc??root??run??sbin??srv??sys??tmp??usr??var [root@localhost?/]#?echo?$? 06.bash的快捷操作
ctrl+L:清屏,相當于clear
ctrl+i:跳轉值命令首部
ctrl+e:跳轉至命令尾部
ctrl+c:取消命令執行
ctrl+U:刪除命令首至光標所在處的內容
ctrl+K:刪除光標所在處至命令行尾部的所有內容
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
[jun_shao@localhost?tmp]$?mkdir?/tmp/{a,b}_{c,d} [jun_shao@localhost?tmp]$?ls a_c??????????????????sensitive-info.log a_d??????????????????ssh-jCe06sIOI6xg anaconda.log?????????ssh-UauJ16N50KP7 b_c??????????????????storage.log b_d??????????????????systemd-private-6d69e0cd5d82468ab85eff756bc26a69-colord.service-cH1SDQ hogsuspend???????????systemd-private-6d69e0cd5d82468ab85eff756bc26a69-cups.service-dE9Cpn hsperfdata_jun_shao??systemd-private-6d69e0cd5d82468ab85eff756bc26a69-rtkit-daemon.service-RjUF2H hsperfdata_root??????systemd-private-6d69e0cd5d82468ab85eff756bc26a69-systemd-hostnamed.service-LisN5B ifcfg.log????????????systemd-private-af9b870d5246476e8ba1feb08891b3d0-colord.service-RDVwUr june?????????????????systemd-private-af9b870d5246476e8ba1feb08891b3d0-cups.service-vUZ9Sj ks-script-ZiDgee?????systemd-private-af9b870d5246476e8ba1feb08891b3d0-rtkit-daemon.service-UT40FH packaging.log????????tracker-extract-files.1000 program.log??????????yum.log(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?mylinux]#?mkdir?-p?/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} [root@localhost?mylinux]#?tree? . ├──?bin ├──?boot │???└──?grub ├──?dev ├──?etc │???├──?rc.d │???│???└──?init.d │???└──?sysconfig │???????└──?network-scripts ├──?lib │???└──?modules ├──?lib64 ├──?lock ├──?log ├──?proc ├──?run ├──?sbin ├──?sys ├──?tmp ├──?usr │???└──?local │???????├──?bin │???????└──?sbin └──?var4、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
1)文件的元數據信息:
文件的大小
文件的所有者
文件的權限
access time:訪問時間,atime
modify time:修改時間,mtime
change time:改變時間,ctime
2)使用stat命令查詢文件的元數據信息
[root@localhost?/]#?stat?/tmp/mylinux/文件:"/tmp/mylinux/"大小:4096??????塊:8??????????IO?塊:4096???目錄 設備:fd00h/64768dInode:206503646???硬鏈接:17 權限:(0755/drwxr-xr-x)??Uid:(????0/????root)???Gid:(????0/????root) 環境:unconfined_u:object_r:user_tmp_t:s0 最近訪問:2016-08-13?02:40:09.054684514?+0800 最近更改:2016-08-13?02:40:02.371740577?+0800 最近改動:2016-08-13?02:40:02.371740577?+0800 創建時間:-3)修改文件的時間戳信息:touch命令
用法:touch [選項]... 文件...
常用選項:
?-a,只更改訪問時間
?-c, --no-create 不創建任何文件
?-d, --date=字符串 使用指定字符串表示時間而非當前時間
?-m 只更改修改時間
?-t STAMP,[[cc]YY]MMDDhhmm[.ss]修改時間戳為指定時間
access time:訪問時間,atime
modify time:修改時間,mtime
change time:改變時間,ctime
[root@localhost?/]#?touch?-t?1510101010.10?tmp/mylinux///修改時間戳為指定日期 [root@localhost?/]#?stat?/tmp/mylinux/文件:"/tmp/mylinux/"大小:4096??????塊:8??????????IO?塊:4096???目錄 設備:fd00h/64768dInode:206503646???硬鏈接:17 權限:(0755/drwxr-xr-x)??Uid:(????0/????root)???Gid:(????0/????root) 環境:unconfined_u:object_r:user_tmp_t:s0 最近訪問:2015-10-10?10:10:10.000000000?+0800 最近更改:2015-10-10?10:10:10.000000000?+0800 最近改動:2016-08-13?15:27:55.012235506?+0800 創建時間:- [root@localhost?/]#?touch?-a?tmp/mylinux/ [root@localhost?/]#?stat?/tmp/mylinux/文件:"/tmp/mylinux/"大小:4096??????塊:8??????????IO?塊:4096???目錄 設備:fd00h/64768dInode:206503646???硬鏈接:17 權限:(0755/drwxr-xr-x)??Uid:(????0/????root)???Gid:(????0/????root) 環境:unconfined_u:object_r:user_tmp_t:s0 最近訪問:2016-08-13?15:28:31.722939290?+0800 最近更改:2015-10-10?10:10:10.000000000?+0800 最近改動:2016-08-13?15:28:31.722939290?+0800 創建時間:- [root@localhost?/]#?stat?/tmp/mylinux/文件:"/tmp/mylinux/"大小:4096??????塊:8??????????IO?塊:4096???目錄 設備:fd00h/64768dInode:206503646???硬鏈接:17 權限:(0755/drwxr-xr-x)??Uid:(????0/????root)???Gid:(????0/????root) 環境:unconfined_u:object_r:user_tmp_t:s0 最近訪問:2016-08-13?15:28:31.722939290?+0800 最近更改:2016-08-13?15:39:49.605469563?+0800 最近改動:2016-08-13?15:39:49.605469563?+0800 創建時間:-5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
命令別名(alias):通過alias命令實現:shell的內嵌命令
1)alias:顯示當前shell進程中所有可用的命令別名
2)alias NAME='VALUE':定義別名NAME,其相當于執行命令VALUE
注意:在明行中定義的別名,僅對當前shell進程有效,如果想永久有效,要定義在配置文件中
?僅對當前用戶:~/.bashrc
?對所有用戶有效:/etc/bashrc
?注意:編輯配置給出的新配置不會立即生效
? bash進程重新讀取配置文件:source /path/to/config_file 或 ./ path/to/config_file
3)撤銷別名:unalias [-a] name [name...]
注意:如果別名和原命令想同,則執行原命令,如:\COMMAND
實例?
[root@localhost?~]#?alias?net='cd?/etc/sysconfig/network-scripts/'//定義別名,僅對當前shell有效 [root@localhost?~]#?net [root@localhost?network-scripts]#? [root@localhost?~]#?nano?.bashrc?//編輯配置文件,對當前用戶有效 [root@localhost?~]#?source?.bashrc?//重新讀取配置文件,是新建的別有有效 [root@localhost?~]#?alias?cp="cp?-r"//定義與系統自帶的相同的命令 [root@localhost?~]#?cp?/etc/sysconfig/?/tmp/b_c/ [root@localhost?~]#?\cp?/etc/fstab?/tmp/b_c///使用\cp執行原來的命令 [root@localhost?~]#?unalias?-a?cp//撤銷別名6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[jun_shao@localhost?~]$?ls?-d?/var/l*[0-9]*[[:lower:]] /var/l121231sdfasd??/var/l2dc7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[jun_shao@localhost?~]$?ls?-d?/tmp/[0-9]*[^0-9] /tmp/111223@??/tmp/111223b??/tmp/111223c8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[jun_shao@localhost?tmp]$?ls?/etc/[^[:alpha:]][[:alpha:]]*9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-08-06-09-32-22。
[root@localhost?/]#?touch?/tmp/`echo?tfile-$(date?+%Y-%m-%d-%H-%M-%S)` [root@localhost?/]#?ls?/tmp/ 111223@??????????????mytest3 111223b??????????????packaging.log 111223c??????????????program.log 11c??????????????????sensitive-info.log 1c2??????????????????ssh-jCe06sIOI6xg 20160813_141413.txt??ssh-UauJ16N50KP7 a_c??????????????????storage.log a_d??????????????????systemd-private-6d69e0cd5d82468ab85eff756bc26a69-colord.service-cH1SDQ anaconda.log?????????systemd-private-6d69e0cd5d82468ab85eff756bc26a69-cups.service-dE9Cpn b_c??????????????????systemd-private-6d69e0cd5d82468ab85eff756bc26a69-rtkit-daemon.service-RjUF2H b_d??????????????????systemd-private-6d69e0cd5d82468ab85eff756bc26a69-systemd-hostnamed.service-LisN5B hogsuspend???????????systemd-private-af9b870d5246476e8ba1feb08891b3d0-colord.service-RDVwUr hsperfdata_jun_shao??systemd-private-af9b870d5246476e8ba1feb08891b3d0-cups.service-vUZ9Sj hsperfdata_root??????systemd-private-af9b870d5246476e8ba1feb08891b3d0-rtkit-daemon.service-UT40FH ifcfg.log????????????tfile-2016-08-13-16-47-00 june?????????????????tfile-2016-08-13-16-47-12 ks-script-ZiDgee?????tfile-date l121231sdfasd????????tfile-date?+%Y-%m-%d-%H-%M-%S l2dc?????????????????tracker-extract-files.1000 mylinux??????????????+%Y-%m-%d-%H-%M-%S mytest1??????????????yum.log mytest2??????????????yum_save_tx.2016-08-13.14-01.B9WFE2.yumtx10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@localhost?/]#?cp?-an?/etc/p[^0-9]*?/tmp/mytest1/ [root@localhost?/]#?ls?/tmp/mytest1/ pam.d???????passwd-???????pkcs11????pm????????????popt.d???prelink.conf.d??profile.d??purple pam_pkcs11??pbm2ppa.conf??pki???????pnm2ppa.conf??postfix??printcap????????protocols??python passwd??????pinforc???????plymouth??polkit-1??????ppp??????profile?????????pulse11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@localhost?/]#?cp?-an?/etc/*.d?/tmp/mytest2/ [root@localhost?/]#?ls?/tmp/mytest2 auto.master.d??????dracut.conf.d??logrotate.d?????profile.d??rc.d???????????sudoers.d bash_completion.d??exports.d??????modprobe.d??????rc0.d??????reader.conf.d??sysctl.d binfmt.d???????????gdbinit.d??????modules-load.d??rc1.d??????request-key.d??tmpfiles.d cgconfig.d?????????grub.d?????????my.cnf.d????????rc2.d??????rsyslog.d??????usb_modeswitch.d chkconfig.d????????init.d?????????oddjobd.conf.d??rc3.d??????rwtab.d????????xinetd.d cron.d?????????????ipsec.d????????pam.d???????????rc4.d??????sane.d?????????yum.repos.d depmod.d???????????ld.so.conf.d???popt.d??????????rc5.d??????setuptool.d dnsmasq.d??????????libibverbs.d???prelink.conf.d??rc6.d??????statetab.d12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@localhost?/]#?cp?-an?/etc/[lmn]*.conf?/tmp/mytest3 [root@localhost?/]#?tree?/tmp/mytest3 /tmp/mytest3 ├──?ld.so.conf ├──?libaudit.conf ├──?libuser.conf ├──?locale.conf ├──?logrotate.conf ├──?man_db.conf ├──?mke2fs.conf ├──?mtools.conf ├──?nfsmount.conf ├──?nsswitch.conf ├──?ntp.conf └──?numad.conf轉載于:https://blog.51cto.com/june1015/1837641
總結
以上是生活随笔為你收集整理的Linux第二次作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring mvc controlle
- 下一篇: ubuntu常用的一些命令