請切換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
命令存放,哪些命令能夠執行?
root: |
/sbin /usr/sbin |
all users:
|
/bin /usr/bin |
bin--binary 二進制文件 Linux全部都是文件,都是二進制文件 usr—user sbin—super binary |
文件處理命令 |
|
||||
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節點能夠映射到多個文件,因此硬連接能夠同步更新。
|
權限管理命令 |
|||||
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 - |
切換用戶 |
|
|
|
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 文件全部者
時間
c—change改變,表示文件的屬性被修改過,全部者、所屬組、權限 a—access訪問 m—modify修改,表示文件的內容被修改過 -以內,+超過 find /etc –mmin -120 一分鐘內被修改過 -type 文件類型 f 二進制文件 l 軟鏈接文件 d 目錄
-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相關的行 |
|
幫助命令 |
|
|
|||||
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 |
|
||
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 |
|
|
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,服務器一般不隨便開關 |
|
|
|
一般使用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
|
[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 能夠把以#開頭的行排除
第一級 – 存活
當你安裝好一個編輯器後,你必定會想在其中輸入點什麼東西,而後看看這個編輯器是什麼樣子。但vim不是這樣的,請按照下面的命令操做:
如今,你知道如何在 Insert 和 Normal 模式下切換了。下面是一些命令,可讓你在 Normal 模式下倖存下來:
推薦:
你能在vim倖存下來只須要上述的那5個命令,你就能夠編輯文本了,你必定要把這些命令練成一種下意識的狀態。因而你就能夠開始進階到第二級了。 當是,在你進入第二級時,須要再說一下 Normal 模式。在通常的編輯器下,當你須要copy一段文字的時候,你須要使用 Ctrl 鍵,好比:Ctrl-C。也就是說,Ctrl鍵就好像功能鍵同樣,當你按下了功能鍵Ctrl後,C就不在是C了,並且就是一個命令或是一個快鍵鍵了,在VIM的Normal模式下,全部的鍵就是功能鍵了。這個你須要知道。 標記:
第二級 – 感受良好 上面的那些命令只能讓你存活下來,如今是時候學習一些更多的命令了,下面是個人建議:(陳皓注:全部的命令都須要在Normal模式下使用,若是你不知道如今在什麼樣的模式,你就狂按幾回ESC鍵)
花點時間熟悉一下上面的命令,一旦你掌握他們了,你就幾乎能夠幹其它編輯器都能幹的事了。可是到如今爲止,你仍是以爲使用vim仍是有點笨拙,不過不要緊,你能夠進階到第三級了。 第三級 – 更好,更強,更快 先恭喜你!你乾的很不錯。咱們能夠開始一些更爲有趣的事了。在第三級,咱們只談那些和vi能夠兼容的命令。 更好 下面,讓咱們看一下vim是怎麼重複本身的:
下面是一個示例,找開一個文件你能夠試試下面的命令:
更強 你要讓你的光標移動更有效率,你必定要了解下面的這些命令,千萬別跳過。
> 若是你認爲單詞是由默認方式,那麼就用小寫的e和w。默認上來講,一個單詞由字母,數字和下劃線組成(陳皓注:程序變量) > 若是你認爲單詞是由blank字符分隔符,那麼你須要使用大寫的E和W。(陳皓注:程序語句)
下面,讓我來講說最強的光標移動:
相信我,上面這三個命令對程序員來講是至關強大的。 更快 你必定要記住光標的移動,由於不少命令均可以和這些移動光標的命令連動。不少命令均可以以下來幹: <start position><command><end position> 例如 0y$ 命令意味着:
你可能夠輸入 ye,從當前位置拷貝到本單詞的最後一個字符。 你也能夠輸入 y2/foo 來拷貝2個 「foo」 之間的字符串。 還有不少時間並不必定你就必定要按y纔會拷貝,下面的命令也會被拷貝:
(陳皓注:可視化選擇是一個頗有意思的命令,你能夠先按v,而後移動光標,你就會看到文本被選擇,而後,你可能d,也可y,也能夠變大寫等) 第四級 – Vim 超能力 你只須要掌握前面的命令,你就能夠很舒服的使用VIM了。可是,如今,咱們向你介紹的是VIM殺手級的功能。下面這些功能是我只用vim的緣由。 在當前行上移動光標: 0 ^ $ f F t T , ;
還有一個頗有用的命令是 dt" → 刪除全部的內容,直到遇到雙引號—— "。 區域選擇 <action>a<object> 或 <action>i<object> 在visual 模式下,這些命令很強大,其命令格式爲 <action>a<object> 和 <action>i<object>
假設你有一個字符串 (map (+) ("foo")).而光標鍵在第一個 o 的位置。
塊操做: <C-v> 塊操做,典型的操做: 0 <C-v> <C-d> I-- [ESC]
在Windows下的vim,你須要使用 <C-q> 而不是 <C-v> ,<C-v> 是拷貝剪貼板。 自動提示: <C-n> 和 <C-p> 在 Insert 模式下,你能夠輸入一個詞的開頭,而後按 <C-p>或是<C-n>,自動補齊功能就出現了……
宏錄製: qa 操做序列 q, @a, @@
示例 在一個只有一行且這一行只有「1」的文本中,鍵入以下命令:
可視化選擇: v,V,<C-v> 前面,咱們看到了 <C-v>的示例 (在Windows下應該是<C-q>),咱們可使用 v 和 V。一但被選好了,你能夠作下面的事:
在全部被選擇的行後加上點東西:
分屏: :split 和 vsplit. 下面是主要的命令,你可使用VIM的幫助 :help split. 你能夠參考本站之前的一篇文章VIM分屏。
結束語
|
在 centOS 中的修改方法以下: 1.root登錄,省得總是sudo 2.打開/etc/inittab 文件 #vim /etc/inittab 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相關的軟件包 |
|
誤刪文件 |
|
|
|
||
用戶管理 |
|
[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的身份執行。 |
[root@localhost ~]# more /etc/group sys:x:3:bin,adm 組名:組密碼位:GID:組成員 |
|
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:::
|
問題1:newusers:conmmand not found/// newusers: cannot lock /etc/passwd; try again later. 答:因爲多用戶操做密碼文件未關閉而上鎖,解決方法:刪除:rm –rf /etc/*.lock 問題2:newusers: 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
[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方法(3種):
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方法:
|
|
|
|
[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 |
|
at 時間 命令 |
|
若是這個進程沒有啓動,手動啓動一下
|
|
執行計劃任務,查看計劃任務,刪除計劃任務
|
|
把具體的時間添上,不知道的都寫* 分鐘小時天月星期命令/腳本 0 4 * * * 0 18 * * 2,5 每週二週五下午六點執行 0 18 * 1-3 2,5 1到3月每週二週五下午六點執行 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 |
|
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 查看執行過程用+表示 |
|
2015年3月7日星期六
7.3if…else
因爲服務器常常宕機(本身用pc作服務器的學校),須要常常查看Apache是否死掉,若死掉則重啓,寫了腳本以下
效果以下:
|
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
腳本直接執行
|
7.15正則表達式
|
7.16截取字符串awk,cut,set
awk 列操做
第一行不執行,第一行先讀取的
因此加BEGIN
行操做 |
選取某一行
去掉某一行
追加某一行或幾行
替換
|
7.17定時任務
|
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下載安裝包
查看系統位數 |
下載對應的安裝包 |
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.下載安裝包,千萬選好安裝源,由於安裝包的問題,硬是讓我調試了一天,真是傻逼,從新官網下載安裝以後立馬能夠用了 |
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 /啓動 |