99热成人精品免费久久,7777久久亚洲中文字幕,一本大道久久香蕉成人网http://m.shnenglu.com/yehongly/category/8418.htmlzh-cnTue, 28 Oct 2008 18:47:31 GMTTue, 28 Oct 2008 18:47:31 GMT60linux學習筆記http://m.shnenglu.com/yehongly/archive/2008/10/27/65222.htmlMon, 27 Oct 2008 09:37:00 GMThttp://m.shnenglu.com/yehongly/archive/2008/10/27/65222.htmlhttp://m.shnenglu.com/yehongly/comments/65222.htmlhttp://m.shnenglu.com/yehongly/archive/2008/10/27/65222.html#Feedback0http://m.shnenglu.com/yehongly/comments/commentRss/65222.htmlhttp://m.shnenglu.com/yehongly/services/trackbacks/65222.html /       根目錄
/bin         常用的命令   binary   file   的目錄
/boot       存放系統啟動時必須讀取的檔案,包括核心   (kernel)   在內
          /boot/grub/menu.lst       GRUB設置
          /boot/vmlinuz       內核
          /boot/initrd           核心解壓縮所需   RAM   Disk
/dev         系統周邊設備          
/etc         系統相關設定文件
          /etc/DIR_COLORS       設定顏色
          /etc/HOSTNAME       設定用戶的節點名
          /etc/NETWORKING       只有YES標明網絡存在
          /etc/host.conf   文件說明用戶的系統如何查詢節點名
          /etc/hosts   設定用戶自已的IP與名字的對應表
          /etc/hosts.allow   設置允許使用inetd的機器使用  
          /etc/hosts.deny   設置不允許使用inetd的機器使用
          /etc/hosts.equiv   設置遠端機不用密碼
          /etc/inetd.conf   設定系統網絡守護進程inetd的配置
          /etc/gateways   設定路由器
          /etc/protocols   設定系統支持的協議
          /etc/named.boot   設定本機為名字服務器的配置文件
          /etc/sysconfig/network-scripts/ifcfg-eth0       設置IP
          /etc/resolv.conf         設置DNS    
          /etc/X11     X   Window的配置文件,xorg.conf   或   XF86Config   這兩個   X   Server   的設定檔
          /etc/fstab         記錄開機要mount的文件系統
          /etc/inittab   設定系統啟動時init進程將把系統設置成什么樣的runlevel
          /etc/issue   記錄用戶登錄前顯示的信息
          /etc/group   設定用戶的組名與相關信息
          /etc/passwd   帳號信息
          /etc/shadow   密碼信息
          /etc/sudoers   可以sudo命令的配置文件
          /etc/securetty   設定哪些終端可以讓root登錄
          /etc/login.defs   所有用戶登錄時的缺省配置
          /etc/exports   設定NFS系統用的
          /etc/init.d/       所有服務的預設啟動   script   都是放在這裡的,例如要啟動或者關閉
          /etc/xinetd.d/     這就是所謂的   super   daemon   管理的各項服務的設定檔目錄
          /etc/modprobe.conf       內核模塊額外參數設定
          /etc/syslog.conf       日志設置文件
/home       使用者家目錄
/lib         系統會使用到的函數庫
          /lib/modules       kernel   的相關模塊
          /var/lib/rpm       rpm套件安裝處  
/lost+found         系統不正常產生錯誤時,會將一些遺失的片段放置於此目錄下
/mnt           外設的掛載點
/media       與/mnt類似
/opt           主機額外安裝的軟件
/proc         虛擬目錄,是內存的映射
            /proc/version       內核版本
              /proc/sys/kernel       系統內核功能
/root         系統管理員的家目錄
/sbin         系統管理員才能執行的指令
/srv           一些服務啟動之後,這些服務所需要取用的資料目錄
/tmp           一般使用者或者是正在執行的程序暫時放置檔案的地方
/usr           最大的目錄,存許應用程序和文件
        /usr/X11R6:       X-Window目錄  
        /usr/src:         Linux源代碼
        /usr/include:系統頭文件
        /usr/openwin   存放SUN的OpenWin  
        /usr/man   在線使用手冊
        /usr/bin                       使用者可執行的   binary   file   的目錄
        /usr/local/bin           使用者可執行的   binary   file   的目錄
        /usr/lib                       系統會使用到的函數庫
        /usr/local/lib           系統會使用到的函數庫
        /usr/sbin                     系統管理員才能執行的指令
        /usr/local/sbin         系統管理員才能執行的指令
/var       日志文件
        /var/log/secure         記錄登入系統存取資料的檔案,例如   pop3,   ssh,   telnet,   ftp   等都會記錄在此檔案中
        /var/log/wtmp             記錄登入者的訊息資料,   last
        /var/log/messages     幾乎系統發生的錯誤訊息
        /var/log/boot.log     記錄開機或者是一些服務啟動的時候,所顯示的啟動或關閉訊息
        /var/log/maillog       紀錄郵件存取或往來(   sendmail   與   pop3   )的使用者記錄
        /var/log/cron             記錄   crontab   這個例行性服務的內容
        /var/log/httpd,   /var/log/news,   /var/log/mysqld.log,   /var/log/samba,   /var/log/procmail.log:
        分別是幾個不同的網路服務的記錄檔
  一些常用的基本命令:
uname   -a         查看內核版本              
ls   -al         顯示所有文件的屬性
pwd                   顯示當前路徑                
cd   -         返回上一次目錄           cd   ~         返回主目錄
date   s             設置時間、日期                    
cal             顯示日歷           cal   2006
bc                     計算器具                              
man     &   info           幫助手冊
locale           顯示當前字體           locale   -a         所有可用字體           /etc/sysconfig/i18n設置文件
LANG=en         使用英文字體                        
sync               將數據同步寫入硬盤                
shutdonw   -h   now   &   half   &   poweroff     關機
reboot           重啟                                      
startx     &     init   5       進入圖形介面
/work     &   ?work         向上、下查找文檔內容
chgrp             改變檔案群組     chgrp   testing   install.log        
chown           改變所屬人       chown   root:root   install.log
chmod             改變屬性           chmod   777   install.log           read=4     write=2     execute=1
cp       復制       cp   filename
rm       刪除文件     rm   -rf   filename       強制刪除文件
rmdir       刪除文件夾
mv     移動         mv   123.txt   222.txt     重命名
mkdir           創建文件夾
touch           創建文件     更新當前時間
cat               由第一行開始顯示           cat   |more     分頁
nl                 在內容前加行號
more     &     less       一面一面翻動
head   -n   filename       顯示第N行內容
tail   -n   filename     顯示后N行內容
od                 顯示非純文檔
df   -h   顯示分區空間
du     顯示目錄或文件的大小
fdisk       分區設置         fdisk   -l   /dev/hda     顯示硬盤分區狀態
mkfs         建立各種文件系統     mkfs   -t   ext3     /dev/ram15      
fsck         檢查和修復LINUX檔案
ln             硬鏈接       ln   -s     軟件鏈接
whereis       查找命令
locate         查找
find             查找       find   /   -name   "***.*** "
which           查看工具
whoami         顯示當前用戶
gcc   -v         查看GCC版本
chattr   +i   filename     禁止刪除       chattr   -i   filename     取消禁止
lsattr         顯示隱藏檔屬性
updatedb     更新資料庫
mke2fs         格式化       mkfs   -t   ext3  
dd   if=/etc/passwd   of=/tmp/passwd.bak         備份
mount           列出系統所有的分區
mount   -t   iso9660   /dev/cdrom   /mnt/cdrom       掛載光盤
mount   -t   vfat   /dev/fd0   /mnt/floppy               掛載軟盤
mount   -t   vfat   -o   iocharset=utf8,umask=000   /dev/hda2   /mnt/hda2       掛載fat32分區
mount   -t   ntfs   -o   nls=utf8,umask=000   /dev/hda3   /mnt/hda3                   掛載ntfs分區
Linux-NTFS   Project:   http://linux-ntfs.sourceforge.net/
umount   /mnt/hda3     缷載
ifconfig       顯示或設置網絡設備
service   network   restart       重啟網卡    
ifdown   eth0     關閉網卡
ifup   eth0         開啟網卡
clear         清屏
history         歷史記錄               !55     執行第55個指令
stty       設置終端         stty   -a
fdisk   /mbr       刪除GRUB
at           僅進行一次的工作排程
crontab       循環執行的例行性命令         [e]編輯,[l]顯示,[r]刪除任務
&               后臺運行程序         tar   -zxvf   123.tar.gz   &   ---------> 后臺運行
jobs         觀看后臺暫停的程序       jobs   -l
fg             將后臺程序調到前臺       fg   n   ------> n是數字,可以指定進行那個程序
bg             讓工作在后臺運行
kill         結束進程         kill   -9   PID           [9]強制結束,[15]正常結束,[l]列出可用的kill信號
ps   aux     查看后臺程序      
top           查看后臺程序       top   -d   2         每兩秒更新一次                 top   -d   2   -p10604       觀看某個PID
                top   -b   -n   2   >   /tmp/top.txt   -----> 將   top   的資訊進行   2   次,然後將結果輸出到   /tmp/top.txt        
pstree       以樹狀圖顯示程序         [A]以   ASCII   來連接,   [u]列出PID,   [p]列出帳號
killall       要刪除某個服務         killall   -9   httpd
free             顯示內存狀態           free   -m     --------> 以M為單位顯示
uptime         顯示目前系統開機時間
netstat       顯示網絡狀態         netstat   -tulnp------> 找出目前系統上已在監聽的網路連線及其   PID
dmesg           顯示開機信息         demsg   |   more
nice             設置優先權             nice   -n   -5   vi   &   -----> 用   root   給一個   nice   植為   -5   ,用於執行   vi  
renice         調整已存在優先權
runlevel     顯示目前的runlevel
depmod         分析可載入模塊的相依性
lsmod           顯示已載入系統的模塊
modinfo       顯示kernel模塊的信息
insmod         載入模塊
modprobe       自動處理可載入模塊
rmmod           刪除模塊
chkconfig       檢查,設置系統的各種服務           chkconfig   --list   -----> 列出各項服務狀態
ntsysv           設置系統的各種服務
cpio             備份文件
  壓縮命令:
  *.Z             compress   程式壓縮的檔案;  
  *.bz2         bzip2   程式壓縮的檔案;  
  *.gz           gzip   程式壓縮的檔案;  
  *.tar         tar   程式打包的資料,並沒有壓縮過;  
  *.tar.gz   tar   程式打包的檔案,其中並且經過   gzip   的壓縮
compress   filename     壓縮文件     加[-d]解壓     uncompress
gzip   filename       壓縮     加[-d]解壓     zcat   123.gz   查看壓縮文件內容
bzip2   -z   filename     壓縮     加[-d]解壓       bzcat   filename.bz2     查看壓縮文件內容
tar   -cvf   /home/123.tar   /etc     打包,不壓縮
tar   -xvf   123.tar       解開包
tar   -zxvf   /home/123.tar.gz     以gzip解壓
tar   -jxvf   /home/123.tar.bz2     以bzip2解壓
tar   -ztvf   /tmp/etc.tar.gz       查看tar內容
cpio   -covB     >   [file|device]       份份
cpio   -icduv   <   [file|device]       還原
 
vi一般用法
一般模式                             編輯模式                                     指令模式
h   左                               a,i,r,o,A,I,R,O                           :w   保存
j   下                                 進入編輯模式                                 :w!   強制保存
k   上                                 dd   刪除光標當前行                       :q!   不保存離開
l   右                                 ndd   刪除n行                                   :wq!   保存后離開
0   移動到行首                 yy   復制當前行                                 :e!   還原原始檔
$   移動到行尾                 nyy   復制n行                                     :w   filename   另存為
H   屏幕最上                     p,P   粘貼                                           :set   nu   設置行號
M   屏幕中央                     u     撤消                                             :set   nonu   取消行號
L   屏幕最下                     [Ctrl]+r   重做上一個動作               ZZ   保存離開
G   檔案最后一行             [ctrl]+z   暫停退出                         :set   nohlsearch       永久地關閉高亮顯示
/work   向下搜索                                                                       :sp   同時打開兩個文檔  
?work   向上搜索                                                                       [Ctrl]+w   兩個文檔設換
gg   移動到檔案第一行                                                             :nohlsearch         暫時關閉高亮顯示
 
認識SHELL
alias         顯示當前所有的命令別名             alias   lm= "ls   -al "       命令別名         unalias   lm   取消命令別名
type             類似which
exprot         設置或顯示環境變量
exprot   PATH= "$PATH ":/sbin     添加/sbin入PATH路徑
echo   $PATH         顯示PATH路徑
bash             進入子程序
name=yang           設定變量
unset   name         取消變量
echo   $name         顯示變量的內容
myname= "$name   its   me "       &       myname= '$name   its   me '           單引號時$name失去變量內容
ciw=/etc/sysconfig/network-scripts/           設置路徑
env             列出所有環境變量
echo   $RANDOM         顯示隨意產生的數
set             設置SHELL
PS1= '[\u@\h   \w   \A   #\#]\$   '           提示字元的設定
      [root@linux   ~]#   read   [-pt]   variable           -----------讀取鍵盤輸入的變量
      參數:
      -p     :後面可以接提示字元!
      -t     :後面可以接等待的『秒數!』
declare         聲明   shell   變量
ulimit   -a       顯示所有限制資料
  ls   /tmp/yang   &&   echo   "exist "   ||   echo   "not   exist "
  意思是說,當   ls   /tmp/yang   執行後,若正確,就執行echo   "exist "   ,若有問題,就執行echo   "not   exist "  
  echo   $PATH   |   cut   -d   ': '   -f   5               以:為分隔符,讀取第5段內容
  export   |   cut   -c   10-20             讀取第10到20個字節的內容
  last   |   grep   'root '         搜索有root的一行,加[-v]反向搜索
  cat   /etc/passwd   |   sort         排序顯示
  cat   /etc/passwd   |   wc             顯示『行、字數、字節數』
正規表示法
[root@test   root]#   grep   [-acinv]   '搜尋字串 '   filename
              參數說明:
              -a   :將   binary   檔案以   text   檔案的方式搜尋資料
              -c   :計算找到   '搜尋字串 '   的次數
              -i   :忽略大小寫的不同,所以大小寫視為相同
              -n   :順便輸出行號
              -v   :反向選擇,亦即顯示出沒有   '搜尋字串 '   內容的那一行!
  grep   -n   'the '   123.txt           搜索the字符   -----------搜尋特定字串              
  grep   -n   't[ea]st '   123.txt         搜索test或taste兩個字符---------利用   []   來搜尋集合字元
  grep   -n   '[^g]oo '   123.txt           搜索前面不為g的oo-----------向選擇   [^]  
  grep   -n   '[0-9] '   123.txt     搜索有0-9的數字
  grep   -n   '^the '   123.txt   搜索以the為行首-----------行首搜索^
  grep   -n   '^[^a-zA-Z] '   123.txt     搜索不以英文字母開頭
  grep   -n   '[a-z]$ '   123.txt         搜索以a-z結尾的行----------   行尾搜索$
  grep   -n   'g..d '   123.txt           搜索開頭g結尾d字符----------任意一個字元   .  
  grep   -n   'ooo* '   123.txt           搜索至少有兩個oo的字符---------重複字元   *
sed         文本流編輯器         利用腳本命令來處理文本文件
awd         模式掃描和處理語言
  nl   123.txt   |   sed   '2,5d '       刪除第二到第五行的內容
diff           比較文件的差異
cmp             比較兩個文件是否有差異
patch         修補文件
pr               要打印的文件格式化
  帳號管理
/etc/passwd         系統帳號信息
/etc/shadow         帳號密碼信息         經MD5   32位加密
          在密碼欄前面加『   *   』『   !   』禁止使用某帳號
/etc/group           系統群組信息
/etc/gshadow
newgrp         改變登陸組
useradd     &     adduser         建立新用戶     --------->   useradd   -m   test     自動建立用戶的登入目錄
                    useradd   -m   -g   pgroup   test   ---------> 指定所屬級
/etc/default/useradd       相關設定
/etc/login.defs               UID/GID   有關的設定
passwd         更改密碼   ----------->   passwd   test
usermod       修改用戶帳號
userdel       刪除帳號   -----------> userdel   -r   test
chsh             更換登陸系統時使用的SHELL       [-l]顯示可用的SHELL;[-s]修改自己的SHELL
chfn             改變finger指令顯示的信息
finger         查找并顯示用戶信息
id                 顯示用戶的ID   ----------->     id   test
groupadd       添加組
groupmod       與usermod類似
groupdel       刪除組
su   test         更改用戶       su   -         進入root,且使用root的環境變量
sudo               以其他身份來執行指令
visudo           編輯/etc/sudoers             加入一行『   test   ALL=(ALL)   ALL   』
                      %wheel   ALL   =   (ALL)   ALL                               系統里所有wheel群組的用戶都可用sudo
                      %wheel   ALL   =   (ALL)   NOPASSWD:   ALL           wheel群組所有用戶都不用密碼NOPASSWD
              User_Alias   ADMPW   =   vbird,   dmtsai,   vbird1,   vbird3                   加入ADMPW組
              ADMPW   ALL   =   NOPASSWD:   !/usr/bin/passwd,   /usr/bin/passwd   [A-Za-z]*,   \
              !/usr/bin/passwd   root             可以更改使用者密碼,但不能更改root密碼   (在指令前面加入   !   代表不可)
PAM   (Pluggable   Authentication   Modules,   嵌入式模組)
who   &   w           看誰在線                                          
last                 最近登陸主機的信息
lastlog           最近登入的時間         讀取   /var/log/lastlog  
talk                 與其他用戶交談
write               發送信息         write   test       [ctrl]+d   發送
mesg                 設置終端機的寫入權限         mesg   n   禁止接收           mesg   y  
wall                 向所有用戶發送信息         wall   this   is   q   test
mail                 寫mail      
/etc/default/useradd         家目錄默認設置
quota             顯示磁盤已使用的空間與限制           quota   -guvs   -----> 秀出目前   root   自己的   quota   限制值
                      quota   -vu       查詢
quotacheck       檢查磁盤的使用空間與限制           quotacheck   -avug     -----> 將所有的在   /etc/mtab   內,含有   quota   支援的   partition   進行掃瞄
                          [-m]   強制掃描    
          quota一定要是獨立的分區,要有quota.user和quota.group兩件文件,在/etc/fstab添加一句:
          /dev/hda3   /home   ext3   defaults,usrquota,grpquota   1   2
          chmod   600   quota*                   設置完成,重啟生效
edquota         編輯用戶或群組的quota     [u]用戶,[g]群組,[p]復制,[t]設置寬限期限  
                      edquota   -a   yang               edquota   -p   yang   -u   young   -----> 復制        
quotaon         開啟磁盤空間限制           quotaon   -auvg   --------> 啟動所有的具有   quota   的   filesystem
quotaoff       關閉磁盤空間限制           quotaoff   -a     --------> 關閉了   quota   的限制
repquota   -av           查閱系統內所有的具有   quota   的   filesystem   的限值狀態
Quota   從開始準備   filesystem   的支援到整個設定結束的主要的步驟大概是:
1、設定   partition   的   filesystem   支援   quota   參數:
由於   quota   必須要讓   partition   上面的   filesystem   支援才行,一般來說,   支援度最好的是   ext2/ext3   ,
其他的   filesystem   類型鳥哥我是沒有試過啦!   啟動   filesystem   支援   quota   最簡單就是編輯   /etc/fstab   ,
使得準備要開放的   quota   磁碟可以支援   quota   囉;
2、建立   quota   記錄檔:
剛剛前面講過,整個   quota   進行磁碟限制值記錄的檔案是   aquota.user/aquota.group,  
要建立這兩個檔案就必須要先利用   quotacheck   掃瞄才行喔!
3、編輯   quota   限制值資料:
再來就是使用   edquota   來編輯每個使用者或群組的可使用空間囉;
4、重新掃瞄與啟動   quota   :
設定好   quota   之後,建議可以再進行一次   quotacheck   ,然後再以   quotaon   來啟動吧!

開機流程簡介
1、載入   BIOS   的硬體資訊,並取得第一個開機裝置的代號;  
2、讀取第一個開機裝置的   MBR   的   boot   Loader   (亦即是   lilo,   grub,   spfdisk   等等)   的開機資訊;  
3、載入   Kernel   作業系統核心資訊,   Kernel   開始解壓縮,並且嘗試驅動所有硬體裝置;  
4、Kernel   執行   init   程式並取得   run-level   資訊;  
5、init   執行   /etc/rc.d/rc.sysinit   檔案;  
6、啟動核心的外掛模組   (/etc/modprobe.conf);  
7、init   執行   run-level   的各個批次檔(   Scripts   );  
8、init   執行   /etc/rc.d/rc.local   檔案;  
9、執行   /bin/login   程式,並等待使用者登入;  
10、登入之後開始以   Shell   控管主機。  
在/etc/rc.d/rc3.d內,以S開頭的為開機啟動,以K開頭的為關閉,接著的數字代表執行順序
GRUB   vga設定
彩度\解析度     640x480     800x600     1024x768     1280x1024       bit  
        256                 769             771             773               775             8   bit  
      32768               784             787             790               793           15   bit  
      65536               785             788             791               794           16   bit  
      16.8M               786             789             792               795           32   bit  

./configure         檢查系統信息               ./configure   --help   |   more     幫助信息
make   clean           清除之前留下的文件
make                       編譯
make   install       安裝
rpm   -q     -----> 查詢是否安裝                           rpm   -ql   ------> 查詢該套件所有的目錄
rpm   -qi   -----> 查詢套件的說明資料               rpm   -qc[d]   -----> 設定檔與說明檔
rpm   -ivh     ----> 安裝                                         rpm   -V     --------> 查看套件有否更動過
rpm   -e     ------> 刪除                                         rpm   -Uvh   -------> 升級安裝    
--nodeps   -----> 強行安裝                                 --test   -----> 測試安裝


2008-10-27 17:37 發表評論
]]>
Linux指令篇:檔案目錄管理--locatehttp://m.shnenglu.com/yehongly/archive/2008/10/06/63316.htmlMon, 06 Oct 2008 06:58:00 GMThttp://m.shnenglu.com/yehongly/archive/2008/10/06/63316.htmlhttp://m.shnenglu.com/yehongly/comments/63316.htmlhttp://m.shnenglu.com/yehongly/archive/2008/10/06/63316.html#Feedback0http://m.shnenglu.com/yehongly/comments/commentRss/63316.htmlhttp://m.shnenglu.com/yehongly/services/trackbacks/63316.html
名稱:locate

  使用權限:所有使用者

  使用方式: locate [-q] [-d ] [--database=]

  locate [-r ] [--regexp=]

  locate [-qv] [-o ] [--output=]

  locate [-e ] [-f ] ] [-c]

  locate [-Vh] [--version] [--help]

  說明:

  locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的數據庫,之后當尋找時就只需查詢這個數據庫,而不必實際深入檔案系統之中了。

  在一般的 distribution 之中,數據庫的建立都被放在 contab 中自動執行。一般使用者在使用時只要用

  # locate your_file_name

  的型式就可以了。 參數:

  -u

  -U

  建立數據庫,-u 會由根目錄開始,-U 則可以指定開始的位置。

  -e

  將

  排除在尋找的范圍之外。

  -l

  如果 是 1.則啟動安全模式。在安全模式下,使用者不會看到權限無法看到的檔案。這會始速度減慢,因為 locate 必須至實際的檔案系統中取得檔案的權限資料。

  -f

  將特定的檔案系統排除在外,例如我們沒有到理要把 proc 檔案系統中的檔案放在數據庫中。

  -q

  安靜模式,不會顯示任何錯誤訊息。

  -n

  至多顯示 個輸出。

  -r

  使用正規運算式 做尋找的條件。

  -o

  指定數據庫存的名稱。

  -d

  指定數據庫的路徑

  -h

  顯示輔助訊息

  -v

  顯示更多的訊息

  -V

  顯示程序的版本訊息 范例:

  locate chdrv : 尋找所有叫 chdrv 的檔案

  locate -n 100 a.out : 尋找所有叫 a.out 的檔案,但最多只顯示 100 個

  locate -u : 建立數據庫

locate命令可以在搜尋數據庫時快速找到檔案,數據庫由updatedb程序來更新,updatedb是由cron daemon周期性建立的,locate命令在搜尋數據庫時比由整個由硬盤資料來搜尋資料來得快,但較差勁的是locate所找到的檔案若是最近才建立或 剛更名的,可能會找不到,在內定值中,updatedb每天會跑一次,可以由修改crontab來更新設定值。(etc/crontab)

locate指定用在搜尋符合條件的檔案,它會去儲存檔案與目錄名稱的數據庫內,尋找合乎范本樣式條件的檔案或目錄錄,可以使用特殊字元(如”*”或 ”?”等)來指定范本樣式,如指定范本為kcpa*ner, locate會找出所有起始字串為kcpa且結尾為ner的檔案或目錄,如名稱為kcpartner若目錄錄名稱為kcpa_ner則會列出該目錄下包括 子目錄在內的所有檔案。

  locate指令和find找尋檔案的功能類似,但locate是透過update程序將硬盤中的所有檔案和 目錄資料先建立一個索引數據庫,在執行loacte時直接找該索引,查詢速度會較快,索引數據庫一般是由操作系統管理,但也可以直接下達update強迫 系統立即修改索引數據庫。

  不過第一次在執行update後再使用locate尋找檔案常會失敗,此時就要執行slocate ˉu該命令(也可執行updatedb指令,其效果相同)來更新slocate數據庫,該命令會在/usr/sbin下產生slocate執行檔,再由 locate到此數據庫尋找所要找的資料。

2008-10-06 14:58 發表評論
]]>
進程間通訊的方法 http://m.shnenglu.com/yehongly/archive/2008/07/02/55086.htmlTue, 01 Jul 2008 16:21:00 GMThttp://m.shnenglu.com/yehongly/archive/2008/07/02/55086.htmlhttp://m.shnenglu.com/yehongly/comments/55086.htmlhttp://m.shnenglu.com/yehongly/archive/2008/07/02/55086.html#Feedback0http://m.shnenglu.com/yehongly/comments/commentRss/55086.htmlhttp://m.shnenglu.com/yehongly/services/trackbacks/55086.html進程通常被定義為一個正在運行的程序的實例,它由兩個部分組成:
       一個是操作系統用來管理進程的內核對象。內核對象也是系統用來存放關于進程的統計信息的地方
      另一個是地址空間,它包含所有的可執行模塊或DLL模塊的代碼和數據。它還包含動態分配的空間。如線程堆棧和堆分配空間。每個進程被賦予它自己的虛擬地址空間,當進程中的一個線程正在運行時,該線程可以訪問只屬于它的進程的內存。屬于其它進程的內存則是隱藏的,并不能被正在運行的線程訪問。
   為了能在兩個進程之間進行通訊,由以下幾種方法可供參考:

0。剪貼板Clipboard: 在16位時代常使用的方式,CWnd中提供支持

1。窗口消息 標準的Windows消息以及專用的WM_COPYDATA消息 SENDMESSAGE()接收端必須有一個窗口

2。使用共享內存方式(Shared Memory)
   a.設定一塊共享內存區域          
     HANDLE CreateFileMapping(HANDLE,LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD,  LPCSTR)
     產生一個file-mapping核心對象
     LPVOID MapViewOfFile(
         HANDLE hFileMappingObject,
         DWORD  dwDesiredAcess,
         DWORD  dwFileOffsetHigh,
         DWORD  dwFileOffsetLow,
         DWORD  dwNumberOfBytesToMap
     );
    得到共享內存的指針
   b.找出共享內存
    決定這塊內存要以點對點(peer to peer)的形式呈現
        每個進程都必須有相同的能力,產生共享內存并將它初始化。每個進程
        都應該調用CreateFileMapping(),然后調用GetLastError().如果傳回的
        錯誤代碼是ERROR_ALREADY_EXISTS,那么進程就可以假設這一共享內存區         域已經被別的進程打開并初始化了,否則該進程就可以合理的認為自己 排在第          一位,并接下來將共享內存初始化。
    還是要使用client/server架構中
       只有server進程才應該產生并初始化共享內存。所有的進程都應該使用

HANDLE OpenFileMapping(DWORD dwDesiredAccess,
                                   BOOL bInheritHandle,
                                   LPCTSTR lpName);
        再調用MapViewOfFile(),取得共享內存的指針
   c.同步處理(Mutex)
   d.清理(Cleaning up) BOOL UnmapViewOfFile(LPCVOID lpBaseAddress);
                        CloseHandle()

3。動態數據交換(DDE)通過維護全局分配內存使的應用程序間傳遞成為可能
   其方式是再一塊全局內存中手工放置大量的數據,然后使用窗口消息傳遞內存    指針.這是16位WIN時代使用的方式,因為在WIN32下已經沒有全局和局部內存    了,現在的內存只有一種就是虛存。  

4。消息管道(Message Pipe)
   用于設置應用程序間的一條永久通訊通道,通過該通道可以象自己的應用程序
   訪問一個平面文件一樣讀寫數據。
   匿名管道(Anonymous Pipes)
       單向流動,并且只能夠在同一電腦上的各個進程之間流動。
   命名管道(Named Pipes)
       雙向,跨網絡,任何進程都可以輕易的抓住,放進管道的數據有固定的格        式,而使用ReadFile()只能讀取該大小的倍數。
       可以被使用于I/O Completion Ports

5   郵件槽(Mailslots)
    廣播式通信,在32系統中提供的新方法,可以在不同主機間交換數據,在        WIN9X下只支持郵件槽客戶

6。Windows套接字(Windows Socket)
   它具備消息管道所有的功能,但遵守一套通信標準使的不同操作系統之上的應    用程序之間可以互相通信。

7。Internet通信 它讓應用程序從Internet地址上載或下載文件

8。RPC:遠程過程調用,很少使用,因其與UNIX的RPC不兼容。

9。串行/并行通信(Serial/Parallel Communication)
   它允許應用程序通過串行或并行端口與其他的應用程序通信

10。COM/DCOM
     通過COM系統的代理存根方式進行進程間數據交換,但只能夠表現在對接口     函數的調用時傳送數據,通過DCOM可以在不同主機間傳送數據。



2008-07-02 00:21 發表評論
]]>
UNIX CP命令http://m.shnenglu.com/yehongly/archive/2008/01/02/40222.htmlWed, 02 Jan 2008 03:56:00 GMThttp://m.shnenglu.com/yehongly/archive/2008/01/02/40222.htmlhttp://m.shnenglu.com/yehongly/comments/40222.htmlhttp://m.shnenglu.com/yehongly/archive/2008/01/02/40222.html#Feedback0http://m.shnenglu.com/yehongly/comments/commentRss/40222.htmlhttp://m.shnenglu.com/yehongly/services/trackbacks/40222.html# 重復作兩次動作,由于 /tmp 底下已經存在 bashrc 了,加上 -i 參數,
# 則在覆蓋前會詢問使用者是否確定!可以按下 n 或者 y 呢!
# 但是,反過來說,如果不想要詢問時,則加上 -f 這個參數來強制直接覆蓋!

范例二:將 /var/log/wtmp 復制到 /tmp 底下
[root@linux tmp]# cp /var/log/wtmp . <==想要復制到目前的目錄,最后的 . 不要忘
[root@linux tmp]# ls -l /var/log/wtmp wtmp
-rw-rw-r--  1 root utmp 71808 Jul 18 12:46 /var/log/wtmp
-rw-r--r--  1 root root 71808 Jul 18 21:58 wtmp
# 注意到了嗎?!在不加任何參數的情況下,檔案的所屬者會改變,連權限也跟著改變了~
# 這是個很重要的特性!要注意喔!還有,連檔案建立的時間也不一樣了!
# 如果您想要將檔案的所有特性都一起復制過來,可以加上 -a 喔!
[root@linux tmp]# cp -a /var/log/wtmp wtmp_2
[root@linux tmp]# ls -l /var/log/wtmp wtmp_2
-rw-rw-r--  1 root utmp 71808 Jul 18 12:46 /var/log/wtmp
-rw-rw-r--  1 root utmp 71808 Jul 18 12:46 wtmp_2
# 瞭了吧!整個資料特性完全一模一樣ㄟ!真是不賴~這就是 -a 的特性!

范例三:復制 /etc/ 這個目錄下的所有內容到 /tmp 底下
[root@linux tmp]# cp /etc/ /tmp
cp: omitting directory `/etc'   <== 如果是目錄,不能直接復制,要加上 -r 的參數
[root@linux tmp]# cp -r /etc/ /tmp
# 還是要再次的強調喔! -r 是可以復制目錄,但是,檔案與目錄的權限會被改變~
# 所以,也可以利用 cp -a /etc /tmp 來下達指令喔!

范例四:將范例一復制的 bashrc 建立一個連結檔 (symbolic link)
[root@linux tmp]# ls -l bashrc
-rw-r--r--  1 root root 395 Jul 18 22:08 bashrc
[root@linux tmp]# cp -s bashrc bashrc_slink
[root@linux tmp]# cp -l bashrc bashrc_hlink
[root@linux tmp]# ls -l bashrc*
-rw-r--r--  2 root root 395 Jul 18 22:08 bashrc
-rw-r--r--  2 root root 395 Jul 18 22:08 bashrc_hlink
lrwxrwxrwx  1 root root   6 Jul 18 22:31 bashrc_slink -> bashrc
# 那個 bashrc_slink 是由 -s 的參數造成的,建立的是一個『快捷方式』,
# 所以您會看到在檔案的最右邊,會顯示這個檔案是『連結』到哪里去的!
# 至于那個 bashrc_hlink 有趣了!建立了這個檔案之后, bashrc 與 bashrc_hlink 
# 所有的參數都一樣,只是,第二欄的 link 數改變成為 2 了~而不是原本的 1 喔!
# 這兩種連結的方式的異同,我們會在下一章里面進行介紹的!

范例五:若 ~/.bashrc 比 /tmp/bashrc 新才復制過來
[root@linux tmp]# cp -u ~/.bashrc /tmp/bashrc
# 這個 -u 的特性,是在目標檔案與來源檔案有差異時,才會復制的。
# 所以,比較常被用于『備份』的工作當中喔! ^_^

范例六:將范例四造成的 bashrc_slink 復制成為 bashrc_slink_2
[root@linux tmp]# cp bashrc_slink bashrc_slink_2
[root@linux tmp]# ls -l bashrc_slink*
lrwxrwxrwx  1 root root   6 Jul 18 22:31 bashrc_slink -> bashrc
-rw-r--r--  1 root root 395 Jul 18 22:48 bashrc_slink_2
# 這個例子也是很有趣喔!原本復制的是連結檔,但是卻將連結檔的實際檔案復制過來了
# 也就是說,如果沒有加上任何參數時,復制的是源文件,而非連結文件的屬性!
# 若要復制連結文件的屬性,就得要使用 -d 或者 -a 的參數了!

范例七:將家目錄的 .bashrc 及 .bash_history 復制到 /tmp 底下
[root@linux tmp]# cp ~/.bashrc ~/.bash_history /tmp
# 可以將多個數據一次復制到同一個目錄去!
這個 cp 的功能很多,而由于我們常常在進行一些數據的復制,所以也會常常用到這個指令的。 一般來說,我們如果去復制別人的數據 (當然,該檔案您必須要有 read 的權限才行啊! ^_^) 時, 總是希望復制到的數據最后是我們自己的,所以,在預設的條件中, cp 的來源檔與目的檔的權限是不同的,目的檔的擁有者通常會是指令操作者本身。舉例來說, 上面的范例二中,由于我是 root 的身份,因此復制過來的檔案擁有者與群組就改變成為 root 所有了! 這樣說,可以明白嗎?! ^_^

由于具有這個特性,因此,當我們在進行備份的時候,某些需要特別注意的特殊權限檔案, 例如密碼文件 (/etc/shadow) 以及一些設定檔,就不能直接以 cp 來復制,而必須要加上 -a 或者是 -p 等等可以完整復制檔案權限的參數才行!另外,如果您想要復制檔案給其它的使用者, 也必須要注意到檔案的權限(包含讀、寫、執行以及檔案擁有者等等), 否則,其它人還是無法針對您給予的檔案進行修訂的動作喔!注意注意!

至于上面的范例當中,第四個范例是最有趣的,使用 -l 及 -s 都會建立所謂的連結檔 (link file), 但是這兩種連結檔確有不一樣的展現情況。這是怎么一回事啊? 那個 -l 就是所謂的 hard link ,至于 -s 則是 symbolic link ,鳥哥這里先不介紹, 因為這個涉及 i-node 的相關知識,我們還沒有介紹到,下一章再來討論這個 link 的問題喔! 總之,由于 cp 有種種的檔案屬性與權限的特性,所以,在復制時,您必須要清楚的了解到: 
• 是否需要完整的保留來源檔案的信息? 
• 來源檔案是否為連結檔 (symbolic link file)? 
• 來源檔是否為特殊的檔案,例如 FIFO, socket 等? 
• 來源文件是否為目錄?



2008-01-02 11:56 發表評論
]]>
久久无码国产专区精品| 久久性精品| 国产精品9999久久久久| 国产精品久久成人影院| 国产亚洲精久久久久久无码AV| 久久99精品久久久久久野外| 久久婷婷是五月综合色狠狠| av无码久久久久久不卡网站| 日韩精品国产自在久久现线拍| 亚洲а∨天堂久久精品9966| 99久久无码一区人妻a黑| 伊人久久成人成综合网222| 99久久免费国产特黄| 无码任你躁久久久久久老妇App| 国产亚洲欧美成人久久片| 久久精品国产精品亚洲精品| 青青草原1769久久免费播放| 久久精品国产AV一区二区三区| 久久精品国产精品亚洲| 久久久久免费精品国产| 99久久精品国产一区二区 | 久久综合亚洲色一区二区三区| 丰满少妇人妻久久久久久| 模特私拍国产精品久久| 国产亚洲精午夜久久久久久| 久久99热精品| 99久久精品国产麻豆| 久久综合精品国产二区无码| 成人久久免费网站| 三级三级久久三级久久| 久久99这里只有精品国产| 久久精品女人天堂AV麻| 国产高潮国产高潮久久久91| 999久久久无码国产精品| 久久w5ww成w人免费| 999久久久无码国产精品| 91久久精一区二区三区大全| 久久国产精品99国产精| 欧美亚洲另类久久综合| 久久久精品国产亚洲成人满18免费网站| 国产欧美久久久精品|