一、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關 示例演示。
linux上文件管理命令包括:
ls,cat,pwd,cp,rm,cd,head,tail,more,less,cut,which,whereis,find,mkdir,mv;
1、ls 命令;顯示文件/文件夾清單
例如:如下顯示列出根目錄下的文件及目錄清單
[root@localhost ~]# ls /var 列出/var文件夾下的目錄及文件等
一般通常后加選項:-a -l -h -d等
-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-d 將目錄象文件一樣顯示,而不是顯示其下的文件。
-l 列出文件的詳細信息。
-h 將文件大小自動轉換為容易理解的文件大?。ɡ纾?K 10M 1G等 )
2、cat 命令:cat命令是linux下的一個文本輸出命令,通常是用于觀看某個文件的內容的;
cat主要有三大功能:
1.一次顯示整個文件。
[root@localhost ~]# cat filename
2.從鍵盤創建一個文件。
[root@localhost ~]# cat > filename
只能創建新文件,不能編輯已有文件.
3.將幾個文件合并為一個文件。
[root@localhost ~]# cat file1 file2 > file
3、pwd命令: 用于查看“當前目錄”’的完整路徑
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts
4、cp命令: 用于復制文件或目錄,一般情況下,shell會設置一個別名,在命令行下復制文件時,如果目標文件已經存在,就會詢問是否覆蓋,不管你是否使用-i參數。但是如果是在shell腳本中執行cp時,沒有-i參數時不會詢問是否覆蓋。這說明命令行和shell腳本的執行方式有些不同。如同時指定兩個以上的文件或目錄,且最后的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄復制到此目錄中。若同時指定多個文件或目錄,而最后的目的地并非一個已存在的目錄,則會出現錯誤信息。
下面這段為網上摘錄,方便自己也方便有類似問題的朋友。
參數:
-a 或 –archive 此參數的效果和同時指定"-dpR"參數相同
-b 或 –backup 刪除、覆蓋目的文件先備份,備份的文件或目錄亦建立為符號鏈接,并指向源文件或目錄鏈接的源文件或目錄。假如沒有加上這個參數,在復制過程中若遇到符號鏈接,則會直接復制源文件或目錄
-f 或 –force 強行復制文件或目錄, 不論目的文件或目錄是否已經存在
-i 或 –interactive 覆蓋文件之前先詢問用戶
-l 或 –link 對源文件建立硬鏈接,而非復制文件
-p 或 –preserve 保留源文件或目錄的屬性,包括所有者、所屬組、權限與時間
-P 或 –parents 保留源文件或目錄的路徑,此路徑可以是絕對路徑或相對路徑,且目的目錄必須已經豐在
-r 遞歸處理,將指定目錄下的文件與子目錄一并處理。若源文件或目錄的形態,不屬于目錄或符號鏈接,則一律視為普通文件處理
-R 或 –recursive 遞歸處理,將指定目錄下的文件及子目錄一并處理
-s 或 –symbolic-link 對源文件建立符號鏈接,而非復制文件
-S <備份字尾字符串> 或 –suffix=<備份字尾字符串> 用"-b"參數備份目的文件后,備份文件的字尾會被加上一個備份字符串。默認的備份字尾符串是符號"~"
-u 或 –update 使用這項參數之后,只會在源文件的修改時間(Modification Time)較目的文件更新時,或是名稱相互對應的目的文件并不存在,才復制文件
-v 或 –verbose 顯示執行過程
-V <備份方式> 或 –version-control=<備份方式> 指定當備份文件時,備份文件名的命名方式,有以下3種:
1.numbered或t, 將使用備份編號,會在字尾加上~1~字符串,其數字編號依次遞增
2.simple或never 將使用簡單備份,默認的備份字尾字符串是~, 也可通過-S來指定
3.existing或nil將使用當前方式,程序會先檢查是否存在著備份編號,若有則采用備份編號,若無則采用簡單備份
-x 或 –one-file-system 復制的文件或目錄存放的文件系統,必須與cp指令執行時所處的文件系統相同,否則不復制,亦不處理位于其他分區的文件
–help 顯示在線幫助
–sparse=<使用時機> 設置保存希疏文件的時機
–version 顯示版本
示例:
.復制文件,只有源文件較目的文件的修改時間新時,才復制文件
cp -u -v file1 file2
.將文件file1復制成文件file2
cp file1 file2
.采用交互方式將文件file1復制成文件file2
cp -i file1 file2
.將文件file1復制成file2,因為目的文件已經存在,所以指定使用強制復制的模式
cp -f file1 file2
.將目錄dir1復制成目錄dir2
cp -R file1 file2
.同時將文件file1、file2、file3與目錄dir1復制到dir2
cp -R file1 file2 file3 dir1 dir2
.復制時保留文件屬性
cp -p a.txt tmp/
.復制時保留文件的目錄結構
cp -P /var/tmp/a.txt ./temp/
.復制時產生備份文件
cp -b a.txt tmp/
.復制時產生備份文件,尾標 ~1~格式
cp -b -V t a.txt /tmp
.指定備份文件尾標
cp -b -S _bak a.txt /tmp
5、rm命令:刪除一個目錄中一個或多個文件或目錄。
注意:-r 為將列出的目錄及子目錄和文件遞歸刪除。
[root@localhost ~]# rm -r test
6、cd命令:從當前目錄切換進入到指定目錄
[root@localhost ~]# cd 進入用戶主目錄
[root@localhost ~]# cd – 返回上級目錄
7、head命令:用于顯示輸出指定文件打印開頭10行。參數-n為指定幾行
[root@localhost ~]# head -n15 /etc/passwd 查看/etc目錄下的的passwd文件打印開頭15行
8、tail命令:用于顯示輸出指定文件打印結尾10行。參數-n為指定幾行
[root@localhost ~]# tail -n 15 /etc/passwd 查看/etc目錄下的passwd文件打印結尾15行
9、more命令: 與cat命令功能類似,都是查看文件內容,但有所不同的是more可以按頁來查看文件的內容。
10、less命令:less 與 more 類似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動,卻不能向后移動,而且 11、less 在查看之前不會加載整個文件。
11、cut命令:剪切命令,一般是配合"|"管道來使用的。
12、which命令:查看某個命令的路徑
[root@localhost ~]# which cat
/usr/bin/cat
13、whereis命令:查找文件的路徑位置,可查詢可執行文件,源代碼文件,幫助文件在系統中的位置。
[root@localhost ~]# whereis cat
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
14、find命令:文件查找命令 linux下find命令在目錄結構中搜索文件,linux下find命令提供了相當多的查找條件,功能非常強大。
15、mkdir命令:創建指定目錄命令
16、mv命令:移動或重命名文件或目錄命令
二,bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
1、bash使用特殊變量$?保存最近一條命了的執行狀態結果: 0 表示成功 1-255表示失敗
[root@localhost ~]# cd /etc
[root@localhost etc]# echo $?
0
[root@localhost etc]# cdd
-bash: cdd: 未找到命令
[root@localhost etc]# echo $?
127
[root@localhost etc]#
2、命令行展開: ~:展開為用戶的主目錄 ~username:為展開指定用戶的主目錄
示例演示
[root@localhost ~]# mkdir /tmp/{a,b}
[root@localhost ~]# mkdir /tmp/{a,b}/c
[root@localhost ~]# cd /tmp/a/c/
[root@localhost c]# pwd
/tmp/a/c
[root@localhost c]# cd /tmp/b/c
[root@localhost c]# pwd
/tmp/b/c
三、請使用命令行展開功能來完成以下練習: (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d (2)、創建/tmp/mylinux目錄下的:
mylinux/
(1)
[root@localhost ~]# mkdir /tmp/{a,b}_{c,d}
[root@localhost ~]#
[root@localhost ~]# ls /tmp
a_c a_d b_c b_d glances.log ks-script-by5YLu yum.log
(2)
[root@localhost ~]# 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}}
[root@localhost ~]# tree /tmp/mylinux/
/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
24 directories, 0 files
[root@localhost ~]#
四、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息
元數據:用來描述一個文件的系統特征,如訪問權限,文件數據分布等。
用法:
[root@localhost ~]# ll
-rw——-. 1 root root 955 6月 14 20:33 anaconda-ks.cfg 便是文件anaconda-ks.cfgd的元數據信息
- :文件類型 (-或f為普通文件,d為目錄文件,b為塊設備,c為字符設備,l為符號鏈接文件,p為管道文件,s為套接字文件socket,)
rw-:屬主權限,r為可讀,w為可寫 (x為可執行文件)
—:屬組權限, -不可讀寫執行
— :其它,不可讀寫執行
1 :表示硬鏈接數量
root:第一個root表示屬主
root:第二個root表示屬組
955 :為文件大小
6月 14 20:33:為時間
anaconda-ks.cfg:最后一位表示文件名
[root@localhost ~]# stat /tmp/a_c
文件:"/tmp/a_c"
大?。? 塊:0 IO 塊:4096 目錄
設備:fd00h/64768d Inode:603870 硬鏈接:2
權限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
環境:unconfined_u:object_r:user_tmp_t:s0
最近訪問:2016-06-18 07:05:06.152455323 +0800
最近更改:2016-06-18 07:05:06.152455323 +0800
最近改動:2016-06-18 07:05:06.152455323 +0800
創建時間:-
使用touch命令修改時間戳信息
五、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
1,用法
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep –color=auto'
alias fgrep='fgrep –color=auto'
alias grep='grep –color=auto'
alias l.='ls -d .* –color=auto'
alias ll='ls -l –color=auto'
alias ls='ls –color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde'
[root@localhost ~]#
示例
[root@localhost ~]# alias la=$(ls -a)
2, 命令引用: name='COMMAND'或name=$(COMMAND)
六、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@localhost ~]# ls -a /var|grep ^l.*[0-9].*[a-z]$
[root@localhost ~]# ls -a /var|grep "\<l.*[0-9].*[a-z]\>"
七、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@localhost ~]# ls -a /etc/|grep ^[0-9].*[^0-9]$
八、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
[root@localhost ~]# ls -a /etc/|grep ^[^[:alpha:]][[:alpha:]
九、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch /tmp/tfile-`date "+%Y-%m-%d-%H-%M-%S"`
十、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@localhost ~]# mkdir /tmp/mytest1
[root@localhost ~]# cp -r /etc/p*[^0-9] /tmp/mytest1
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# ls /tmp/mytest1
pam.d passwd passwd- pki plymouth pm popt.d postfix ppp prelink.conf.d printcap profile profile.d protocols python
[root@localhost ~]#
十一、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@localhost ~]# mkdir /tmp/mytest2
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2
ls /tmp/mytest2[root@localhost ~]# ls /tmp/mytest2
bash_completion.d cron.d dracut.conf.d ld.so.conf.d modules-load.d popt.d rc0.d rc3.d rc6.d rwtab.d sysctl.d yum.repos.d
binfmt.d depmod.d grub.d logrotate.d my.cnf.d prelink.conf.d rc1.d rc4.d rc.d statetab.d tmpfiles.d
chkconfig.d dnsmasq.d init.d modprobe.d pam.d profile.d rc2.d rc5.d rsyslog.d sudoers.d xinetd.d
[root@localhost ~]#
[root@localhost ~]#
十二、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
[root@localhost ~]# mkdir /tmp/mytest3
[root@localhost ~]# cp /etc/[l,m,n]*.conf /tmp/mytest3
ls /tmp/mytest3[root@localhost ~]# ls /tmp/mytest3
ld.so.conf lftp.conf libaudit.conf libuser.conf locale.conf logrotate.conf man_db.conf mke2fs.conf nsswitch.conf
[root@localhost ~]#
原創文章,作者:huan918,如若轉載,請注明出處:http://www.www58058.com/18756
寫的很棒,可以關注一些排版的技巧,那樣會更完美