Linux 學習筆記

Linux學習筆記

請切換web視圖查看,表格比較大,方法:視圖》》web板式視圖html

博客園不能粘貼圖片嗎java

 http://wenku.baidu.com/view/bda1c3067fd5360cba1adb7dlinux

目錄程序員

Linux學習筆記... 1web

請切換web視圖查看,表格比較大,方法:視圖》》web板式視圖... 1正則表達式

1.      經常使用命令... 3shell

1.1文件處理命令... 3數據庫

1.2權限管理命令... 8apache

1.3文件搜索命令... 12編程

1.4幫助命令... 19

1.5壓縮解壓命令... 20

1.6網絡通訊指令... 23

1.7 Shell應用技巧... 25

2.      Vim/Vi 28

3.      引導... 34

4軟件包的安裝... 39

4.1掛載光盤... 39

5.用戶管理... 40

5.1組管理... 41

5.2批量添加用戶... 41

6.      進程管理... 44

6.2計劃任務... 45

7.      shell編程... 46

7.1        hello world. 46

7.2標準輸入和輸出... 46

7.2變量,位置變量$! $$ $# $@ $* $?,環境變量,運算符... 47

7.3if…else. 52

7.4for. 53

7.5awk. 54

7.6一個顯示用戶信息的腳本... 54

7.7一個殺死登錄用戶的腳本... 56

結果以下... 56

腳本內容... 56

7.8select case. 57

select. 57

select+case. 57

case. 58

7.9while. 59

7.10批量添加用戶... 59

7.11批量刪除用戶... 60

7.12break  .. continue. 60

7.13 shift,參數累加求和... 61

效果: 參數左移... 61

7.14用戶執行腳本的權限... 62

sh script. 62

1.      對腳本有r權限... 62

2.      腳本所在目錄要有r-x權限... 62

腳本直接執行... 62

1.      對腳本有rx權限... 62

2.      腳本所在目錄有rx權限... 62

7.15正則表達式... 62

7.16截取字符串awk,cut,set. 65

awk 列操做... 66

第一行不執行,第一行先讀取的... 66

因此加BEGIN.. 67

行操做... 67

選取某一行... 68

去掉某一行... 68

追加某一行或幾行... 68

替換... 69

7.17定時任務... 69

8.      安裝jdk. 71

[root@dc-01 java]#  rpm -qa | grep jdk. 71

java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i686. 71

卸載之:... 71

[root@dc-01 java]# yum -y remove java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i686. 71

查看系統位數... 71

下載對應的安裝包... 71

http://pan.baidu.com/s/1qWnzJCK. 71

1.修改權限爲可執行... 71

2.rpm –ivh 安裝包... 71

3.vi /etc/profile 尾部添加環境變量... 72

79 JAVA_HOME=/usr/java/jdk1.7.0_67. 72

80 PATH=$JAVA_HOME/bin:$PATH.. 72

81 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar. 72

82 export JAVA_HOME. 72

83 export PATH.. 72

84 export CLASSPATH.. 72

4. 執行source /etc/profile命令讓修改生效。... 72

5.查看安裝結果... 72

至此,安裝jdk成功... 73

9.      安裝Tomcat. 73

1.下載安裝包,千萬選好安裝源,由於安裝包的問題,硬是讓我調試了一天,真是傻逼,從新官網下載安裝以後立馬能夠用了... 73

http://tomcat.apache.org/download-70.cgi 73

2.解壓到/usr/local 下,並重命名爲tomcat. 73

#tar zxvf apache-tomcat-7.0.35.tar.gz /解壓... 73

#mv apache-tomcat-7.0.35 apache-tomcat /改名... 73

#cd /apache-tomcat/bin/ /打開此目錄... 74

#chmod 777 *.sh /加777權限... 74

#bash catalina.sh start /啓動... 74

 

 

1.    經常使用命令

命令存放,哪些命令能夠執行?

 

root:

/sbin

/usr/sbin

all users:

 

/bin

/usr/bin

bin--binary 二進制文件

Linux全部都是文件,都是二進制文件

usr—user

sbin—super binary

 

 

1.1文件處理命令

 

文件處理命令

 

1

ls

英文原意是list   功能:顯示目錄文件 屬性能夠連着寫,好比ls -ld

Eg

含義

-a    all

顯示全部文件,包括隱藏文件

ls -a /

 

-l    long

 

 

 

-I 顯示i節點

詳細信息顯示

[root@localhost ~]# ls -l

total 68

-rw------- 1 root root  1211 Feb 14 04:02 anaconda-ks.cfg

drwxr-xr-x 3 root root  4096 Feb 14 11:20 Desktop

-rw-r--r-- 1 root root 31736 Feb 14 04:02 install.log

-rw-r--r-- 1 root root     0 Feb 14 03:16 install.log.syslog

drwxr-xr-x 2 root root  4096 Feb 14 17:36 test

drwxr-xr-x             2          root       root   4096      Feb 14 11:20

每三個表示權限   表示硬鏈接數   全部者    所屬組  文件大小  建立時間

數據塊 block  512字節

第一個字符表示以下:

d  目錄directory

-          二進制文件

l  軟連接文件

每三個分配以下:

r—read 讀   w—write寫  x—execute執行

rwx         r-x          r-x

全部者u    所屬組g      其餘人o

user         group        others

-d

查看目錄屬性

[root@localhost ~]# ls -ld /test

drwxr-xr-x 3 root root 4096 Feb 14 17:42 /test

 

2

cd

切換目錄

 

 

Cd  /

進入根目錄

 

 

Cd [目錄]

 

 

 

Cd ..

返回父級目錄

 

 

3

pwd

英文:print working directory

查看當前目錄

[root@localhost ~]# pwd

/root

 

4

touch

建立空文件

 

 

[root@localhost test]# touch testfile

[root@localhost test]# ls -l testfile

-rw-r--r-- 1 root root 0 Feb 14 18:51 testfile

 

 

5

mkdir

英文:make directories

建立空目錄

[root@localhost ~]# mkdir test

 

6

cp

英文:copy

複製文件

-R 複製目錄

 

copy   [源文件,可多個] [目的目錄]

[root@localhost test]# cp /etc/inittab /etc/services /test

[root@localhost test]# ls /test

abc.txt  inittab  lost+found  samlee  services  testfile

 

將etc拷貝到test下

[root@localhost test]# cp -R /etc /test

 

/etc 主要是配置文件,很重要,記得備份

命令中止快捷鍵:Ctrl+c

7.

mv

英文:move

移動文件,更名

[root@localhost test]# ls /test

abc.txt  etc  inittab  lost+found  samlee  services  testfile

更名:

[root@localhost test]# mv services service 

[root@localhost test]# ls /test

abc.txt  etc  inittab  lost+found  samlee  service  testfile

移動:

[root@localhost test]# mv /test/inittab /tmp/

[root@localhost test]# ls /test

abc.txt  etc  lost+found  samlee  service  testfile

更名+移動:

[root@localhost test]#  mv /test/testfile /tmp/file.test

[root@localhost test]# ls /tmp

file.test                                   scim-panel-socket:0-root

gconfd-root                                 scim-socket-frontend-root

inittab                                     ssh-yoUWCY4180

keyring-z1fmdW                              virtual-root.IYU2ep

mapping-root                                vmware-config0

orbit-root                                  VMwareDnD

scim-bridge-0.3.0.lockfile-0@localhost:0.0  vmware-root

scim-bridge-0.3.0.socket-0@localhost:0.0    vmware-root-592157060

scim-helper-manager-socket-root

 

 

8

rm

remove

刪除

[root@localhost test]# ls /test

abc.txt  etc  lost+found  samlee  service

刪除service

[root@localhost test]# rm service

rm: remove regular file `service'? y

[root@localhost test]# ls /test

abc.txt  etc  lost+found  samlee

刪除不詢問:

[root@localhost test]# touch testfile

[root@localhost test]# ls

abc.txt  etc  lost+found  samlee  testfile

[root@localhost test]# rm -f testfile

[root@localhost test]# ls

abc.txt  etc  lost+found  samlee

 

rm –f 目錄名稱  不提示,強制刪除,在寫腳本的時候用,由於沒有yes交互

r表示刪除,f表示強制

9

cat

concatenate and display files

查看

[root@localhost test]# cat /etc/issue

CentOS release 5.5 (Final)

Kernel \r on an \m

 

適合查看文件小,由於多的話會把前面的覆蓋,不能翻頁。

好比cat /etc/services

10

more

(空格)或f 顯示下一頁

(enter)顯示下一行

q或Q 退出

分頁查看

[root@localhost test]# more /etc/services

 

 

11

head

-num 文件名

查看文件前num行

[root@localhost test]# head -5 /etc/services

# /etc/services:

# $Id: services,v 1.42 2006/02/23 13:09:23 pknirsch Exp $

#

# Network services, Internet style

#

 

 

12

tail

-num  文件名

-f     文件名

查看文件尾num行

動態查看文件尾部信息

[root@localhost test]# tail -5 /etc/services

com-bardac-dw   48556/tcp                       # com-bardac-dw

com-bardac-dw   48556/udp                       # com-bardac-dw

iqobject        48619/tcp                       # iqobject

iqobject        48619/udp                       # iqobject

# Local services

[root@localhost test]# tail -f /etc/services

 

tail –f 爲了監視日誌文件,默認顯示10行

13

ln

英文:link

ln 文件名  目的目錄

ln –s 文件名 目的目錄

-s soft軟鏈接

建立硬連接

建立軟連接

[root@localhost test]# ln -s /etc/issue /issue.soft

[root@localhost test]# ls -l /etc/issue /issue.soft

-rw-r--r-- 1 root root 47 Apr 26  2010 /etc/issue

lrwxrwxrwx 1 root root 10 Feb 14 16:51 /issue.soft -> /etc/issue

 

硬連接:

[root@localhost test]# ln  /etc/issue /issue.hard

[root@localhost test]# ls -l /etc/issue /issue.hard

-rw-r--r-- 2 root root 47 Apr 26  2010 /etc/issue

-rw-r--r-- 2 root root 47 Apr 26  2010 /issue.hard

 

拷貝:

[root@localhost test]# cp /etc/issue /test/issue

[root@localhost test]# ls -l /etc/issue /test/issue

-rw-r--r-- 2 root root 47 Apr 26  2010 /etc/issue

-rw-r--r-- 1 root root 47 Feb 14 20:31 /test/issue

 

拷貝而且不改變時間,好比某些備份

[root@localhost test]# cp -p /etc/issue /test/issue

cp: overwrite `/test/issue'? y

[root@localhost test]# ls -l /etc/issue /test/issue

-rw-r--r-- 2 root root 47 Apr 26  2010 /etc/issue

-rw-r--r-- 1 root root 47 Apr 26  2010 /test/issue

 

 

 

軟鏈接文件類型是l

軟鏈接全部人都有權限,但能不能訪問取決於源文件

軟鏈接時間值 是建立軟鏈接的時間

至關於快捷方式

 

相似於copy,文件大小相同

不一樣於copy的是,它是同步更新的。

 

還有一個不一樣的是,拷貝的時間是不一樣,時間是建立的時間

 

一個i節點能夠映射到多個文件,因此硬連接能夠同步更新。

 

 

 

 

1.2權限管理命令

權限管理命令

14

chmod

change the permissions mode of a file

chmod[{ugo0}{+-=}[文件或目錄][mode=421][文件或目錄]

功能:

改變文件或目錄權限

 

 

用數字表示

r--4

w--2

x—1

rwxr-xr--  754

rw-r-x—x  651

 

 

文件:

r-car,more,head,tail

w-echo,vi 能夠修改內容

x-命令,腳本

目錄:

r-ls

w-touch,mkdir,rm 對目錄有這些權限

x-cd 對目錄能夠進去

因此,全部的目錄都有rx權限,表示能夠讀取能夠進去

[root@localhost test]# ls -l a

-rwxr-x--- 1 root root 0 Feb 19 15:45 a

[root@localhost test]# chmod o+rwx a

[root@localhost test]# ls -l a

-rwxr-xrwx 1 root root 0 Feb 19 15:45 a

[root@localhost test]# chmod o-rw a

[root@localhost test]# ls -l a

-rwxr-x--x 1 root root 0 Feb 19 15:45 a

[root@localhost test]# chmod g=r a

[root@localhost test]# ls -l a

-rwxr----x 1 root root 0 Feb 19 15:45 a

[root@localhost test]# chmod g=rx a

[root@localhost test]# ls -l a

-rwxr-x--x 1 root root 0 Feb 19 15:45 a

 

[root@localhost test]# chmod 641 a

[root@localhost test]# ls -l a

-rw-r----x 1 root root 0 Feb 19 15:45 a

chmod u+權限 文件或目錄-------給所屬者增長權限

chmod u+權限 文件或目錄-------給所屬者減小權限

 

chmod g=權限 文件或目錄-------給所屬組賦予權限

 

chmod o -----------------------------------同u,爲加減權限

 

 

 

 

 

 

 

用數字表示權限,直接賦值就能夠  chmod 641 a

15

chown

change file ownership

改變全部者

[root@localhost test]# ls -l a

-rw-r----x 1 root root 0 Feb 19 15:45 a

[root@localhost test]# chown helen a

[root@localhost test]# ls -l a

-rw-r----x 1 helen root 0 Feb 19 15:45 a

[root@localhost test]# chown nobody a

[root@localhost test]# ls -l a

-rw-r----x 1 nobody root 0 Feb 19 15:45 a

 

 

16

chgrp

change file group ownership

改變所屬組

[root@localhost test]# ls -l a

-rw-r----x 1 nobody root 0 Feb 19 15:45 a

[root@localhost test]# chgrp adm a

[root@localhost test]# ls -l a

-rw-r----x 1 nobody adm 0 Feb 19 15:45 a

 

 

17

umask

 

查看建立文件的默認權限

改變默認權限 umask 權限掩碼值

[root@localhost test]# mkdir newdir

[root@localhost test]# ls -ld newdir

drwxr-xr-x 2 root root 4096 Feb 20 10:40 newdir

[root@localhost test]# umask

0022

[root@localhost test]# umask -S

u=rwx,g=rx,o=rx

 

 

*

0022

 

特殊權限位

022-用戶權限位,權限掩碼值

   777

022

755

022 就是表示755

 

SetUID 4

SetGID 2

chmod u+s

       4755

       2755 組id

        6755同時SetUID和SetGID

 

*

Linux權限規則

 

缺省建立的文件不能授予可執行x權限

[root@localhost test]# touch testfile

[root@localhost test]# ls -l testfile

-rw-r--r-- 1 root root 0 Feb 20 10:50 testfile

 

雖然建立文件的默認權限是022,但建立的空文件testfile沒有x權限

*

添加用戶

 

 

[root@localhost test]# useradd miao

[root@localhost test]# passwd miao

Changing password for user miao.

New UNIX password:

BAD PASSWORD: it is too short

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

添加用戶信息

設置密碼

設置密碼

 

*

su -

切換用戶

 

 

 

 

 

 

1.3文件搜索命令

Linux中全部都是文件,命令也是文件

文件搜索命令

18

which

 

查詢命令所在的絕對路徑

[root@localhost ~]# which chmod

/bin/chmod

[root@localhost ~]# whereis ls

ls: /bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

 

命令也是文件

whereis除了絕對路徑,還包括幫助文檔

19

find

 

查找文件或目錄

find [搜索路徑][搜索關鍵字]

 

-name 文件名

*匹配任意字符 init*

?匹配單個字符 init???

 

-size 文件大小 block數據塊 512字節=0.5kb

大於+

小於-

等於 find / -size 204800

 

-user 文件全部者

 

時間

  1. 天 ctime  atime  mtime
  2. 分鐘 cmin  amin  mmin

c—change改變,表示文件的屬性被修改過,全部者、所屬組、權限

a—access訪問

m—modify修改,表示文件的內容被修改過

-以內,+超過

find /etc –mmin  -120 一分鐘內被修改過

-type 文件類型  f 二進制文件

               l 軟鏈接文件

               d 目錄

  1. 鏈接符  -a and   邏輯與 

        -o or     邏輯或

2.  鏈接符 find …. –exec 命令{}\;

          {}find查詢的結果

          \轉義符,符號命令使用自己的含義

          ;結果

          -ok提示

 

 

 

 

 

 

[root@localhost ~]# find /etc -name init

/etc/sysconfig/init

 

試驗通配符和佔位符

[root@localhost ~]# find /etc -name init*

/etc/selinux/targeted/contexts/initrc_context

/etc/sysconfig/init

/etc/sysconfig/network-scripts/init.ipv6-global

/etc/init.d

/etc/mail/spamassassin/init.pre

/etc/inittab

/etc/initlog.conf

/etc/rc.d/init.d

 

[root@localhost ~]# find /etc -name init???

/etc/inittab

[root@localhost ~]# find /etc -name init?

[root@localhost ~]# find /etc -name init??

/etc/init.d

/etc/rc.d/init.d

 

查找用戶

[root@localhost ~]# find /home -user helen

/home/helen

/home/helen/.bash_logout

/home/helen/.kde

/home/helen/.kde/Autostart

/home/helen/.kde/Autostart/.directory

/home/helen/.mozilla

/home/helen/.mozilla/extensions

/home/helen/.mozilla/plugins

/home/helen/.bash_profile

/home/helen/.bashrc

/home/helen/.bash_history

 

測試轉義字符

[root@localhost ~]# which rm

alias rm='rm -i'

        /bin/rm

[root@localhost ~]# rm abc.txt

rm: remove regular empty file `abc.txt'?

[root@localhost ~]# \rm abc.txt

 

查找二進制文件

[root@host141 ~]# find /etc -name init* -a -type f

/etc/inittab

/etc/initlog.conf

/etc/sysconfig/network-scripts/init.ipv6-global

/etc/sysconfig/init

/etc/selinux/targeted/contexts/initrc_context

 

測試鏈接符-exec

[root@localhost ~]# find /etc -name inittab

/etc/inittab

[root@localhost ~]# find /etc -name inittab -exec ls -l {} \;

-rw-r--r-- 1 root root 1666 Feb 14 04:02 /etc/inittab

 

[root@localhost ~]# cd /test

[root@localhost test]# pwd

/test

[root@localhost test]# ls

a  a.hard  a.soft  etc  issue  lost+found

[root@localhost test]# find /test -name a.soft

/test/a.soft

[root@localhost test]# find /test -name a.soft -exec rm {} \;

[root@localhost test]# ls

a  a.hard  etc  issue  lost+found

 

測試鏈接符-ok

[root@localhost test]# find /etc -name inittab -exec ls -l {} \;

-rw-r--r-- 1 root root 1666 Feb 14 04:02 /etc/inittab

[root@localhost test]# find /etc -name inittab -ok ls -l {} \;

< ls ... /etc/inittab > ? y

-rw-r--r-- 1 root root 1666 Feb 14 04:02 /etc/inittab

 

[root@localhost test]# ls

a  a.hard  etc  issue  lost+found

[root@localhost test]# find /test -name a.hard -ok rm {} \;

< rm ... /test/a.hard > ? y

[root@localhost test]# ls

a  etc  issue  lost+found

 

[root@localhost test]# find /etc -name init* -a -type f -exec ls -l {} \;

-rw-r--r-- 1 root root 28 Apr 10  2010 /etc/selinux/targeted/contexts/initrc_context

-rw-r--r-- 1 root root 1068 Jul  4  2009 /etc/sysconfig/init

-rwxr-xr-x 1 root root 5433 Jul  4  2009 /etc/sysconfig/network-scripts/init.ipv6-global

-rw-r--r-- 1 root root 1299 Jan 21  2009 /etc/mail/spamassassin/init.pre

-rw-r--r-- 1 root root 1666 Feb 14 04:02 /etc/inittab

-rw-r--r-- 1 root root 658 Sep 29  2009 /etc/initlog.conf

 

測試根據i節點刪除文件

[root@localhost test]# touch "a b";

[root@localhost test]# ls

a  a b

[root@localhost test]# touch -- -abc

[root@localhost test]# ls

a  a b  -abc

 

[root@localhost test]# rm -abc

rm: invalid option -- a

Try `rm ./-abc' to remove the file `-abc'.

Try `rm --help' for more information.

[root@localhost test]# rm a b

rm: remove regular empty file `a'? a

rm: cannot lstat `b': No such file or directory

[root@localhost test]# rm a b

rm: remove regular empty file `a'? y

rm: cannot lstat `b': No such file or directory

 

[root@localhost test]# rm -- -abc "a b"

rm: remove regular empty file `-abc'? y

rm: remove regular empty file `a b'? y

[root@localhost test]# ls

[root@localhost test]#

 

[root@localhost test]# ls -i

1653280 a b  1653352 -abc

[root@localhost test]# find . -inum 1653280

./a b

[root@localhost test]# find . -inum 1653280 -exec rm {} \;

[root@localhost test]# ls

-abc

 

 

 

 

 

 

*通配符

 

大範圍查找只在晚上2點左右進行,由於訪問人數少,只佔用一部分資源

 

 

 

 

 

 

 

?匹配單個字符,至關於佔位

 

 

一般用>或者<

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

rm的別名是 rm-i

因此要提示,那麼要使用自己的含義,加轉義字符\

 

 

 

 

 

查找二進制文件

 

 

 

 

 

 

 

 

查找inittab

查找並顯示詳細信息

 

 

 

進入test

顯示當前目錄

 

顯示當前目錄下的文件

 

查找a.soft文件

 

查找a.soft文件並刪除

a.soft已刪除

 

 

查找inittab並查看詳細信息

 

提示的查看(爲了試驗,真正用在rm)

 

 

 

 

 

 

 

 

 

 

 

查找init開頭,文件類型是二進制文件的詳細信息

 

 

 

 

 

 

 

 

 

一些奇葩的建立文件

 

 

 

 

 

 

這時候想要刪除文件就會出問題

 

 

 

 

 

 

 

 

 

 

咱們知道建立過程的時候能夠這樣刪除,若是不知道呢?

 

 

 

 

 

查找i節點

 

.表示當前目錄,即/test

 

根據i節點刪除,萬能

 

20

locate

list files in databases

locate [搜索關鍵字]

locate file

能夠查找全部跟file相關的文件,速度快

locate指令是根據數據庫查找的,若是數據庫中文件沒有更新,那麼就會找不到。

 

按期updatedb,則能夠直接locate找到

 

 

 

21

updatedb

update the slocate database

創建整個系統目錄文件的數據庫

 

 

22

grep

 

grep [指定字串][源文件]

在文件中搜尋字串匹配的行,並輸出

[root@localhost test]# grep tftp /etc/services

tftp            69/tcp

tftp            69/udp

tftp-mcast      1758/tcp

tftp-mcast      1758/udp

mtftp           1759/udp

subntbcst_tftp  247/tcp                         # SUBNTBCST_TFTP

subntbcst_tftp  247/udp                         # SUBNTBCST_TFTP

etftp           1818/tcp                        # Enhanced Trivial File Transfer Protocol

etftp           1818/udp                        # Enhanced Trivial File Transfer Protocol

tftps           3713/tcp                        # TFTP over TLS

tftps           3713/udp                        # TFTP over TLS

查找和tftp相關的行

             

 

 

1.4幫助命令

幫助命令

 

 

23

man

manual

man [命令或配置文件]

得到幫助信息

命令和配置文件相同時優先查看命令的幫助

幫助分不少種,其中第一種是命令,第五種是配置文件,當名字相同時經過

man 5來查看配置文件

 

man ls  使用more查看,空格翻頁,enter下一行

 

[root@localhost test]# man 5 passwd

 

 

passwd能夠修改用戶密碼,

和一個配置文件同名

24

info

information

info [任何關鍵字]

獲取幫助信息

 

 

25

whatis

 

whatis apropos[任何關鍵字]

得到索引的簡短說明信息

[root@localhost test]# whatis whereis

whereis              (1)  - locate the binary, source, and manual page files for a command

 

 

26

help

 

命令 –help

help 內置命令

[root@localhost test]# ls --help

 

               

 

 

1.5壓縮解壓命令

windows可解壓Linux全部,但相反不可

共同:zip 但壓縮比不高,若是小文件建議使用

gzip 和 bzip2只能壓縮文件且不保留源文件,但後者-k能夠保留

27

gzip

GNU zip

gzip 選項[文件]

壓縮後文件格式: .gz

只能壓縮文件,不能壓縮目錄

不保留源文件

 

解壓縮:

gunzip 壓縮文件

gzip –d 壓縮文件

 

 

[root@localhost test]# ls

etc  issue  lost+found  newfile

[root@localhost test]# gzip newfile

[root@localhost test]# ls

etc  issue  lost+found  newfile.gz

 

不能壓縮目錄

[root@localhost test]# mkdir newdir

[root@localhost test]# ls

etc  issue  lost+found  newdir  newfile.gz

[root@localhost test]# gzip newdir

gzip: newdir is a directory – ignored

 

解壓縮

[root@localhost test]# gzip -d newfile.gz

[root@localhost test]# ls

etc  issue  lost+found  newdir  newfile

[root@localhost test]# gzip newfile

[root@localhost test]# ls

etc  issue  lost+found  newdir  newfile.gz

[root@localhost test]# gunzip newfile.gz

[root@localhost test]# ls

etc  issue  lost+found  newdir  newfile

 

 

28

tar

 

打包目錄

tar 選項[cvf][目錄]

  -c 產生.tar打包文件

  -v 顯示詳細信息

  -f 指定壓縮後的文件名

  -z 打包同時壓縮

壓縮後文件格式: .tar.gz

 

 

解壓縮

  -x 解包.tar文件

  -v 顯示詳細信息

  -f 指定解壓文件

  -z 解壓縮

[root@localhost test]# ls

etc  issue  lost+found  newdir  newfile

[root@localhost test]# tar -zcf newdir.tar.gz newdir

[root@localhost test]# ls

etc  issue  lost+found  newdir  newdir.tar.gz  newfile

 

當沒有後綴,或者不知道文件類型

[root@localhost test]# tar -zcf new newdir

[root@localhost test]# ls -l new

-rw-r--r-- 1 root root 113 Feb 26 14:56 new

[root@localhost test]# file new

new: gzip compressed data, from Unix, last modified: Thu Feb 26 14:56:08 2015

 

先打包再壓縮

[root@localhost test]# tar -cf newdir2.tar newdir

[root@localhost test]# gzip newdir2.tar

[root@localhost test]# ls

etc  issue  lost+found  new  newdir  newdir2.tar.gz  newdir.tar.gz  newfile

 

解壓縮

[root@localhost test]# ls

etc  issue  lost+found  new  newdir  newdir2.tar.gz  newdir.tar.gz  newfile

[root@localhost test]# tar -zxf newdir.tar.gz

[root@localhost test]# ls

etc  issue  lost+found  new  newdir  newdir2.tar.gz  newdir.tar.gz  newfile

[root@localhost test]# tar -zxf newdir2.tar.gz

[root@localhost test]# ls

etc  issue  lost+found  new  newdir  newdir2.tar.gz  newdir.tar.gz  newfile

[root@localhost test]# rm -rf newdir

[root@localhost test]# ls

etc  issue  lost+found  new  newdir2.tar.gz  newdir.tar.gz  newfile

[root@localhost test]# tar -zxf new

[root@localhost test]# ls

etc  issue  lost+found  new  newdir  newdir2.tar.gz  newdir.tar.gz  newfile

 

 

 tar –zcf 打包後的名字 要打包的文件名

 

  注:打包後的文件名能夠沒有後綴,可是爲了辨識方便,養成良好習慣

 

 

 

 

看起來像是文本文件,但這種使用cat是沒法查看的

使用file查看文件了性

29

zip

 

zip 選項[-r][壓縮後文件名稱][文件或目錄]

-r  壓縮目錄

功能:壓縮文件或目錄

壓縮後文件格式:.zip

保留源文件

範例:   zip services.zip /etc/services

        zip –r test.zip /test  壓縮目錄

 

 

 

 

30

unzip

 

unzip [壓縮文件]

功能:解壓.zip的壓縮文件

範例:unzip test.zip

 

 

 

 

31

bzip2

 

bzip2 選項[-k][文件]

         -k 產生壓縮文件後保留源文件

不加k則和gzip相同,但壓縮比很高

功能:壓縮文件

壓縮後文件格式: .bz2

範例:  bzip2 –k file1

 

 

32

bunzip2

 

bunzip2 選項[-k][壓縮文件]

        -k 解壓縮後保留源文件

功能:解壓縮

範例: bunzip2 –k file1.bz2

 

 

 

 

 

1.6網絡通訊指令

33

write

 

當用戶登錄的時候,能夠進行信息交互,

以Ctrl+D做爲結束

 

[root@localhost test]# write helen

this is a test,hello

[helen@localhost ~]$   這裏使用SSH登錄

Message from root@localhost.localdomain on pts/1 at 15:37 ...

this is a test,hello

 

34

wall

 

登錄的全部人都會收到

 

 

35

ping

 

測試網絡連通性

ping 192.168.1.1

 

和windows不一樣的是,Linux若是不ctrl+c終止就會一直進行下去

 

注意:

  丟包率:packet loss

  有時候數據存取不完整,檢查網絡設備。

 ping上萬次

 

 

若是ping不通,先ping本機,證實本身沒問題,ping 127.0.0.1 迴環地址,檢查本身的設置。

不通的時候不必定是網絡不通,有可能防火牆等屏蔽了,不要武斷的判斷網絡有問題。

 

改變ping的次數

[root@localhost test]# ping -c 3 192.168.0.141 像windows同樣定義ping的次數

PING 192.168.0.141 (192.168.0.141) 56(84) bytes of data.

64 bytes from 192.168.0.141: icmp_seq=1 ttl=128 time=0.568 ms

64 bytes from 192.168.0.141: icmp_seq=2 ttl=128 time=0.456 ms

64 bytes from 192.168.0.141: icmp_seq=3 ttl=128 time=0.451 ms

 

--- 192.168.0.141 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2001ms

rtt min/avg/max/mdev = 0.451/0.491/0.568/0.059 ms

 

默認64字節,改變數據包大小

[root@localhost test]# ping -s 300 192.168.0.141

PING 192.168.0.141 (192.168.0.141) 300(328) bytes of data.

308 bytes from 192.168.0.141: icmp_seq=1 ttl=128 time=0.517 ms

 

36

ifconfig

 

ifconfig 選項[-a][網卡設備標識]

         -a 顯示全部網卡信息

功能:查看網絡設置信息

範例:ifconfig –a

eth0 本機物理網卡

lo 迴環網卡地址

ifconfig eth0 192.168.9.4

修改ip,僅本次生效

Linux基本:只有寫入配置文件纔會永久生效

 

 

37

shutdown

只有root能夠執行

 

[root@localhost test]# shutdown -h now最好不要使用,立馬關機

關機前wall一下你們保存,而後shutdown,有緩衝時間

 

38

reboot

重啓,root,服務器一般不隨便開關

 

 

 

 

 

 

1.7 Shell應用技巧

一般使用bash,查看cat /etc/shells

命令補全

按Tab,若是是惟一的則直接補全,若是不惟一則按兩下以後出現候選命令

清屏

clear 或者Ctrl+l

清除光標前字符

Ctrl+u

查看之前的命令

history

!123 執行第123條命令

方向鍵上下能夠找到歷史命令

定義別名

 

alias copy=cp

alias xrm=」rm –r」組合要括起來

 

清除別名:unalias copy

[root@localhost test]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=tty'

alias ll='ls -l --color=tty'

alias ls='ls --color=tty'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

這是系統定義的別名

 

[root@localhost test]# alias copy=cp   自定義別名

[root@localhost test]# copy /etc/inittab .  拷貝到當前目錄

[root@localhost test]# ls

etc      issue       new     newdir2.tar.gz  newdir.zip  newfile.bz2

inittab  lost+found  newdir  newdir.tar.gz   newfile

 

 

輸入、輸出重定向

 

通標準I/O同樣,Shell對於每個進程預先定義3個文件描述字(0,1,2),分別對應:

0         (STDIN)標準輸入

1         (STDOUT)標準輸出

2         (STDERR)標準錯誤輸出

 

>或>>輸出重定向

範例: ---------------------------------------》》

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<輸入重定向

 

 

 

 

 

 

 

2>錯誤除數重定向

 

 

 

 

 

 

[root@localhost test]# ls -l /tmp >tmp.msg

[root@localhost test]# date > /tmp.msg

[root@localhost test]# cat /tmp.msg

Thu Feb 26 16:49:57 CST 2015 原內容被覆蓋

 

使用>>追加進去

[root@localhost test]# ls -l /tmp >> /tmp.msg

[root@localhost test]# cat /tmp.msg

Thu Feb 26 16:49:57 CST 2015

total 92

drwx------ 3 root root 4096 Feb 13 20:52 gconfd-root

drwx------ 2 root root 4096 Feb 25 10:19 keyring-djsYy2

drwx------ 2 root root 4096 Feb 13 20:52 keyring-z1fmdW

srwxr-xr-x 1 root root    0 Feb 25 10:19 mapping-root

drwx------ 2 root root 4096 Feb 26 14:32 orbit-root

-rw-r--r-- 1 root root    6 Feb 26 16:32 scim-bridge-0.3.0.lockfile-0@localhost:0.0

srwxr-xr-x 1 root root    0 Feb 26 14:32 scim-bridge-0.3.0.socket-0@localhost:0.0

srw------- 1 root root    0 Feb 25 10:19 scim-helper-manager-socket-root

srw------- 1 root root    0 Feb 25 10:19 scim-panel-socket:0-root

srw------- 1 root root    0 Feb 25 10:19 scim-socket-frontend-root

drwx------ 2 root root 4096 Feb 25 10:19 ssh-khlNme4534

drwx------ 2 root root 4096 Feb 25 10:19 virtual-root.U2Qf0Y

drwxr-xr-x 2 root root 4096 Feb 25 09:34 vmware-root

drwx------ 2 root root 4096 Feb 25 10:19 vmware-root-592157060

 

<輸入重定向

能夠寫一個定時腳本,而後自動輸出

[root@localhost test]# wall < /etc/issue

 

Broadcast message from root (Thu Feb 26 17:08:07 2015):

 

CentOS release 5.5 (Final)

Kernel \r on an \m

 

2>錯誤除數重定向

晚上按期備份,若是出錯,保存錯誤信息

[root@localhost test]# cp -R /usr /backup/usr.bak 2> /bak.error

 

[root@localhost test]# ls /kdls

ls: /kdls: No such file or directory

[root@localhost test]# ls /kdls 2> ls.err   將錯誤信息寫入,這個在寫自動化腳本時很是有用

[root@localhost test]# cat ls.err

ls: /kdls: No such file or directory

[root@localhost test]# ls /tmp 2> ls.err  若是不錯則沒有

gconfd-root                                 scim-helper-manager-socket-root

keyring-djsYy2                              scim-panel-socket:0-root

keyring-z1fmdW                              scim-socket-frontend-root

mapping-root                                ssh-khlNme4534

orbit-root                                  virtual-root.U2Qf0Y

scim-bridge-0.3.0.lockfile-0@localhost:0.0  vmware-root

scim-bridge-0.3.0.socket-0@localhost:0.0    vmware-root-592157060

 

管道

將一個命令的輸出傳送給另外一個命令,做爲另外一個命令的輸入

 

[root@localhost test]# ls -l /etc | more 將ls -l /etc的輸出傳送給more,能夠空格翻頁,enter換行,q退出

[root@localhost test]# ls -l /etc | grep init 包含init的行

lrwxrwxrwx  1 root root      11 Feb 14 03:18 init.d -> rc.d/init.d

-rw-r--r--  1 root root     658 Sep 29  2009 initlog.conf

-rw-r--r--  1 root root    1666 Feb 14 04:02 inittab

lrwxrwxrwx  1 root root      15 Feb 14 03:25 rc.sysinit -> rc.d/rc.sysinit

 

[root@localhost test]# wc -l /etc/services wc能夠查看行數 –l表示line行

9249 /etc/services

[root@localhost test]# ls -l /etc | grep init | wc –l 多個管道 這裏是說:查看etc下包含init多少行

4

 

命令鏈接符

;

用; 間隔的各命令按順序依次執行。

&&

先後命令的執行存在邏輯與關係,只有&&前面的命令執行成功後,它後面的命令才被執行。

||

先後命令的執行存在邏輯或關係,只有||前面的命令執行失敗後,它後面的命令才被執行。

 

順序執行

[root@localhost test]# pwd ; ls ;date

/test

etc      issue       ls.err  newdir2.tar.gz  newdir.zip  newfile.bz2

inittab  lost+found  new     newdir.tar.gz   newfile     tmp.msg

Thu Feb 26 17:27:57 CST 2015

能夠將長時間的命令,好比升級內核,順序執行,錯誤記錄

 

邏輯與

[root@localhost test]# write Mary < /home/helen/love.txt && rm /home/helen/love.txt

小夥定時表白,若是發送成功,則毀滅證據

[root@localhost test]# ls && pwd

etc      issue       ls.err  newdir2.tar.gz  newdir.zip  newfile.bz2

inittab  lost+found  new     newdir.tar.gz   newfile     tmp.msg

/test

[root@localhost test]# lslsl && pwd

bash: lslsl: command not found

 

邏輯或

相反,只有一個能執行成功。

[root@localhost test]# write Mary < /home/helen/love.txt || mail Mary < /home/helen/love.txt

若是發情書成功就好了,若是發情書失敗則發郵件

[root@localhost test]# ls || pwd

etc      issue       ls.err  newdir2.tar.gz  newdir.zip  newfile.bz2

inittab  lost+found  new     newdir.tar.gz   newfile     tmp.msg

[root@localhost test]# sfld || pwd

bash: sfld: command not found

/test

 

 

命令替換符

將一個命令的輸出做爲另外一個命令的參數

鍵盤1左邊的符號`

[root@localhost test]# which touch  查看touch所在

/bin/touch

[root@localhost test]# ls -l /bin/touch 查看詳情

-rwxr-xr-x 1 root root 42284 Mar  1  2010 /bin/touch

[root@localhost test]# ls -l `which touch` 能夠直接作參數

-rwxr-xr-x 1 root root 42284 Mar  1  2010 /bin/touch

 

 

 

2.    Vim/Vi

[root@localhost ~]# vi /root/.vimrc

      1 set nu

      2 map ^P I#<ESC>

      3

[root@localhost ~]# vi /etc/inittab

[root@localhost ~]# grep -v "^#" /etc/inittab | more   能夠把以#開頭的行排除

第一級 存活

  1. 安裝 vim
  2. 啓動 vim
  3. 什麼也別幹!請先閱讀

當你安裝好一個編輯器後,你必定會想在其中輸入點什麼東西,而後看看這個編輯器是什麼樣子。但vim不是這樣的,請按照下面的命令操做:

  • 動Vim後,vim在 Normal 模式下。
  • 讓咱們進入 Insert 模式,請按下鍵 i 。(陳皓注:你會看到vim左下角有一個–insert–字樣,表示,你能夠以插入的方式輸入了)
  • 此時,你能夠輸入文本了,就像你用「記事本」同樣。
  • 若是你想返回 Normal 模式,請按 ESC 鍵。

如今,你知道如何在 Insert 和 Normal 模式下切換了。下面是一些命令,可讓你在 Normal 模式下倖存下來:

  • i → Insert 模式,按 ESC 回到 Normal 模式.
  • x → 刪當前光標所在的一個字符。
  • :wq → 存盤 + 退出 (:w 存盤, :q 退出)   (陳皓注::w 後能夠跟文件名)
  • dd → 刪除當前行,並把刪除的行存到剪貼板裏
  • p → 粘貼剪貼板

推薦:

  • hjkl (強例推薦使用其移動光標,但沒必要需) →你也可使用光標鍵 (←↓↑→). 注: j 就像下箭頭。
  • :help <command> → 顯示相關命令的幫助。你也能夠就輸入 :help 而不跟命令。(陳皓注:退出幫助須要輸入:q

你能在vim倖存下來只須要上述的那5個命令,你就能夠編輯文本了,你必定要把這些命令練成一種下意識的狀態。因而你就能夠開始進階到第二級了。

當是,在你進入第二級時,須要再說一下 Normal 模式。在通常的編輯器下,當你須要copy一段文字的時候,你須要使用 Ctrl 鍵,好比:Ctrl-C。也就是說,Ctrl鍵就好像功能鍵同樣,當你按下了功能鍵Ctrl後,C就不在是C了,並且就是一個命令或是一個快鍵鍵了,在VIM的Normal模式下,全部的鍵就是功能鍵了。這個你須要知道。

標記:

  • 下面的文字中,若是是 Ctrl-λ我會寫成 <C-λ>.
  • 以 : 開始的命令你須要輸入 <enter>回車,例如 — 若是我寫成 :q 也就是說你要輸入 :q<enter>.

第二級 感受良好

上面的那些命令只能讓你存活下來,如今是時候學習一些更多的命令了,下面是個人建議:(陳皓注:全部的命令都須要在Normal模式下使用,若是你不知道如今在什麼樣的模式,你就狂按幾回ESC鍵)

  1. 各類插入模式
    • a → 在光標後插入
    • o → 在當前行後插入一個新行
    • O → 在當前行前插入一個新行
    • cw → 替換從光標所在位置後到一個單詞結尾的字符
  2. 簡單的移動光標
    • 0 → 數字零,到行頭
    • ^ → 到本行第一個不是blank字符的位置(所謂blank字符就是空格,tab,換行,回車等)
    • $ → 到本行行尾
    • g_ → 到本行最後一個不是blank字符的位置。
    • /pattern → 搜索 pattern 的字符串(陳皓注:若是搜索出多個匹配,可按n鍵到下一個)
  3. 拷貝/粘貼 (陳皓注:p/P均可以,p是表示在當前位置以後,P表示在當前位置以前)
    • P → 粘貼
    • yy → 拷貝當前行當行於 ddP
  4. Undo/Redo
    • u → undo
    • <C-r> → redo
  5. 打開/保存/退出/改變文件(Buffer)
    • :e <path/to/file> → 打開一個文件
    • :w → 存盤
    • :saveas <path/to/file> → 另存爲 <path/to/file>
    • :x, ZZ 或 :wq → 保存並退出 (:x 表示僅在須要時保存,ZZ不須要輸入冒號並回車)
    • :q! → 退出不保存 :qa! 強行退出全部的正在編輯的文件,就算別的文件有更改。
    • :bn 和 :bp → 你能夠同時打開不少文件,使用這兩個命令來切換下一個或上一個文件。(陳皓注:我喜歡使用:n到下一個文件)

花點時間熟悉一下上面的命令,一旦你掌握他們了,你就幾乎能夠幹其它編輯器都能幹的事了。可是到如今爲止,你仍是以爲使用vim仍是有點笨拙,不過不要緊,你能夠進階到第三級了。

第三級 更好,更強,更快

先恭喜你!你乾的很不錯。咱們能夠開始一些更爲有趣的事了。在第三級,咱們只談那些和vi能夠兼容的命令。

更好

下面,讓咱們看一下vim是怎麼重複本身的:

  1. . → (小數點) 能夠重複上一次的命令
  2. N<command> → 重複某個命令N

下面是一個示例,找開一個文件你能夠試試下面的命令:

  • 2dd → 刪除2
  • 3p → 粘貼文本3
  • 100idesu [ESC] → 會寫下 「desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu 「
  • . → 重複上一個命令—— 100 「desu 「.
  • 3. → 重複 3 次 「desu」 (注意:不是 300,你看,VIM多聰明啊).

更強

你要讓你的光標移動更有效率,你必定要了解下面的這些命令,千萬別跳過。

  1. NG → 到第 N (陳皓注:注意命令中的G是大寫的,另我通常使用 : N 到第N行,如 :137 到第137行)
  2. gg → 到第一行。(陳皓注:至關於1G,或 :1
  3. G → 到最後一行。
  4. 按單詞移動:
    1. w → 到下一個單詞的開頭。
    2. e → 到下一個單詞的結尾。

> 若是你認爲單詞是由默認方式,那麼就用小寫的e和w。默認上來講,一個單詞由字母,數字和下劃線組成(陳皓注:程序變量)

> 若是你認爲單詞是由blank字符分隔符,那麼你須要使用大寫的E和W。(陳皓注:程序語句)

 

下面,讓我來講說最強的光標移動:

  • % : 匹配括號移動,包括 (, {, [. (陳皓注:你須要把光標先移到括號上)
  • 和 #:  匹配光標當前所在的單詞,移動光標到下一個(或上一個)匹配單詞(*是下一個,#是上一個)

相信我,上面這三個命令對程序員來講是至關強大的。

更快

你必定要記住光標的移動,由於不少命令均可以和這些移動光標的命令連動。不少命令均可以以下來幹:

<start position><command><end position>

例如 0y$ 命令意味着:

  • 0 → 先到行頭
  • y → 從這裏開始拷貝
  • $ → 拷貝到本行最後一個字符

你可能夠輸入 ye,從當前位置拷貝到本單詞的最後一個字符。

你也能夠輸入 y2/foo 來拷貝2個 「foo」 之間的字符串。

還有不少時間並不必定你就必定要按y纔會拷貝,下面的命令也會被拷貝:

  • d (刪除 )
  • v (可視化的選擇)
  • gU (變大寫)
  • gu (變小寫)
  • 等等

(陳皓注:可視化選擇是一個頗有意思的命令,你能夠先按v,而後移動光標,你就會看到文本被選擇,而後,你可能d,也可y,也能夠變大寫等)

第四級 – Vim 超能力

你只須要掌握前面的命令,你就能夠很舒服的使用VIM了。可是,如今,咱們向你介紹的是VIM殺手級的功能。下面這些功能是我只用vim的緣由。

在當前行上移動光標: 0 ^ $ f F t T , ;

  • 0 → 到行頭
  • ^ → 到本行的第一個非blank字符
  • $ → 到行尾
  • g_ → 到本行最後一個不是blank字符的位置。
  • fa → 到下一個爲a的字符處,你也能夠fs到下一個爲s的字符。
  • t, → 到逗號前的第一個字符。逗號能夠變成其它字符。
  • 3fa → 在當前行查找第三個出現的a
  • 和 T → 和 f 和 t 同樣,只不過是相反方向。

還有一個頗有用的命令是 dt" → 刪除全部的內容,直到遇到雙引號—— "

區域選擇 <action>a<object> 或 <action>i<object>

在visual 模式下,這些命令很強大,其命令格式爲

<action>a<object> 和 <action>i<object>

  • action能夠是任何的命令,如 d (刪除), y (拷貝), v (能夠視模式選擇)
  • object 多是: w 一個單詞, W 一個以空格爲分隔的單詞, s 一個句字, p 一個段落。也能夠是一個特別的字符:"、 '、 )、 }、 ]

假設你有一個字符串 (map (+) ("foo")).而光標鍵在第一個 o 的位置。

  • vi" → 會選擇 foo.
  • va" → 會選擇 "foo".
  • vi) → 會選擇 "foo".
  • va) → 會選擇("foo").
  • v2i) → 會選擇 map (+) ("foo")
  • v2a) → 會選擇 (map (+) ("foo"))

 

塊操做: <C-v>

塊操做,典型的操做: 0 <C-v> <C-d> I-- [ESC]

  • ^ → 到行頭
  • <C-v> → 開始塊操做
  • <C-d> → 向下移動 (你也可使用hjkl來移動光標,或是使用%,或是別的)
  • I-- [ESC] → I是插入,插入「--」,按ESC鍵來爲每一行生效。

 

在Windows下的vim,你須要使用 <C-q> 而不是 <C-v> ,<C-v> 是拷貝剪貼板。

自動提示: <C-n> 和 <C-p>

在 Insert 模式下,你能夠輸入一個詞的開頭,而後按 <C-p>或是<C-n>,自動補齊功能就出現了……

 

宏錄製: qa 操做序列 q, @a, @@

  • qa 把你的操做記錄在寄存器 a
  • 因而 @a 會replay被錄製的宏。
  • @@ 是一個快捷鍵用來replay最新錄製的宏。

示例

在一個只有一行且這一行只有「1」的文本中,鍵入以下命令:

  • qaYp<C-a>q→
    • qa 開始錄製
    • Yp 複製行.
    • <C-a> 增長1.
    • 中止錄製.
  • @a → 在1下面寫下 2
  • @@ → 在2 正面寫下3
  • 如今作 100@@ 會建立新的100行,並把數據增長到 103.

 

可視化選擇: v,V,<C-v>

前面,咱們看到了 <C-v>的示例 (在Windows下應該是<C-q>),咱們可使用 v 和 V。一但被選好了,你能夠作下面的事:

  • J → 把全部的行鏈接起來(變成一行)
  • 或 > → 左右縮進
  • = → 自動給縮進 (陳皓注:這個功能至關強大,我太喜歡了)

 

在全部被選擇的行後加上點東西:

  • <C-v>
  • 選中相關的行 (可以使用 j 或 <C-d> 或是 /pattern 或是 % 等……)
  • 到行最後
  • A, 輸入字符串,按 ESC

 

分屏: :split 和 vsplit.

下面是主要的命令,你可使用VIM的幫助 :help split. 你能夠參考本站之前的一篇文章VIM分屏

  • :split → 建立分屏 (:vsplit建立垂直分屏)
  • <C-w><dir> : dir就是方向,能夠是 hjkl 或是 ←↓↑→ 中的一個,其用來切換分屏。
  • <C-w>_ (或 <C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏)
  • <C-w>+ (或 <C-w>-) : 增長尺寸

 

結束語

  • 上面是做者最經常使用的90%的命令。
  • 我建議你天天都學1到2個新的命令。
  • 在兩到三週後,你會感到vim的強大的。
  • 有時候,學習VIM就像是在死背一些東西。
  • 幸運的是,vim有不少很不錯的工具和優秀的文檔。
  • 運行vimtutor直到你熟悉了那些基本命令。
  • 其在線幫助文檔中你應該要仔細閱讀的是 :help usr_02.txt.
  • 你會學習到諸如  !, 目錄,寄存器,插件等不少其它的功能。

 

 

 

3.    引導

在 centOS 中的修改方法以下:

1.root登錄,省得總是sudo

2.打開/etc/inittab 文件

   #vim /etc/inittab
3.在默認的 run level 設置中,能夠看到第一行書寫如:id:5:initdefault:(默認的 run level 等級爲 5,即圖形
界面)
4.將第一行的 5 修改成 3 便可。

5.保存文件後重啓系統你就能夠看見是啓動的文本界面了。

 

 

 

 

 

 

 

#

id:5:initdefault:

 

# System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

 

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

 

[root@localhost ~]# runlevel

5 3

# Default runlevel. The runlevels used by RHS are:

#   0 - halt (Do NOT set initdefault to this)

#   1 - Single user mode

#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#   3 - Full multiuser mode

#   4 - unused

#   5 - X11

#   6 - reboot (Do NOT set initdefault to this)

#

 

關機

單用戶模式,只有root能夠登陸,沒有界面

多用模式,沒有界面,無NFS

多用戶模式,沒有圖形界面,最多

可用戶本身定義

系統缺省的,x11

reboot,重啓

 

查看運行級別

 

[root@localhost ~]# ls /etc/rc.d/rc3.d

K01dnsmasq         K80kdump            S19rpcgssd

K02avahi-dnsconfd  K85mdmpd            S22messagebus

K02NetworkManager  K87multipathd       S23setroubleshoot

K02oddjobd         K87named            S25bluetooth

K05conman          K88wpa_supplicant   S25netfs

K05innd            K89dund             S25pcscd

K05saslauthd       K89netplugd         S26acpid

K05wdaemon         K89pand             S26apmd

K10dc_server       K89rdisc            S26haldaemon

K10psacct          K91capi             S26hidd

K10tcsd            K99readahead_later  S26lm_sensors

K12dc_client       S00microcode_ctl    S28autofs

K15httpd           S02lvm2-monitor     S50hplip

K20nfs             S03vmware-tools     S55sshd

K20rwhod           S04readahead_early  S56cups

K24irda            S05kudzu            S56rawdevices

K25squid           S08ip6tables        S56xinetd

K30spamassassin    S08iptables         S57vmware-tools-thinprint

K35dovecot         S08mcstrans         S58ntpd

K35smb             S09isdn             S80sendmail

K35vncserver       S10network          S85gpm

K35winbind         S11auditd           S90crond

K36lisa            S12restorecond      S90xfs

K50ibmasm          S12syslog           S95anacron

K50netconsole      S13cpuspeed         S95atd

K50tux             S13irqbalance       S97yum-updatesd

K50vsftpd          S13portmap          S98avahi-daemon

K69rpcsvcgssd      S14nfslock          S99firstboot

K73ypbind          S15mdmonitor        S99local

K74nscd            S18rpcidmapd        S99smartd

[root@localhost ~]#

[root@localhost ~]# ls -ld /etc/rc3.d

lrwxrwxrwx 1 root root 10 Feb 14 03:25 /etc/rc3.d -> rc.d/rc3.d

 

[root@localhost ~]# /etc/rc.d/init.d/sshd

Usage: /etc/rc.d/init.d/sshd {start|stop|restart|reload|condrestart|status}

[root@localhost ~]# /etc/rc.d/init.d/sshd start

Starting sshd:                                             [  OK  ]

[root@localhost ~]# /etc/rc.d/init.d/sshd stop

Stopping sshd:                                             [  OK  ]

[root@localhost ~]# /etc/rc.d/init.d/sshd restart

Stopping sshd:                                             [FAILED]

Starting sshd:                                             [  OK  ]

[root@localhost ~]# /etc/rc.d/init.d/sshd condrestart

Stopping sshd:                                             [  OK  ]

Starting sshd:                                             [  OK  ]

[root@localhost ~]# /etc/rc.d/init.d/sshd status

openssh-daemon (pid  28037) is running...

[root@localhost ~]# /etc/rc.d/init.d/sshd reload

Reloading sshd:                                            [  OK  ]

[root@localhost ~]#

S22messagebus

關於啓動,對應級別的配置

S-start 表示啓動

K-kill   表示不啓動

之因此設置kill是爲了方便切換用戶級別的時候關閉哪些服務

22   表示啓動順序,越小越先

messagebus  表示腳本名稱

 

關閉啓動

[root@localhost ~]# mv S03vmware-tools s03vmvare-tools

修改腳本或刪除腳本,只要不是S開頭就好

 

firmvare CMOS/BIOS  --POST

  |

BootLoader  Grub root-/boot kernel- initrd-

  |

Kernel  hardware

  |

init  PID=1

  |

/etc/inittab  id:runlebels:action:process

  |

initdefault

  |

/etc/rc.d/rc.sysinit

  |

/etc/rc.d/rc

  |

/etc/rc.d/rcN.d

 

 

 

 

軟鏈接

 

開啓與關閉方法

使用方法

 

[root@localhost ~]# ntsysv

[root@localhost ~]# ntsysv --level 3

 

設置啓動仍是關閉

空格改變是否啓動,*表示啓動,空白表示不啓動

Tab選擇是否保存與返回

 

[root@localhost ~]# dmesg | grep eth0

eth0: no IPv6 routers present

eth0: no IPv6 routers present

eth0: no IPv6 routers present

[root@localhost ~]# dmeg | grep eth1

bash: dmeg: command not found

[root@localhost ~]# dmesg | grep eth1

[root@localhost ~]# dmesg | grep sda

SCSI device sda: 41943040 512-byte hdwr sectors (21475 MB)

sda: Write Protect is off

sda: Mode Sense: 61 00 00 00

sda: cache data unavailable

sda: assuming drive cache: write through

SCSI device sda: 41943040 512-byte hdwr sectors (21475 MB)

sda: Write Protect is off

sda: Mode Sense: 61 00 00 00

sda: cache data unavailable

sda: assuming drive cache: write through

 sda: sda1 sda2 sda3 sda4 < sda5 >

sd 0:0:0:0: Attached scsi disk sda

SELinux: initialized (dev sda1, type ext3), uses xattr

EXT3 FS on sda1, internal journal

EXT3 FS on sda5, internal journal

SELinux: initialized (dev sda5, type ext3), uses xattr

EXT3 FS on sda2, internal journal

SELinux: initialized (dev sda2, type ext3), uses xattr

Adding 2096472k swap on /dev/sda3.  Priority:-1 extents:1 across:2096472k

 

判斷硬件是否識別

 

[root@localhost ~]# ls /var /log

ls: /log: No such file or directory

/var:

account  crash  empty  games  lib    lock  mail   nis  preserve  run    tmp  www

cache    db     ftp    gdm    local  log   named  opt  racoon    spool  tux  yp

[root@localhost ~]# grep sshd /var/log/messages

[root@localhost ~]# grep syslog /var/log/messages

Feb 25 10:39:53 localhost syslogd 1.4.1: restart.

Feb 27 11:17:11 localhost syslogd 1.4.1: restart.

 

查看引導時文件錯誤

忘記密碼

 

重啓,5s倒計時,按Esc,進入啓動項選擇,

選擇內核編輯,第二行

按e編輯

按e編輯

後面空格 1,表示進入單用戶模式,單用戶模式只有root能夠登陸且不須要密碼

按b啓動

 

 

 

 

 

給grub添加密碼

 

 

123456加密md5

 

 

4軟件包的安裝

4.1掛載光盤

安裝sudo這個軟件

 

掛載光盤:

 

mkdir /mnt/cdrom

mount /dev/cdrom /mnt/cdrom

前提是有光盤鏡像,也就是VMware要設置光盤爲鏡像文件

查詢:

 

rpm –q sudo

rpm –qa |grep samba

[root@localhost CentOS]# rpm -qa | grep samba

samba-3.0.33-3.28.el5

system-config-samba-1.2.41-5.el5

samba-common-3.0.33-3.28.el5

samba-client-3.0.33-3.28.el5

 

查看和samba相關的軟件包

誤刪文件

 

 

 

     

 

5.用戶管理

用戶管理

 

[root@DBserver ~]# more /etc/passwd

root:x:0:0:root:/root:/bin/bash

用戶名:密碼位:UID:GID:描述信息:宿主信息:shell

 

三種用戶:

超級用戶(root,uid=0)

普通用戶

僞用戶

uid改成0便可得到root權限,後門

用戶密碼放在 /etc/shadow

root:$1$Gy//UTmq$00qIJOFSX5brjnPoERd91/:15552:0:99999:7:::

用戶名:加密密碼:最後一次修改時間(以天爲單位19700701以後):最小時間間隔(一般爲0,表示兩次修改的最小天數)

:最大時間間隔:警告時間(快到期提醒,默認7天):閒置時間(空白表示每天登陸):

將shadow密碼刪除後不須要密碼就能夠登陸

爲何普通用戶能夠更改密碼

 

[root@localhost ~]# ls -l /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 2月  22 2012 /usr/bin/passwd

SetUID權限,用戶執行這個命令的時候將以這個程序的

全部者root的身份執行。

5.1組管理

[root@localhost ~]# more /etc/group

sys:x:3:bin,adm

組名:組密碼位:GID:組成員

 

5.2批量添加用戶

vi /test/user.info

miao01::1001:1::/home/miao01:/bin/bash

miao02::1002:1::/home/miao02:/bin/bash

miao03::1003:1::/home/miao03:/bin/bash

miao04::1004:1::/home/miao04:/bin/bash

 

yy複製

p粘貼

dd刪除

newusers < user.info

 

[root@localhost test]# tail -8 /etc/passwd

webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

helen:x:500:500:yue:/home/helen:/bin/bash

miao01:x:1001:501::/home/miao01:/bin/bash

miao02:x:1002:501::/home/miao02:/bin/bash

miao03:x:1003:501::/home/miao03:/bin/bash

miao04:x:1004:501::/home/miao04:/bin/bash

 

[root@localhost test]# ls /home

helen  miao01  miao02  miao03  miao04

 

[root@localhost test]# pwunconv 取消shadow password功能

 

[root@localhost test]# vi pass.info

      1 miao01:miaoruifeng

      2 miao02:miaoruifeng

      3 miao03:miaoruifeng

      4 miao04:miaoruifeng

 

[root@localhost test]# chpasswd < pass.info

 

[root@localhost test]# tail -5 /etc/passwd

helen:$6$hAI2Non/v8ILJHUB$hZRdcI84l6l8Z00SSSC47g/bZDvbw82elFrlkzw9/mgPzhtZ0DUZxEBZaKE.bg01YJ4KzC40enFZ9ICkQPK/U1:500:500:yue:/home/helen:/bin/bash

miao01:$6$ss3Y3rTq5J/ZsM$RM4MxoMQY0hKQVoiYoDdIxd.rOxIvhhDX4KSAtwx/wz8HDi4R/6XPJjSFbaPF3GKOXhfp/4yxM42iqp3uudTi0:1001:501::/home/miao01:/bin/bash

miao02:$6$v.82xwjZ0BM2$ALGUvJjUsccS6y.yE/S0gntEKtmvpriBL6Jd5sbr5AnySNrPi1Ay8gI4CDDNFr3U2X/i.Ai5sZqYFkFtu6rYV/:1002:501::/home/miao02:/bin/bash

miao03:$6$SMGHf/SO2JW/M$8qFnwvCejx30Wg6RzpTVXyB3.hh7vYnOwkASEFQwowFZz7cZUQfYYLeTWCzspuJH8AbkWkdca4gQ3fwvhNWwZ0:1003:501::/home/miao03:/bin/bash

miao04:$6$5JzRLvtHoJCYs3KG$0JuxD5CbBxMq1vIn49Xv/HGtiF.z.JW9PbdshbylEpTv6iMu7mBM2k8z2BOUi.i8prODMl/vGyNEXsRqcSq7C0:1004:501::/home/miao04:/bin/bash

 

[root@localhost test]# tail -5 /etc/shadow

tail: cannot open `/etc/shadow' for reading: No such file or directory   由於取消了shadow,須要打開

 

[root@localhost test]# pwconv  開啓shadow

 

[root@localhost test]# tail -5 /etc/shadow     密碼添加成功

helen:$6$hAI2Non/v8ILJHUB$hZRdcI84l6l8Z00SSSC47g/bZDvbw82elFrlkzw9/mgPzhtZ0DUZxEBZaKE.bg01YJ4KzC40enFZ9ICkQPK/U1:16498:0:99999:7:::

miao01:$6$ss3Y3rTq5J/ZsM$RM4MxoMQY0hKQVoiYoDdIxd.rOxIvhhDX4KSAtwx/wz8HDi4R/6XPJjSFbaPF3GKOXhfp/4yxM42iqp3uudTi0:16498:0:99999:7:::

miao02:$6$v.82xwjZ0BM2$ALGUvJjUsccS6y.yE/S0gntEKtmvpriBL6Jd5sbr5AnySNrPi1Ay8gI4CDDNFr3U2X/i.Ai5sZqYFkFtu6rYV/:16498:0:99999:7:::

miao03:$6$SMGHf/SO2JW/M$8qFnwvCejx30Wg6RzpTVXyB3.hh7vYnOwkASEFQwowFZz7cZUQfYYLeTWCzspuJH8AbkWkdca4gQ3fwvhNWwZ0:16498:0:99999:7:::

miao04:$6$5JzRLvtHoJCYs3KG$0JuxD5CbBxMq1vIn49Xv/HGtiF.z.JW9PbdshbylEpTv6iMu7mBM2k8z2BOUi.i8prODMl/vGyNEXsRqcSq7C0:16498:0:99999:7:::

 

 

問題1newusers:conmmand not found/// newusers: cannot lock /etc/passwd; try again later.

答:因爲多用戶操做密碼文件未關閉而上鎖,解決方法:刪除:rm –rf /etc/*.lock

問題2newusers: line 5: invalid line

答:第五行爲空,刪掉空行,不能空行。

 

 

 

限制su,用戶受權

sudo可讓普通用戶以root身份執行命令,權限精細化

 

visudo

miao01 miao=/usr/sbin/useradd,/usr/sbin/userdel

用戶主機名權限

 

sudo /usr/sbin/useradd miao  添加用戶miao

 

 [sudo] password for miao01:  輸入miao01的密碼來驗證

 

bash-4.1$ sudo –l  查看本身可使用哪些root權限

Matching Defaults entries for miao01 on this host:

    requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS

    DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1

    PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE

    LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY

    LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL

    LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",

    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

 

User miao01 may run the following commands on this host:

(root) /usr/sbin/useradd, (root) /usr/sbin/userdel

 

 

miao02 miao=/sbin/shutdown -h now 用戶2只能夠立刻關機:sudo使命令精確化!

 

 

受權用戶使用Apache·

 

首先名字叫作httpd

  1. 1.       查看httpd.conf權限
  2. 2.       找到httpd.conf
  3. 3.       rpm –ql httpd | more
  4. 4.       根據找到的路徑查看權限
  5. 5.       ls –l /etc/httpd/conf/httpd.conf

[root@miao ~]# ls -l /etc/httpd/conf/httpd.conf

-rw-r--r--. 1 root root 34418 Aug  2  2013 /etc/httpd/conf/httpd.conf

由此看出,只有root有寫權限

 

目標:

  1. 1.       編輯Apache配置文件
  2. 2.       使用Apache啓動腳本
  3. 3.       更新網頁

目標1方法(3)

  1. 1.       設置用戶爲httpd全部者 chown
  2. 2.       改變所屬組,把用戶加入組,授予組w權限
  3. 3.       visudo 用戶地址=/bin/vi /etc/httpd/conf/httpd.conf

 

 

bash-4.1$ sudo /bin/vi /etc/httpd/conf/httpd.conf 能夠執行了

Error detected while processing /root/.vimrc:

line    1:

E518: Unknown option: nocopatible

Press ENTER or type command to continue

     目標2方法:

  1. 1.       查詢httpd方法
  2. 1.       [root@miao ~]# /etc/rc.d/init.d/httpd
  3. 2.       Usage: httpd {start|stop|restart|condrestart|try-restart|force-reload|reload|status|fullstatus|graceful|help|configtest}
  4. 3.       給用戶受權
  5. 4.       visudo 用戶地址=/etc/rc.d/init.d/htppd start,/etc/rc,d/init.d/httpd reload,/etc/rc.d/init.d/httpd fullstatus,/etc/rc.d/init.d/httpd configtest
  6. 5.        

   

 

 

 

  1. 6.       進程管理

[root@miao ~]# pkill httpd 不用提取pid直接殺死進程

 

改變優先級

 

[root@miao ~]# ps -le | grep httpd

1 S     0  5683     1  0  80   0 -  5096 -      ?        00:00:00 httpd

5 S    48  5685  5683  0  80   0 -  5076 -      ?        00:00:00 httpd

5 S    48  5686  5683  0  80   0 -  5331 -      ?        00:00:00 httpd

5 S    48  5687  5683  0  80   0 -  5331 -      ?        00:00:00 httpd

5 S    48  5688  5683  0  80   0 -  5331 -      ?        00:00:00 httpd

5 S    48  5689  5683  0  80   0 -  5331 -      ?        00:00:00 httpd

5 S    48  5690  5683  0  80   0 -  5331 -      ?        00:00:00 httpd

5 S    48  5691  5683  0  80   0 -  5331 -      ?        00:00:00 httpd

5 S    48  5692  5683  0  80   0 -  5331 -      ?        00:00:00 httpd

5 S    48  5693  5683  0  80   0 -  5331 -      ?        00:00:00 httpd

[root@miao ~]# /etc/rc.d/init.d/httpd stop

Stopping httpd:                                            [  OK  ]

[root@miao ~]# nice --5 /etc/rc.d/init.d/httpd start

Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

                                                           [  OK  ]

[root@miao ~]# ps -le | grep httpd

1 S     0  5715     1  2  75  -5 -  5096 -      ?        00:00:00 httpd

5 S    48  5717  5715  0  75  -5 -  5076 -      ?        00:00:00 httpd

5 S    48  5718  5715  0  75  -5 -  5331 -      ?        00:00:00 httpd

5 S    48  5719  5715  0  75  -5 -  5331 -      ?        00:00:00 httpd

5 S    48  5720  5715  0  75  -5 -  5331 -      ?        00:00:00 httpd

5 S    48  5721  5715  0  75  -5 -  5331 -      ?        00:00:00 httpd

5 S    48  5722  5715  0  75  -5 -  5331 -      ?        00:00:00 httpd

5 S    48  5723  5715  0  75  -5 -  5331 -      ?        00:00:00 httpd

5 S    48  5724  5715  0  75  -5 -  5331 -      ?        00:00:00 httpd

5 S    48  5725  5715  0  75  -5 -  5331 -      ?        00:00:00 httpd

 

 

 

 

用戶退出後進程繼續運行

 

[root@miao ~]# nohup find / -name init* > /root/find.init.20150305 &

 

Ctrl+c終止

ctrl+z掛起

 

轉到掛起的進程,前臺執行

 

[root@miao ~]# jobs               

[1]+  Stopped                 ps -aux | more

[root@miao ~]# fg 1

 

轉到後臺執行

 

bg 1

 

top

 

 

6.2計劃任務   

at 時間

命令

 

若是這個進程沒有啓動,手動啓動一下

 

 

執行計劃任務,查看計劃任務,刪除計劃任務

 

 

 

把具體的時間添上,不知道的都寫*

分鐘小時星期命令/腳本

0    4      * *   *    

0    18     * *   2,5                   每週二週五下午六點執行

0    18     * 1-3  2,5                   13月每週二週五下午六點執行

30   17     * *    1-5 /usr/bin/wall < /etc/issue

45   17     * *    1-5 /sbin/shutdown –h now

*/2  12-14   * 3-6,9-12 1-5 /bin/cp –r /etc/backup/etc.20150305 2>/backup/etc/etc.bak.err >/dev/null               2分鐘執行,錯誤信息保存

 

crontab

 

[root@miao ~]# ps -le | grep crond

1 S     0  2290     1  0  80   0 -   989 -      ?        00:00:00 crond

[root@miao ~]# /etc/rc.d/init.d/crond start

 

  1. 7.       shell編程

7.1   hello world

[root@miao ~]# mkdir sh

[root@miao ~]# ls

Desktop    Music     Templates        find.init.20150305  sh

Documents  Pictures  Videos           install.log         ??????

Downloads  Public    anaconda-ks.cfg  install.log.syslog

[root@miao ~]# cd sh/

[root@miao sh]# vim hello.sh

 

#!/bin/bash

#miao the first

echo "Mr hello" world ,this is my first shell

~

 

[root@miao sh]# ./hello.sh   經過相對路徑或者絕對路徑執行

Mr hello world ,this is my first shell

 

7.2標準輸入和輸出

 

 

7.2變量,位置變量$! $$ $# $@ $* $?,環境變量,運算符

最好大寫,以字母下劃線開頭,包含字母下劃線數字。

查看變量

set | more

 

上面用的是分隔符,是鍵盤1左邊的按鍵

 

 

 

 

 

 

 

$?表示上一個命令是否執行成功:0表示成功

 
 
 
 

sh -x 查看執行過程用+表示

 

 

201537日星期六

 

7.3if…else

因爲服務器常常宕機(本身用pc作服務器的學校),須要常常查看Apache是否死掉,若死掉則重啓,寫了腳本以下

[root@miao test]# cat test.apache

#!/bin/sh

#"if ...else" usage

#Using this program to show your system's services.

 

echo "Now, the web services of this Linux system will be detext..."

echo

 

#Detect www service

 web=`/usr/bin/pgrep httpd`

 if [ "$web" != "" ]

 then

        echo "The Web service is running."

 else

        echo "The Web service is NOT running."

        /etc/rc.d/init.d/httpd start

 fi

 

效果以下:

 

7.4for

 

7.5awk

-F指定分隔符爲:,若不指定則爲空格,$1開始表明分割的每一部分

查找uid爲0 的用戶

 

查找用戶密碼位空的用戶,注意長度的表示

 

 

7.6一個顯示用戶信息的腳本

 

 

 

 

7.7一個殺死登錄用戶的腳本

結果以下

 

腳本內容

 

 

 

7.8select case

select

 

 

select+case

 

 

 

case

 

 

 

 

7.9while

 

7.10批量添加用戶

 

 

7.11批量刪除用戶

 

7.12break  .. continue

 

7.13 shift,參數累加求和

效果: 參數左移

 

 

 

 

 

7.14用戶執行腳本的權限

sh script

  1. 對腳本有r權限
  2. 腳本所在目錄要有r-x權限

 

腳本直接執行

  1. 1.       對腳本有rx權限
  2. 2.       腳本所在目錄有rx權限

7.15正則表達式

 

 

 

 

 

 

7.16截取字符串awkcutset

 

 

 

 

awk 列操做

 

 

 

 

 

第一行不執行,第一行先讀取的

 

因此加BEGIN

 

 

 

行操做

 

 

選取某一行

 

 

去掉某一行

 

追加某一行或幾行

 

 

替換

 

 

 

 

 

7.17定時任務

 

 

 

 

 

 

  1. 8.       安裝jdk

8.1卸載原裝openjdk

[root@dc-01 java]#  rpm -qa | grep jdk

java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i686 

 

卸載之:

 [root@dc-01 java]# yum -y remove java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.i686

 

 

8.2下載安裝包

查看系統位數

 

下載對應的安裝包

http://pan.baidu.com/s/1qWnzJCK

8.3安裝

1.修改權限爲可執行

 

2.rpm –ivh 安裝包

 

3.vi /etc/profile 尾部添加環境變量

 

 

79 JAVA_HOME=/usr/java/jdk1.7.0_67

 80 PATH=$JAVA_HOME/bin:$PATH

 81 CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 82 export JAVA_HOME

 83 export PATH

     84 export CLASSPATH

4. 執行source /etc/profile命令讓修改生效。

 

5.查看安裝結果

 

 

 

至此,安裝jdk成功

  1. 9.       安裝Tomcat

1.下載安裝包,千萬選好安裝源,由於安裝包的問題,硬是讓我調試了一天,真是傻逼,從新官網下載安裝以後立馬能夠用了

http://tomcat.apache.org/download-70.cgi

2.解壓到/usr/local 下,並重命名爲tomcat

#tar zxvf apache-tomcat-7.0.35.tar.gz /解壓

#mv apache-tomcat-7.0.35 apache-tomcat /改名

#cd /apache-tomcat/bin/ /打開此目錄

#chmod 777 *.sh /777權限

#bash catalina.sh start /啓動

相關文章
相關標籤/搜索