Centos學習筆記 by 小陌_0226

1、linux目錄管理和文件管理

1.建立目錄
mkdir  -p /home/test1
mkdir  -p /root/test2

2.切換目錄
cd /home/test1
cd /root/test2

3.查看路徑
pwd

4.建立文件
touch /home/test1/file1
touch /root/test2/file2

5.顯示文件列表
ls 
ls -a

6.複製文件和目錄
cp /home/test1/file1 /root/test2

7.刪除文件
rm /home/test1/file1

8.刪除目錄
rmdir /home/test1 (-r 刪除非空目錄)

9.移動和重命名
mv file1 file2

10.查找文件
find /home/test1 -name file1
find /home/test1 -name fil*
find /home/test1 -mtime 3

11.使用vi編輯器建立文件、編輯和查看
vi test.txt 
cat test.txt 
more/less test.txt
head/tail -3 test.txt
more test.txt | grep 9 (關鍵字查找)
head -5 test.txt >> /dev/tty3 (輸出重定向)
:n1,n2s /word1/word2/g 在第n1與n2行之間尋找word1,並將它替換爲word2
:1,$s/word1/word2/g 從第 一行開始到最後一行查找word1並替換爲word2

12.查看系統信息
uname -r / uname -a
cal 2015
date

13.磁盤分區/格式化/檢驗/掛載
分區
df  / fdisk -l  找出磁盤名
fdisk /dev/sda   n  +2048M   w
格式化
mkfs -t ext3 /dev/sda3
檢驗
fsck -C -f -t ext3 /dev/sda2 
掛載
mkdir /mnt/usb
mount /dev/sdb1 /mnt/usb
umount /dev/sdb1 
大於2T硬盤掛載
parted /dev/sdb  (假設sdb 是新增大於2T硬盤)
print (查看一下)
(parted) mklabel gpt
(parted) unit TB
(parted) mkpart primary 0 3
print (查看一下)
quit
mkfs.ext4 /dev/sdb1(格式化硬盤分區1)
mount /dev/sdb1 /data (掛載,以後便可使用了)
自動掛載
blkid /dev/sdb 
找出UUID
vi /etc/fstab
UUID=8e4619b8-2778-467d-88e3-4fcdc5f0239a /boot    ext4    defaults        0 0

14.修改權限和全部權
chown root file1
chmod 755 file1

15.增長用戶組/添加用戶
groupadd project
useradd -G project user1

16.目錄權限和屬性修改
chgrp project /目錄
chmod 770 /目錄

17.加入SGID 權限
chomod 2770 /目錄

18.查看是否安裝  
rpm -q 包名稱
rpm -qa |grep ftp
rpm -ivh 軟件包名稱
rpm -e 軟件名稱 (卸載軟件)

19.查看/更改服務狀態
chkconfig --list | grep vsftpd
chkconfig --level 235 vsftpd on

20.延遲性調度命令at
eg:
一分鐘後在tty1中,提示「hello!!」
at now +1 minutes
  at> echo "hello !!" >/dev/tty1
  at> ctrl+D 
eg:
系統兩天後的17:30執行文件data制定做業 。
at-f data 17:30+2 days

21.週期性調度命令crontab
crontab
minute  hour day  mouth  dayofweek  command
  30     8    *     *        4       echo「meeting at 10:00 AM」> /dev/tty1
ctrl +D
修改週期性任務
crontab -e

22.查看/終止進程
ps aux |less
ps aux |grep cy  (查看用戶cy全部進程信息)
終止進程
ps -A |grep sshd 
kill 2749

23.tar包管理
建立包
tar -cvf test.tar test
建立壓縮包
tar -zcvf test.tar.gz test
tar -jcvf test.tar.bz2 test
查看包文件列表
tar -tvf test.tar
tar -ztvf test.tar.bz2
釋放包/釋放壓縮包到指定目錄
tar -xvf test.tar -C /tmp
tar -zxvf test.tar.bz2 -C /tmp
tar包追加文件
tar -rvf test.tar exam.c
更新包中文件
tar -uvf test.tar exam.c
gzip -v man.config  壓縮
gzip -d man.config.gz 解壓
zcat man.config.gz 查看/讀取
bzip2 -v man.config 壓縮
bzip2 -d man.config.bz2  解壓
bzcat man.config.bz2  查看/讀取

24.網絡環境配置
主機名配置
vi /etc/sysconfig/network
網卡配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.0.103
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=192.168.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
HWADDR=0:0C:29:C7:58:6D
ONBOOT=yes
DNS配置
vi /etc/resolv.conf 
nameserver 61.139.2.69

25.Linux掛載Winodws共享文件夾
假定win機 d:/folder/share 的共享名爲 share , 有用戶administrator ,密碼123
在linux機上,把share掛到/mnt目錄:
mount -t cifs -o username=administrator,password=123 //192.168.0.11/share /mnt
其中-t表示要掛載的類型,cifs是微軟提供遠程訪問的一個協議。

26.netstat 詳解
 netstat -a 列出全部當前的鏈接
只列出 TCP 或 UDP 協議的鏈接
 netstat -at  /  netstat -au
IP禁用域名解析功能
 netstat -ant
只列出監聽中的鏈接
 netstat -tnl
獲取進程名、進程號以及用戶 ID(須要root權限)
 netstat -nlpt  /  netstat -ltpe
顯示內核路由
 netstat -rn
查看http的併發請求數及其TCP鏈接狀態
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
返回結果示例:
  LAST_ACK 5
  SYN_RECV 30
  ESTABLISHED 1597
  FIN_WAIT1 51
  FIN_WAIT2 504
  TIME_WAIT 1057
  其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。
查看linux環境中的routing cache
netstat -rn --cache

27.mySQL 經常使用命令
mysql -uroot -p #登錄數據庫
mysql> SHOW DATABASES;#查看數據庫
mysql> CREATE DATABASE MYSQLDATA; #建立一個數據庫MYSQLDATA
mysql> USE MYSQLDATA; #按回車鍵出現Database changed 時說明操做成功
mysql> SHOW TABLES;#查看如今的數據庫中存在什麼表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));#建立一個數據庫表
mysql> DESCRIBE MYTABLE;#顯示錶的結構
mysql> insert into MYTABLE values (」cy」,」M」);#向表中添加數據
mysql> LOAD DATA LOCAL INFILE 「D:/mysql.txt」 INTO TABLE MYTABLE;#用文本方式將數據裝入數據庫表中(例如D:/mysql.txt)
mysql>use database;
mysql>source d:/mysql.sql; #導入.sql文件命令(例如D:/mysql.sql)
mysql>drop TABLE MYTABLE;#刪除表
mysql>delete from MYTABLE;#清空表
mysql>update MYTABLE set sex=」f」 where name=’hyq’;#更新表中某一項數據

28.文件系統完整備份/恢復:dump/restore
備份:
dump -S /dev/sdb  測試備份文件系統須要的容量
完整備份文件系統
dump -0u -f /root/boot.dump /boot
僅備份差別文件部分
dump -1u -f /root/boot.dump.1 /boot
非單一文件系統,即單一目錄dump備份
dump -0j -f /root/etc.dump.bz2 
恢復:
restore -t -f /root/boot.dump 查看備份數據內容
新建一個文件系統再還原
fdisk /dev/sdc 
n
+105M
p
w
partprobe
mkfs -t ext3 /dev/sdc
mount /dev/sdc  /mnt
cd /mnt
restore -r -f /root/boot.dump 

29.lsof 命令詳解
COMMAND     PID        USER        FD       TYPE             DEVICE SIZE/OFF    NODE    NAME
進程名稱 進程標識符  進程全部者 文件描述符  文件類型         指定磁盤的名稱   索引節點  確切名稱
lsof [options] filename
lsof abc.txt 顯示開啓文件abc.txt的進程
lsof -c abc 顯示abc進程如今打開的文件
lsof -c -p 1234 列出進程號爲1234的進程所打開的文件
lsof -g gid 顯示歸屬gid的進程狀況
lsof +d /usr/local/ 顯示目錄下被進程開啓的文件
lsof +D /usr/local/ 同上,可是會搜索目錄下的目錄,時間較長
lsof -d 4 顯示使用fd爲4的進程
lsof -i 用以顯示符合條件的進程狀況
lsof|grep del
恢復刪除的文件
當進程打開了某個文件時,只要該進程保持打開該文件,即便將其刪除,它依然存在於磁盤中。
當系統中的某個文件被意外地刪除了,只要這個時候系統中還有進程正在訪問該文件,那麼咱們就能夠經過lsof從/proc目錄下恢復該文件的內容。
假如因爲誤操做將/var/log/messages文件刪除掉了,那麼這時要將/var/log/messages文件恢復的方法以下:
首先使用lsof來查看當前是否有進程打開/var/logmessages文件,以下:
# lsof |grep /var/log/messages 
syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted)
從上面的信息能夠看到 PID 1283(syslogd)打開文件的文件描述符爲 2。同時還能夠看到/var/log/messages已經標記被刪除了。所以咱們能夠在 /proc/1283/fd/2 (fd下的每一個以數字命名的文件表示進程對應的文件描述符)中查看相應的信息,以下:
# head -n 10 /proc/1283/fd/2 
Aug 4 13:50:15 holmes86 syslogd 1.4.1: restart. 
Aug 4 13:50:15 holmes86 kernel: klogd 1.4.1, log source = /proc/kmsg started. 
Aug 4 13:50:15 holmes86 kernel: Linux version 2.6.22.1-8 (root@everestbuilder.linux-ren.org) (gcc version 4.2.0) #1 SMP Wed Jul 18 11:18:32 EDT 2007 Aug 4 13:50:15 holmes86 kernel: BIOS-provided physical RAM map: Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 0000000000000000 - 000000000009f000 (usable) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 0000000000100000 - 000000001f7d3800 (usable) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved) Aug 4 13:50:15 holmes86 kernel: BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)
從上面的信息能夠看出,查看 /proc/8663/fd/15 就能夠獲得所要恢復的數據。
若是能夠經過文件描述符查看相應的數據,那麼就可使用 I/O 重定向將其複製到文件中,如:
cat /proc/1283/fd/2 > /var/log/messages
對於許多應用程序,尤爲是日誌文件和數據庫,這種恢復刪除文件的方法很是有用。
lsof實用命令
lsof `which httpd` //那個進程在使用apache的可執行文件
lsof /etc/passwd //那個進程在佔用/etc/passwd
lsof /dev/hda6 //那個進程在佔用hda6
lsof /dev/cdrom //那個進程在佔用光驅
lsof -c sendmail //查看sendmail進程的文件使用狀況
lsof -c courier -u ^zahn //顯示出那些文件被以courier打頭的進程打開,可是並不屬於用戶zahn
lsof -p 30297 //顯示那些文件被pid爲30297的進程打開
lsof -D /tmp 顯示全部在/tmp文件夾中打開的instance和文件的進程。可是symbol文件並不在列
lsof -u1000 //查看uid是100的用戶的進程的文件使用狀況
lsof -utony //查看用戶tony的進程的文件使用狀況
lsof -u^tony //查看不是用戶tony的進程的文件使用狀況(^是取反的意思)
lsof -i //顯示全部打開的端口
lsof -i:80 //顯示全部打開80端口的進程
lsof -i -U //顯示全部打開的端口和UNIX domain文件
lsof -i UDP@[url]www.akadia.com:123 //顯示那些進程打開了到www.akadia.com的UDP的123(ntp)端口的連接
lsof -i tcp@ohaha.ks.edu.tw:ftp -r //不斷查看目前ftp鏈接的狀況(-r,lsof會永遠不斷的執行,直到收到中斷信號,+r,lsof會一直執行,直到沒有檔案被顯示,缺省是15s刷新)
lsof -i tcp@ohaha.ks.edu.tw:ftp -n //lsof -n 不將IP轉換爲hostname,缺省是不加上-n參數

30.linux單用戶模式修改密碼
進入單用戶模式: 
1. grub 進入啓動畫面以後,敲入「e」
把光標移動到kernel ...那一行,再敲入「e」
在kernel 一行的結尾加上空格single,回車 敲入「b」
啓動系統,即進入單用戶模式, 這個時刻就可以用passwd命令改密碼了。
passwd root 改完之後reboot重啓。
2. lilo 進入lilo命令行模式,敲入linux single,即進入單用戶模式。
passwd ... 假如grub/lilo設了密碼,必需要記得才行。

31.nginx yum 安裝
添加源
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
yum install nginx -y

32.磁盤IO查看
iostat -k -d 3

33.查看cpu信息
查看物理CPU的個數

cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

查看邏輯CPU的個數
cat /proc/cpuinfo |grep "processor"|wc –l
cat /proc/cpuinfo |grep "processor"|wc –l

查看CPU核數
cat /proc/cpuinfo |grep "cores"|uniq

查看CPU型號信息
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

34.查看殭屍進程

top 查看是否存在殭屍進程

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

kill -HUP 12339 殺死殭屍進程


35.cacti調試

php調試env LANG=C /usr/local/php56/bin/php /var/www/cacti/poller.php --debug


36.salt 一鍵添加用戶、修改主機密碼、清理操做日誌

salt "*" cmd.run 'useradd shuzhilian'

salt "*" cmd.run 'echo "shuzhilian:12345678" |chpasswd'

salt "*" cmd.run 'echo "root:UnionBigData_#@!11" |chpasswd'

> /root/.bash_history (登出以後再登錄清理)

cp.get_file能夠用來在minion端下載master上的文件。

salt '*' cp.get_file salt://vimrc /etc/vimrc

  通知全部的minion客戶端來下載vimrc文件到/etc/vimrc

salt '*' cp.get_file "salt://`grains`.`os`/vimrc" /etc/vimrc template=jinja 

  也能夠用模版,表示只在OS系統名稱同樣的機器上下載文件

salt '*' cp.get_file salt://vimrc /etc/vimrc gzip=5

  salt在傳輸大文件時還支持壓縮:壓縮比率是1-9
 
salt '*' cp.get_file salt://vimrc /etc/vim/vimrc makedirs=True
  cp.get_file默認是不會建立目的端的目錄的,若是該目錄不存在的時候。要改變這種狀況可使用mkaedirs參數

salt '*' cp.get_dir salt://etc/apache2 /etc

salt '*' cp.get_dir salt://etc/`pillar`.`webserver` /etc gzip=5 template=jinja

cp.get_dir和cp.get_file同樣,不過get_dir是用來下載整個目錄的,也支持模版和壓縮

salt '*' cp.get_file salt://0226zabbix_test.sh /tmp/0226zabbix_test.sh 

設置crontab任務
 salt "*" cron.set_job root 30 06,12,18,23 '*' '*'  '*'  '/bin/bash /tmp/0226zabbix_test.sh >/dev/nll 2>&1  >> /var/log/zabbix/zabbix_agent_test.log ;' 

查看crontab 任務
 salt '*' cron.list_tab root

刪除crontab 任務

salt '*' cron.rm_job root 'date >/dev/null 2>&1'

37.rsyslog 配置

Linux客	戶端配置:
1.檢查或升級rsyslog軟件
# yum -y install rsyslog
# vi /etc/rsyslog.conf 
*.* @192.168.99.1
行尾新增上面這行內容,即客戶端將本地日誌發送到服務器。
3.重啓rsyslog 服務
# /etc/init.d/rsyslog restart
4.編輯/etc/bashrc,將客戶端執行的全部命令寫入系統日誌/var/log/messages中。
# vi /etc/bashrc
在文件尾部增長一行
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y;});logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'
設置其生效
# source /etc/bashrc

38.mysql 導出數據

nohup mysqldump -uroot -p'root123!@#' electrical taobao_goods_new >taobao_goods_new1103.sql &

nohup mysqldump -uroot -p'root123!@#' electrical jd_product > jd_product1103.sql &

nohup mysqldump -uroot -p'root123!@#' electrical tmall_product>tmall_product1103.sql &

39./var/log/回滾 

cat  /var/log/secure |grep '182.151.120.150'
cat  /var/log/secure |grep '182.151.120.150' |wc -l

logrotate -f /etc/logrotate.conf
相關文章
相關標籤/搜索