2013年1月14日 星期一

[linux] 基本指令

#看系統內核等信息
$ uname -a
Linux jexpoyi 2.6.32-042stab059.7 #1 SMP Tue Jul 24 19:12:01 MSK 2012 x86_64 x86_64 x86_64 GNU/Linux

#查看系統資訊 (等同輸入 cat /proc/version )
$ more /proc/version
Linux version 2.6.32-042stab059.7 (root@rh6-build-x64) (gcc version 4.4.6 201203
05 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Tue Jul 24 19:12:01 MSK 2012


#查看目前Linux版本
$ cat /etc/issue
Ubuntu 12.04.1 LTS \n \l

#顯示linux版本
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.1 LTS
Release:        12.04
Codename:       precise

#看程式執行狀態
$ ps -aux

#與 ps-aux 類似,不過它是動態的
$ top

#假如修改過的檔案,要再讓它重新執行一次(例如:設定檔)
$ source  .bash_profile



locate
$ locate fb.php
/usr/share/phpmyadmin/libraries/tcpdf/fonts/dejavuserifb.php
/var/www/test/fb.php
* 尋找檔案位置
* 找不到檔案時,先更新資料庫(/var/lib/mlocate/), 輸入 updatedb


find
$ find ./ -name fb.php
./test1/fb.php
./fb.php
* 尋找檔案的指令,會將欲尋找的檔案找出來,語法:
* find 路徑 -name 檔名


whereis
$ whereis bin
bin: /usr/local/bin
* 尋找檔案,whereis 利用曾經找過的系統資訊內的資料去找檔案,所以速度會很快 * 不過,如果 whereis 找不到的話,並不代表該檔案真的不存在!


date
$ date
Sat Apr 20 17:57:56 MSK 2013
* 顯示主機日期及時間


mkdir
$ mkdir qqq
* 建立資料夾


rmdir
$ rmdir qqq
* 刪除資料夾


touch
$ touch qq.php
* 建立qq.php檔案

rm
$ rm qq.php       #刪除qq.php檔案
$ rm -i qq.php    #會詢問你是否要刪除qq.php檔案
$ rm -fr .*       #(-f為包含隱藏檔) (-r為遞迴) (. 為目前目錄下) (* 為所有檔案)
$ rm -r qq        #刪除qq資料夾並且刪除裡面的所有檔案
* 刪除資料夾/檔案


ifconfig
$ ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:10075 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10075 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:818061 (818.0 KB)  TX bytes:818061 (818.0 KB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:127.0.0.2  P-t-P:127.0.0.2  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:1003984 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1074673 errors:0 dropped:122 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:269505597 (269.5 MB)  TX bytes:274804896 (274.8 MB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:142.4.51.133  P-t-P:142.4.51.133  Bcast:0.0.0.0  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

* 查看IP等相關資訊


pwd
$ pwd
/var/www/test
* 顯示目前所在目錄


mv
$ mv qq.php test/qq2.php
* 剪下,也可以重新命名
* 將 qq.php 搬移到目前目錄的 test 資料夾下,並且命名為 qq2.php


cp
$ cp fb.php test/qq.php      #將 fb.php 複製到 test 資料夾下,並重新命名為 qq.php
$ cp -r assets test/assets   #將 assets 資料夾裡的所有資料複製到 test/assets 裡
* 複製,用法同 mv


wget
$ wget http://pic.pimg.tw/ycc328/1331079583-1491181324.jpg
--2013-04-20 18:29:18--  http://pic.pimg.tw/ycc328/1331079583-1491181324.jpg
Resolving pic.pimg.tw (pic.pimg.tw)... 23.0.165.33, 23.0.165.42, 23.0.165.40
Connecting to pic.pimg.tw (pic.pimg.tw)|23.0.165.33|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15551 (15K) [image/jpeg]
Saving to: `1331079583-1491181324.jpg'

100%[===========================================================>] 15,551      --.-K/s   in 0.06s

2013-04-20 18:29:19 (263 KB/s) - `1331079583-1491181324.jpg' saved [15551/15551]
* 下載。
* wget 後面接要下載的網址


clear
$ clear
* 清除終端機上的畫面


cat
$ cat -n phpinfo.php
     1  $
* 顯示檔案內容及行數


echo
$ echo "Hello World!" >> qq.php
* 增加資料到 qq.php ,如果檔案不存在就會自動建立 * 如果檔案已存在,會新增至 qq.php 最後一行


ls
#顯示目錄下的檔案權限, 擁有者..等等
ls -l

#檔案大小那邊會換算成我們習慣的方式(G, M, K)
ls -lh       
drwxr-xr-x 15 webadmin root 4.0K Mar 19 21:09 application
drwxr-xr-x  6 webadmin root 4.0K Apr  7 21:25 assets


#顯示目錄下的檔案(包含隱藏檔)
ls -a

ls | more    # 分頁 q : 離開
ls | less    # 分頁 (操作如同vim,但不需要加ctrl)
             # d : 下12筆,
             # b、w : 上一頁,
             # f : 下一頁,
             # j 、e : 下一筆,
             # g : 回到第一筆,
             # k : 上一筆,
             # h : help

#顯示檔案的inode id
$ ls -ia
1451762 .           1443270 .mysql_history  1576628 assets
1451760 ..          1443190 .php_history    1443160 djfl
1577046 .cache      1443425 .ssh            1443313 index.php
1443151 .git        1576655 .vim            1443315 license.txt
1443307 .gitconfig  1442269 .viminfo        1576661 system
1443272 .gitignore  1443276 .vimrc          1577048 test
1443312 .htaccess   1576553 application     1576831 user_guide

* 顯示所在目錄的內容


chown
情況1:
drwxr-xr-x 4 root     root 4096 Apr 20 18:46 test1        #原本擁有者及群組都是root
$ chown webadmin:webadmin test1                           #將擁有者及群組都改為webadmin
drwxr-xr-x 4 webadmin webadmin 4096 Apr 20 18:46 test1    #結果擁有者及群組都是webadmin

情況2(省略群組->只會改擁有者):
drwxr-xr-x 4 webadmin root 4096 Apr 20 18:46 test1          #原本擁有者為webadmin,群組為root
$ chown root test1                                          #只輸入root(省略群組)
drwxr-xr-x 4 root     root 4096 Apr 20 18:46 test1          #結果只會修改擁有者,群組不變
* 改變檔案/資料夾的擁有者,以下為語法:
* chown 擁有者:群組 [檔案/資料夾]


chgrp
drwxr-xr-x 4 webadmin webadmin 4096 Apr 20 18:46 test1      #原本群組為webadmin
$ chgrp root test1                                          #將群組改為root
drwxr-xr-x 4 webadmin root 4096 Apr 20 18:46 test1          #結果群組改為root了
* 改變群組


chmod
#測試1
drwxr-xr-x 4 webadmin root 4096 Apr 20 18:46 test1          #原本權限為755
$ chmod 777 test1                                           #將權限改為777
drwxrwxrwx 4 webadmin root 4096 Apr 20 18:46 test1          #結果權限被改為777了

#測試2
-rw-r--r-- 1 webadmin root   20 Apr 21 11:18 test.php       #原本
$ chmod +x test.php                                         #全部都加上執行權限
-rwxr-xr-x 1 webadmin root   20 Apr 21 11:18 test.php       #結果

#測試3
-rw-rw-rw- 1 webadmin root   20 Apr 21 11:18 test.php       #原本
$ chmod u+x test.php                                        #只有擁有者加上執行權限
-rwxrw-rw- 1 webadmin root   20 Apr 21 11:18 test.php       #結果
* 改變讀、寫和執行權限
* 如果對檔案權限還不熟請參考此頁
* chmod +x 補充 :
u 代表 user
g 代表 group
o 代表 others
a 代表 all
註1: 以上寫在 +x 前面
註2: 省略前面不寫只寫 +x 代表全部,也就是等於a+x

du
$ du -s test1    # test1 為資料夾
192     test1
* 檔案佔用大小


df
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/simfs      5.0G  1.1G  4.0G  22% /
none             64M  8.0K   64M   1% /dev
none             13M  1.1M   12M   8% /run
none            5.0M     0  5.0M   0% /run/lock
none             64M     0   64M   0% /run/shm
* 檔案系統


top
$ top
top - 19:17:18 up 98 days, 53 min,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  29 total,   1 running,  28 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    131072k total,    95824k used,    35248k free,        0k buffers
Swap:   131072k total,    70300k used,    60772k free,    42824k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    1 root      20   0 24132  576  124 S    0  0.4   0:03.63 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd/2919
    3 root      20   0     0    0    0 S    0  0.0   0:00.00 khelper/2919
  135 messageb  20   0 23896    8    4 S    0  0.0   0:00.02 dbus-daemon
  199 root      20   0 15144    8    4 S    0  0.0   0:00.00 upstart-socket-
  311 root      20   0 19068  296  200 S    0  0.2   0:11.57 cron
  354 syslog    20   0 12708  480  348 S    0  0.4   0:29.11 syslogd
  452 root      20   0 49912  364  240 S    0  0.3   0:10.29 sshd
  486 root      20   0 78620    4    0 S    0  0.0   0:00.00 saslauthd
  487 root      20   0 78620    4    0 S    0  0.0   0:00.00 saslauthd
  652 root      20   0 14924    8    4 S    0  0.0   0:00.00 xinetd
  705 root      20   0 89040  676  444 S    0  0.5   2:47.09 sendmail-mta
 5741 www-data  20   0  293m  10m 3928 S    0  8.1   0:00.40 apache2
 8776 root      20   0 17188    8    4 S    0  0.0   0:00.00 upstart-udev-br
 8778 root      20   0 21528    8    4 S    0  0.0   0:00.00 udevd
 9002 bind      20   0  988m 4280 1804 S    0  3.3   0:02.09 named
10087 www-data  20   0  291m 9424 4156 S    0  7.2   0:00.12 apache2
11062 www-data  20   0  292m 9436 3816 S    0  7.2   0:00.17 apache2
13348 mysql     20   0 1206m 9100 2396 S    0  6.9  24:26.62 mysqld
13486 www-data  20   0  290m 6936 3380 S    0  5.3   0:00.12 apache2
15767 root      20   0 23308  156  108 S    0  0.1   0:00.29 vsftpd
27373 www-data  20   0  292m 8660 3360 S    0  6.6   0:00.06 apache2
27499 root      20   0  289m  320  208 S    0  0.2   0:53.43 apache2
31845 root      20   0 73316 3492 2688 S    0  2.7   0:00.01 sshd
31857 webadmin  20   0 73316 1980 1152 S    0  1.5   0:00.25 sshd
31858 webadmin  20   0  4356  728  612 S    0  0.6   0:00.03 sh
32132 root      20   0 73316 3580 2772 S    0  2.7   0:00.08 sshd
32144 root      20   0 18096 2064 1500 S    0  1.6   0:00.04 bash
32291 webadmin  20   0 17164 1312 1052 R    0  1.0   0:00.00 top
* 工作監控
* q 或 ctrl + c 離開


who
#查線上使用者(也就是目前有誰登入進來)
$ who
webadmin pts/0        Apr 20 17:51 (61.58.172.120)
root     pts/1        Apr 20 18:46 (61.58.172.120)

#與who用途相同
$ w
 18:46:50 up 103 days, 22 min,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
webadmin pts/0    180-176-112-131. 18:40    0.00s  0.00s  0.00s w



uptime
$ uptime
 19:20:02 up 98 days, 55 min,  2 users,  load average: 0.00, 0.00, 0.00
* 顯示負載


fsck
$ fsck
fsck from util-linux 2.20.1
* 顯示檔案系統


export
$ export
export HOME='/var/www'
export LOGNAME='webadmin'
export MAIL='/var/mail/webadmin'
export OLDPWD='/var/www'
export PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
export PWD='/var/www/test'
export SHELL='/bin/sh'
export SSH_CLIENT='61.58.172.120 2392 22'
export SSH_CONNECTION='61.58.172.120 2392 142.4.51.133 22'
export SSH_TTY='/dev/pts/0'
export TERM='xterm'
export USER='webadmin'
* 查看config設定


grep
#尋找目前資料夾下含有字串"qq"的檔案
$ grep "qq" ./*
./test.php:echo 'qq';

#查詢目前資料夾下包括子資料夾下的含有"memcache"字串的檔案
$ grep "memcache" -r ./*

# 找 "function" 字串那一行且含有 "Submit"
$ grep -r "function" | grep "Submit"

# 找 "function" 字串那一行但不含有 "Submit"
$ grep -r "function" | grep -v "Submit"
* 搜尋字串


&&
$ cd test&&ls                 #執行cd test然候再執行ls
phpinfo.php  test.php
* 中斷


背景執行
#放入背景
ctrl + z

#看背景有哪些程式在執行
$ jobs
[1] + Stopped                    vim test

#叫出第一個背景的程式
$ fg %1

#停止在背景執行的第一個程式
$ kill -9 %1
$ jobs
[1] + Killed                     vim test




stash
#放進暫存
git stash

#查看暫存
git stash list

#取出暫存 
git stash pop

#如果暫存有多個,可以指定要還原哪個commit ID 
git stash [commit ID]



dd
#產生10mb的檔案
#count是幾次 ; bs是大小
dd if=/dev/zero of=/mnt/xfs/test1/aaa count=10 bs=1024k



帳號相關指令
#增加使用者
#使用者建立後預設目錄為/home/jex_lin,但目錄不會自動產生,可以在建立完使用者後建立/home/jex_lin目錄
useradd jex_lin

#修改密碼
#使用者初次建立後要使用它來設定密碼
passwd jex_lin

#刪除使用者
userdel

#使用者相關設定
usermod

#查詢使用者相關資訊
id



磁碟狀態相關指令
#只列出sd磁碟
ls /dev/sd*

#列出所有磁碟(hd及sd)
ls /dev/[sh]d* 

#找出你系統中的根目錄所在磁碟,並顯示相關資訊
df /

#全部檔案系統和各分割區的磁碟用情形
df -a

#查看檔案系統
df -T

#目前硬碟使用的情形
df -h

#查閱目前系統所有的partition有哪些
fdisk -l

#確認一下它是否可以分割
fdisk -l /dev/sda1

#輸入h可以查閱可使用的指令
fdisk /dev/sda1



awk
$ df -h | grep /dev/sda1 | awk '{print $0"=>"$1" "$2" "$3}'
/dev/sda1       226G  2.1G  212G   1% /=>/dev/sda1 226G 2.1G
* 處理欄位
* $0為全部,$1為第一個欄位,依此類推




以下未測:
vi /etc/fstab add-> /dev/sdbb1 /media(要掛的目錄) auto 0 2 (未測) 開機自動mount
unmount /media (未測) 卸載
mkfs -t ext4 /dev/sdb1 (未測)格式化mkfs
fsck /dev/sdb1 (未測) 檢查檔案系統
shutdown (-h) -r + 10 (未測)關機
halt (未測)關機
init 6 (未測)重開機



-------
參考資料 :
http://www.lslnet.com/linux/f/docs1/i22/big5203819.htm
http://blog.longwin.com.tw/2005/11/screen_teach/

沒有留言:

張貼留言