發郵件file
tree文件通配符用途說明文件通配符是一種簡潔高效的語句,主要用來精確搜索或模糊搜索文件。其用一個或多個特殊的字符來實現對真正字符的替換,從而完成相關的任務。在Linux中,主要有以下文件通配符:
* 匹配零個或多個字符 ? 匹配任意單個字符 ~ 當前用戶家目錄 ~username 用戶家目錄 [0-9] 匹配一個數字范圍 [a-z] 大寫與小寫字母 [A-Z] 大寫字母 [ ] 匹配列表中的任意一個字符 [^ ] 對列表中的字符取反 預定義字符類: [:digit:] 任意數字,相當於 0-9 [:lower:] 任意小寫字母 [:upper:] 任意大寫字母 [:alpha:] 任意大小寫字母 [:alnum:] 任意數字或字母 [:space:] 空格 [:punct:] 標點符號使用示例練習環境為CentOS 6.8
1、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄 2、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄 3、顯示/etc/目錄下以非字母開頭,後面跟了一個字母及其它任意長度任意字符的文件或目錄 4、顯示/etc目錄下所有以m開頭以非數字結尾的文件或目錄 5、顯示/etc目錄下,所有以.d結尾的文件或目錄 6、顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的文件或目錄
[root@centos6 var]# ls -d l*[0-9]*[[:lower:]] l4e [root@centos6 var]# [root@centos6 etc]# ls -d [^[:alpha:]]*[^0-9] 33a [root@centos6 etc]# [root@centos6 etc]# ls -d [[:digit:]]*[0-9] 5ea23 [root@centos6 etc]# [root@centos6 etc]# ls -d m*[^0-9] magic mail.rc man.config mime.types modprobe.d mtab my.cnfmailcap makedev.d maven mke2fs.conf motd mtools.conf[root@centos6 etc]# # 注:這個方法無法顯示出文件名為 m 的情況 [root@centos6 etc]# ls -d [mnrp]*.conf mke2fs.conf ntp.conf prelink.conf resolv.confmtools.conf pbm2ppa.conf readahead.conf rsyslog.confnfsmount.conf pm-utils-hd-apm-restore.conf reader.confnsswitch.conf pnm2ppa.conf request-key.conf[root@centos6 etc]#絕對路徑與相對路徑在Linux中,絕對路徑是以 / (根目錄) 開始的,換言之,如果一個路徑是以 / 開始的,那麼它一定就是絕對路徑;其有如下特點:
- 以正斜槓開始- 完整的文件路徑- 可用於任何可指定一個文件名的時候相對路徑是以 . 或 .. 開始的,其中,. 表示用戶當前操作所處的位置, 而 .. 表示上級目錄;其有如下特點:
- 不以斜線開始- 指定相對於當前工作目錄或某目錄的位置- 可以作為一個簡短的形式指定一個文件名使用示例
[root@centos6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0C:29:89:BC:21 TYPE=Ethernet UUID=76d50032-414a-4512-9f19-7d93af6bc0c4 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp [root@centos6 ~]# [root@centos6 ~]# cd /usr/local [root@centos6 local]# cd .. [root@centos6 usr]# cd local/ [root@centos6 local]# cd ../.. [root@centos6 /]#發個簡單郵件用途說明mail命令是電子郵件的發送與接收工具,本次發送郵件我們僅使用 -s 這一個參數,[-s subject] ,即主題。場景:在CentOS 6.8上面用 root 用戶給普通用戶 liansir 發個簡單郵件。直接發送
[root@centos6 ~]# mail -s "Hello lian sir" liansir # 給liansir發送郵件 Hi,I'm root I want you . EOT [root@centos6 ~]# 輸入第一行命令後回車,即可編寫郵件正文,輸入 . 表示結束,再次回車便退出編輯; 或者直接按 Ctrl+d 結束編輯,完成郵件的發送。 [liansir@centos6 ~]$ mail # liansir接收郵件 Heirloom Mail version 12.4 7/29/08. Type ? for help."/var/spool/mail/liansir": 1 message 1 new >N 1 root Thu Jul 28 20:47 19/598 "Hello lian sir"& Message 1: From [email protected] Thu Jul 28 20:47:35 2016Return-Path: <[email protected]> X-Original-To: liansir Delivered-To: [email protected] Date: Thu, 28 Jul 2016 20:47:35 +0800 To: [email protected] Subject: Hello lian sir User-Agent: Heirloom mailx 12.4 7/29/08 Content-Type: text/plain; charset=us-ascii From: [email protected] (root) Status: RHi,I'm root I want you & qHeld 1 message in /var/spool/mail/liansir You have mail in /var/spool/mail/liansir [liansir@centos6 ~]$使用管道進行郵件發送
[root@centos6 ~]# echo "Hi,I'm root,I want you" |mail -s "haha" liansir [root@centos6 ~]#echo 的是郵件的正文,管道後面輸入 mail 命令即可完成郵件的發送,另外,在echo 正文結束時,不要使用! 結尾,否則會報錯。另外,單引號也不太好使。
[root@centos6 ~]# echo "Hi,I'm root,I want you!" |mail -s "haha" liansir -bash: !": event not found [root@centos6 ~]# 可如此解決: [root@centos6 ~]# echo "Hi,I'm $(whoami),I want you"'!' | mail -s "haha" liansir [root@centos6 ~]#使用輸入重定向發送郵件
此種方式可提前寫好郵件正文,然後直接使用輸入重定向的方式發送文件。
[root@centos6 ~]# mail -s "laiba" liansir < sir.mail [root@centos6 ~]# [liansir@centos6 ~]$ mail Message 16: From [email protected] Thu Jul 28 22:26:52 2016Return-Path: <[email protected]> X-Original-To: liansir Delivered-To: [email protected] Date: Thu, 28 Jul 2016 22:26:52 +0800To: [email protected] Subject: laiba User-Agent: Heirloom mailx 12.4 7/29/08Content-Type: text/plain; charset=us-ascii From: [email protected] (root) Status: R xixi, we will be friends! & At EOF & q Held 16 messages in /var/spool/mail/liansir [liansir@centos6 ~]$file用途說明判斷文件類型file - determine file type, file命令用來檢查文件的類型。常用參數-b: 列出辨識結果時,不顯示文件名稱-c: 詳細顯示指令執行過程
-f: 列出文件中文件名的文件類型-F: 使用指定分隔符號替換輸出文件名後默認的":"分隔符
-i: 輸出mime類型的字符串-L: 查看對應軟鏈接對應文件的文件類型
-z: 嘗試去解讀壓縮文件的內容--help: 顯示命令在線幫助
-v: 顯示版本信息使用示例1、顯示文件類型
[root@centos6 ~]# file /etc/issue /etc/issue: ASCII text [root@centos6 ~]# file -b /etc/issue # 不顯示文件名稱 ASCII text [root@centos6 ~]# file install.loginstall.log: ASCII text [root@centos6 ~]# file -i install.log install.log: text/plain; charset=us-ascii # 顯示MIME類別 [root@centos6 ~]#2、顯示符號鏈接的文件類型
[root@centos6 ~]# ls -l /usr/tmp lrwxrwxrwx. 1 root root 10 Jul 20 16:56 /usr/tmp -> ../var/tmp [root@centos6 ~]# ls -l /var/mail lrwxrwxrwx. 1 root root 10 Jul 20 16:56 /var/mail -> spool/mail [root@centos6 ~]# [root@centos6 ~]# file /usr/tmp /usr/tmp: symbolic link to `../var/tmp' [root@centos6 ~]# file /var/mail /var/mail: symbolic link to `spool/mail' [root@centos6 ~]# [root@centos6 ~]# file -Lb /usr/tmp sticky directory # 顯示出/var/tmp的文件類型 [root@centos6 ~]# file -Lb /var/mail directory # 顯示出/var/spool/mail的文件類型 [root@centos6 ~]# [root@centos6 ~]# file /etc/passwd /etc/passwd: ASCII text [root@centos6 ~]# file -F"#" /etc/passwd /etc/passwd# ASCII text # 所顯示文件名後的字符串:變成了# [root@centos6 ~]# file -v file-5.04magic file from /etc/magic:/usr/share/misc/magic [root@centos6 ~]#3、批量判斷文件類型
[root@centos6 ~]# file -f filetype/etc/issue: ASCII text /dev/null: character special /dev/zero: character special /testdir: directory [root@centos6 ~]# cat filetype/etc/issue /dev/null/dev/zero /testdir [root@centos6 ~]#
tree用途說明以樹狀圖列出目錄的結構tree - list contents of directories in a tree-like format.常用參數-d: 只顯示目錄-L level: 指定顯示的層級數目
-P pattern: 只顯示由指定pattern匹配到的路徑-l: 如遇到符號鏈接目錄則列出其指向的原始目錄
-p: 列出權限標識-s: 列出文件和目錄大小
-t: 用文件和目錄的更改時間排序-u: 列出文件和目錄的屬主,無對應名稱時則顯示用戶識別碼
由於涉及到了目錄操作,此處再介紹幾個常見的目錄操作命令:
mkdir: 創建目錄 -p: 自動創建所需的各目錄,且如果有目錄存在也不報錯 -v: 顯示詳細信息 -m MODE: 創建目錄時直接指定權限 rmdir:刪除空目錄 -p: 遞歸刪除父空目錄 -v: 顯示詳細信息 rm -r:遞歸刪除目錄樹注意:在創建文件時,一般情況下要確保新建的目錄與其所在目錄下的文件沒有重名;另外,在創建文件時,可通過創建子目錄的方式更加高效地組織文件,采取統一的命名規則,如目錄名可大寫字母開頭,如此,在目錄列出中目錄名就出現在最前面。使用示例1、在/usr/games/目錄下創建LOL子目錄,且只有root用戶才能讀寫執行,其他用戶無權訪問
[root@centos6 ~]# mkdir -m 700 /usr/games/LOL [root@centos6 ~]# tree /usr/games//usr/games/ └── LOL1 directory, 0 files [root@centos6 ~]# [root@centos6 ~]# cd /usr/games/ [root@centos6 games]# ls -ltotal 4drwx------. 2 root root 4096 Jul 29 09:53 LOL [root@centos6 games]#創建如下目錄結構
/tmp/newroot ├── bin ├── etc │ └── sysconfig │ └── network-scripts ├── sbin ├── usr │ ├── bin │ ├── lib │ ├── lib64 │ ├── local │ │ ├── bin │ │ ├── etc │ │ ├── lib │ │ └── sbin │ └── sbin └── var ├── cache ├── log └── run
[root@centos6 ~]# mkdir -p /tmp/newroot/{bin,etc/sysconfig/network-scripts,sbin, usr/{bin,sbin,lib64,local/{bin,etc,lib,sbin},sbin},var/{log,bin,run}} [root@centos6 ~]# tree /tmp/newroot/ /tmp/newroot/ ├── bin ├── etc │ └── sysconfig │ └── network-scripts ├── sbin ├── usr │ ├── bin │ ├── lib64 │ ├── local │ │ ├── bin │ │ ├── etc │ │ ├── lib │ │ └── sbin │ └── sbin └── var ├── bin ├── log └── run 18 directories, 0 files [root@centos6 ~]#3、顯示/usr/local下的一級目錄的大小、權限,並以更改時間排序
[root@centos6 ~]# tree -L 1 -stp /usr/local/usr/local ├── [drwxr-xr-x 4096] bin ├── [drwxr-xr-x 4096] sbin ├── [drwxr-xr-x 4096] share ├── [drwxr-xr-x 4096] etc ├── [drwxr-xr-x 4096] games ├── [drwxr-xr-x 4096] include ├── [drwxr-xr-x 4096] lib ├── [drwxr-xr-x 4096] lib64 ├── [drwxr-xr-x 4096] libexec └── [drwxr-xr-x 4096] src10 directories, 0 files [root@centos6 ~]#2016.7.29
本文出自 “止戰-連Sir” 博客,請務必保留此出處http://liansir.blog.51cto.com/9372908/1831617