重要的目錄文件

/var variable 可變化的數據
/var/log/messages 系統默認的日誌
跑的業務,服務,定時任務等的內容默認產生日誌。日誌就是看你運行的過程中有什麼錯誤,bug
tail /var/log/messages 查看日誌的末尾十行

/var/log/secure 系統安全日誌 記錄用戶登錄信息
實時輸出日誌的輸出情況 tail的第二個功能
tail -f /var/log/secure
在xshell中設置錯誤的密碼登錄,會在系統安全日誌中出現錯誤的信息
grep 'Failed' /var/log/secure

日誌切割 防止日誌或文件過大
系統默認給我們切割日誌,爲了防止日誌或文件過大
ll /var/log/secure*

日誌過大的影響
實驗:建個大文件實驗。
結果:
日誌過大發現系統非常卡,加載不過來,對系統有影響

/proc
/proc/cpuinfo cpu信息
processor : 0 核心數(從0開始)
physical id : 0 幾顆CPU(從0開始)
修改虛擬機cpu和核心數

雙路四核心

grep 'physical id' /proc/cpuinfo CPU顆數 0 0 1 1 兩顆CPU 一個CPU兩核心
grep 'processor' /proc/cpuinfo 核心數 0 1 2 3 四核心

lscpu 查看CPU信息

CPU(s): 1 核心數量
On-line CPU(s) list: 0 核心編號
Socket(s): 1 1個cpu

CPU(s): 4 核心數量
On-line CPU(s) list: 0-3 核心編號
Core(s) per socket: 2 2個cpu
/proc/meminfo 查看內存信息
MemTotal: 995880 kB 內存總大小
MemFree: 860232 kB 可用內存
Buffers: 0 kB 寫緩衝
Cached: 25864 kB 讀緩存

free -h 查看內存信息

/proc/loadavg load average 平均負載
負載 平均
cat /proc/loadavg

衡量是系統的繁忙程度:是否達到核心數的總數
CPU 核心數量 2======負載最大值2
4====== 4
0.00 0.01 0.07 2/107 2339
1分鐘內的平均值 5分鐘內的平均值 15分鐘內的平均值
w 查看負載信息

注意:在裏面的FROM選項,如果出現不認識的ip地址,可能就是服務器被黑
還可以看到用戶操作文件

uptime 查看cpu負載信息
負載 用戶 運行時間

負載衡量的是什麼?
cpu 硬盤

top 查看系統詳細信息
按數字鍵1 可以看到所有的核心
按 m 可以查看那個佔用內存最多
退出命令:
ctrl + c
q

/proc/mounts 掛載信息
瞭解就好,主要關注/etc/fstab
總結
/etc/
/etc/sysconfig/network-scripts/ifcfg-eth0
網卡配置文件
/etc/hostname
系統主機名
/etc/hosts
IP地址和域名的對應關係,本地DNS服務器
/etc/resolv.conf
DNS配置文件nameserver 223.5.5.5
/etc/rc.local
開機自動啓動的配置文件,執行權限
/etc/fstab
開機自動掛載的配置文件
/etc/inittab
系統的運行級別配置文件
/etc/issue
系統登錄前的提示信息
/etc/issue.net
系統登錄前的提示信息
/etc/motd
系統登錄後的提示信息
/etc/profile
環境變量配置文件
/etc/bashrc
別名
/etc/redhat-release
查看系統的版本號
/usr/local
編輯安裝默認的目錄
/var
/var/log/messages
系統默認的日誌
/var/log/secure
系統安全日誌
/proc
/proc/cpuinfo
查看cpu信息
/proc/meminfo
查看內存信息
/proc/loadavg
查看系統平均負載
/proc/mounts
查看掛載詳細信息
創建普通用戶
useradd 用戶名
useradd alex
id alex查看用戶信息
切換用戶root切換到普通用戶不需要權限,密碼。直接切換
su - alex -代表切換的時候更新環境變量

案例:

退出alex普通用戶到root用戶
exit
ctrl+d
logout

xshell創建alex用戶的連接

在root用戶給普通用戶alex設置密碼 passwd alex
在xshell中打開會話窗口,複製一個會話,重命名爲alex,然後設置選項,用戶名改爲alex,確定,沒有密碼,我們就去設置密碼,在root用戶給alex設置密碼。
alex要切換到root用戶,需要密碼

PS1 修改命令行格式的變量

[ \u@ \h \W] \$
user @ \hostname 路徑 用戶提示符
瞭解

修改:

PS1=[\u@\h \W \t]\$

yum源修改
第一個里程牌 查看該當前使用的倉庫
yum repolist 默認的倉庫隨機選擇某個大學 或者某個倉庫網站
第二個里程碑 修改默認yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
使用wget或者curl 命令下載 如果是wget 前提是安裝了wget
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
安裝企業擴展安裝包 epel
安裝wget
ctrl + f 搜索頁面內容 epel
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安裝命令補全包
yum -y install bash-completion-extras

關閉selinux 重點(必須關閉)
selinux 增強版防火牆 美國國家安全局開發

永久關閉selinux
        修改配置文件/etc/selinux/config
        重啓生效
    臨時關閉selinux
        如何查看當前是否關閉了selinux
        getenforce
        [root@oldboy ~]#setenforce 
        usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]
        [root@oldboy ~]#setenforce 0
        [root@oldboy ~]#getenforce 
        Permissive
        Enforcing  =====1
        Permissive =====0

關閉firewalld重點 學習可以關閉 工作中禁止關閉
centos7.x centos6.x
firewalld iptables 重點
1)查看防火牆狀態 c6.x查看防火牆狀態
systemctl status firewalld /etc/init.d/iptables status
2)臨時關閉防火牆 臨時關閉防火牆
systemctl stop firewalld /etc/init.d/iptables stop
3)永久關閉防火牆 永久關閉防火牆
systemctl disable firewalld chkconfig iptables off

作業 : curl ,date ,centos6安裝
curl
1 curl http://www.centos.org
通過-o/-O選項保存下載的文件到指定的文件中:
-o:將文件保存爲命令行中指定的文件名的文件中
-O:使用URL中默認的文件名保存文件到本地
?
1
2
3
4 # 將文件下載到本地並命名爲mygettext.html
curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

將文件保存到本地並命名爲gettext.html

curl -O http://www.gnu.org/software/gettext/manual/gettext.html
同樣可以使用轉向字符">"對輸出進行轉向輸出
同時獲取多個文件
?
1 curl -O URL1 -O URL2
若同時從同一站點下載多個文件時,curl會嘗試重用鏈接(connection)。
通過-L選項進行重定向
默認情況下CURL不會發送HTTP Location headers(重定向).當一個被請求頁面移動到另一個站點時,會發送一個HTTP Loaction
header作爲請求,然後將請求重定向到新的地址上。
例如:訪問google.com時,會自動將地址重定向到google.com.hk上。
?
1
2
3
4
5
6
7
8
9
10
11
12 curl http://www.google.com
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html;charset=utf-">
<TITLE> Moved</TITLE>
</HEAD>
<BODY>
<H> Moved</H>
The document has moved
<A HREF="http://www.google.com.hk/url?sa=p&hl=zh-CN&pref=hkredirect&pval=yes&q=http://www.google.com.hk/&ust=amp;usg=AFQjCNFoumfjyJpNDPuFKTibavEaA">here</A&gt;.
</BODY>
</HTML>
上述輸出說明所請求的檔案被轉移到了http://www.google.com.hk。
這是可以通過使用-L選項進行強制重定向
1 # 讓curl使用地址重定向,此時會查詢google.com.hk站點
2 curl -L http://www.google.com
斷點續傳
通過使用-C選項可對大文件使用斷點續傳功能,如:
?
1
2
3
4
5
6 # 當文件在下載完成之前結束該進程
$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html
############## .%

通過添加-C選項繼續對該文件進行下載,已經下載過的文件不會被重新下載

curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
############### .%
對CURL使用網絡限速
通過--limit-rate選項對CURL的最大網絡使用進行限制

下載速度最大不會超過1000B/second

curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html
下載指定時間內修改過的文件
當下載一個文件時,可對該文件的最後修改日期進行判斷,如果該文件在指定日期內修改過,就進行下載,否則不下載。
該功能可通過使用-z選項來實現:

若yy.html文件在2011/12/21之後有過更新纔會進行下載

curl -z 21-Dec-11 http://www.example.com/yy.html
CURL授權
在訪問需要授權的頁面時,可通過-u選項提供用戶名和密碼進行授權
curl -u username:password URL

通常的做法是在命令行只輸入用戶名,之後會提示輸入密碼,這樣可以保證在查看歷史記錄時不會將密碼泄露

4 curl -u username URL
從FTP服務器下載文件
CURL同樣支持FTP下載,若在url中指定的是某個文件路徑而非具體的某個要下載的文件名,CURL則會列出該目錄下的所有文件名而並非下載該目錄下的所有文件

列出public_html下的所有文件夾和文件

curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/

下載xss.php文件

curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php
上傳文件到FTP服務器
通過 -T 選項可將指定的本地文件上傳到FTP服務器上
?
1
2
3
4
5
6
7
8
9
10
11 # 將myfile.txt文件上傳到服務器

curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

同時上傳多個文件

curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com

從標準輸入獲取內容保存到服務器指定的文件中

curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt
獲取更多信息
通過使用 -v 和 -trace獲取更多的鏈接信息
通過字典查詢單詞

查詢bash單詞的含義

curl dict://dict.org/d:bash

列出所有可用詞典

curl dict://dict.org/show:db

在foldoc詞典中查詢bash單詞的含義

curl dict://dict.org/d:bash:foldoc
爲CURL設置代理
-x 選項可以爲CURL添加代理功能

指定代理主機和端口

curl -x proxysever.test.com:3128 http://google.co.in
其他網站整理
保存與使用網站cookie信息

將網站的cookies信息保存到sugarcookies文件中

curl -D sugarcookies http://localhost/sugarcrm/index.php

使用上次保存的cookie信息

curl -b sugarcookies http://localhost/sugarcrm/index.php
傳遞請求數據
默認curl使用GET方式請求數據,這種方式下直接通過URL傳遞數據
可以通過 --data/-d 方式指定使用POST方式傳遞數據

GET

curl -u username https://api.github.com/user?access_token=XXXXXXXXXX

POST

curl -u username --data "param=value¶m=value" https://api.github.com

也可以指定一個文件,將該文件中的內容當作數據傳遞給服務器端

curl --data @filename https://github.api.com/authorizations
注:默認情況下,通過POST方式傳遞過去的數據中若有特殊字符,首先需要將特殊字符轉義在傳遞給服務器端,如value值中包含有空格,則需要先將空格轉換成%20,如:
curl -d "value%201" http://hostname.com
在新版本的CURL中,提供了新的選項 --data-urlencode,通過該選項提供的參數會自動轉義特殊字符。
curl --data-urlencode "value 1" http://hostname.com
除了使用GET和POST協議外,還可以通過 -X 選項指定其它協議,如:
curl -I -X DELETE https://api.github.cim
上傳文件
curl --form "[email protected]" http://hostname/resource
date
1、命令:date
2、命令功能:date 可以用來顯示或設定系統的日期與時間。
3、命令參數
-d<字符串>:顯示字符串所指的日期與時間。字符串前後必須加上雙引號;
-s<字符串>:根據字符串來設置日期與時間。字符串前後必須加上雙引號;
-u:顯示GMT;
--help:在線幫助;
--version:顯示版本信息。
4、日期格式字符串列表

%H 小時(以00-23來表示)。
%I 小時(以01-12來表示)。
%K 小時(以0-23來表示)。
%l 小時(以0-12來表示)。
%M 分鐘(以00-59來表示)。
%P AM或PM。
%r 時間(含時分秒,小時以12小時AM/PM來表示)。
%s 總秒數。起算時間爲1970-01-01 00:00:00 UTC。
%S 秒(以本地的慣用法來表示)。
%T 時間(含時分秒,小時以24小時制來表示)。
%X 時間(以本地的慣用法來表示)。
%Z 市區。
%a 星期的縮寫。
%A 星期的完整名稱。
%b 月份英文名的縮寫。
%B 月份的完整英文名稱。
%c 日期與時間。只輸入date指令也會顯示同樣的結果。
%d 日期(以01-31來表示)。
%D 日期(含年月日)。
%j 該年中的第幾天。
%m 月份(以01-12來表示)。
%U 該年中的週數。
%w 該周的天數,0代表週日,1代表週一,異詞類推。
%x 日期(以本地的慣用法來表示)。
%y 年份(以00-99來表示)。
%Y 年份(以四位數來表示)。
%n 在顯示時,插入新的一行。
%t 在顯示時,插入tab。
MM 月份(必要)
DD 日期(必要)
hh 小時(必要)
mm 分鐘(必要)
ss 秒(選擇性)

5、實例
格式化輸出:
date +"%Y-%m-%d"
2015-12-07
輸出昨天日期:
date -d "1 day ago" +"%Y-%m-%d"
2015-11-19
2秒後輸出:
date -d "2 second" +"%Y-%m-%d %H:%M.%S"
2015-11-20 14:21.31
傳說中的 1234567890 秒:
date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"
2009-02-13 23:02:30
普通轉格式:
date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"
2009/12/12 00:00.00
apache格式轉換:
date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
2009-12-05 00:00.37
格式轉換後時間:
date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
2007-12-05 00:00.37
加減操作:

date +%Y%m%d #顯示前天年月日
date -d "+1 day" +%Y%m%d #顯示前一天的日期
date -d "-1 day" +%Y%m%d #顯示後一天的日期
date -d "-1 month" +%Y%m%d #顯示上一月的日期
date -d "+1 month" +%Y%m%d #顯示下一月的日期
date -d "-1 year" +%Y%m%d #顯示前一年的日期
date -d "+1 year" +%Y%m%d #顯示下一年的日期

設定時間:

date -s #設置當前時間,只有root權限才能設置,其他只能查看
date -s 20120523 #設置成20120523,這樣會把具體時間設置成空00:00:00
date -s 01:01:01 #設置具體時間,不會對日期做更改
date -s "01:01:01 2012-05-23" #這樣可以設置全部時間
date -s "01:01:01 20120523" #這樣可以設置全部時間
date -s "2012-05-23 01:01:01" #這樣可以設置全部時間
date -s "20120523 01:01:01" #這樣可以設置全部時間

檢查一組命令花費的時間:

#!/bin/bash
start=$(date +%s)
nmap man.linuxde.net &> /dev/null
end=$(date +%s)
difference=$(( end - start ))
echo $difference seconds.

第1章 Linux date命令詳解

1、顯示時間
date命令可以按照指定格式顯示日期,只鍵入date則以默認格式顯示當前時間。如下:

如果需要以指定的格式顯示日期,可以使用“+”開頭的字符串指定其格式,詳細格式如下:
%n : 下一行
%t : 跳格
%H : 小時(00-23)
%I : 小時(01-12)
%k : 小時(0-23)
%l : 小時(1-12)
%M : 分鐘(00-59)
%p : 顯示本地 AM 或 PM
%r : 直接顯示時間 (12 小時制,格式爲 hh:mm:ss [AP]M)
%s : 從 1970 年 1 月 1 日 00:00:00 UTC 到目前爲止的秒數
%S : 秒(00-60)
%T : 直接顯示時間 (24 小時制)
%X : 相當於 %H:%M:%S
%Z : 顯示時區
%a : 星期幾 (Sun-Sat)
%A : 星期幾 (Sunday-Saturday)
%b : 月份 (Jan-Dec)
%B : 月份 (January-December)
%c : 直接顯示日期與時間
%d : 日 (01-31)
%D : 直接顯示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第幾天 (001-366)
%m : 月份 (01-12)
%U : 一年中的第幾周 (00-53) (以 Sunday 爲一週的第一天的情形)
%w : 一週中的第幾天 (0-6)
%W : 一年中的第幾周 (00-53) (以 Monday 爲一週的第一天的情形)
%x : 直接顯示日期 (mm/dd/yy)
%y : 年份的最後兩位數字 (00.99)
%Y : 完整年份 (0000-9999)
上述格式不必全都記住,只需要掌握幾個常用的即可。例如%Y表示年,%m表示月,%d表示日,%H表示小時,%M表示分鐘,%S表示秒,%s表示從 1970 年 1 月 1 日 00:00:00 UTC 到目前爲止的秒數,相當於time函數,%w表示一週中的第幾天。
實例見下:

如果要顯示的時間不是當前時間,而是經過運算的時間,則可以用-d選項。例如顯示三年前的時間:

看到這個命令我很受傷,過去的時間再也回不去了,只能用命令看看。顯示三個月後的時間:

顯示十天後的時間:

有時候需要獲取當前時間距離1970年0時0分0秒所經歷的秒數,保存在變量中:

2、設置時間
用 -s選項可以設置系統時間:

方式多種多樣,任你選:

你要足夠相信date的智能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章