1. 程式人生 > >windows下執行.sh指令碼

windows下執行.sh指令碼

現在開發專案遇到一個問題,mac系統和windows下開發,對於mac下的sh指令碼,想要在windows下也能正常執行,通過了解,安裝cygwin,Cygwin是一個在windows平臺上執行的類UNIX模擬環境

基本操作命令: ls #以預設方式顯示當前目錄檔案列表 ls –a #顯示所有檔案包括隱藏檔案 ls –l #顯示檔案屬性,包括大小,日期,符號連線,是否可讀寫及是否可執行

ls --color=never *.so > obj #不顯示文字顏色,將所有so檔案記錄到obj檔案中

---------------------------------------------------------------------- cd dir #切換到當前目錄下的dir目錄 cd / #切換到根目錄 cd .. #切換到到上一級目錄 cd ../.. #切換到上二級目錄 cd ~ #切換到使用者目錄,比如是root使用者,則切換到/root下

----------------------------------------------------------------------  rm file #刪除某一個檔案 rm -fr dir #刪除當前目錄下叫dir的整個目錄

----------------------------------------------------------------------  cp source target #將檔案source 複製為 target cp /root/source . #將/root下的檔案source複製到當前目錄 cp –av soure_dir target_dir #將整個目錄複製,兩目錄完全一樣 cp –fr source_dir target_dir #將整個目錄複製,並且是以非連結方式複製,當source目錄帶有符號連結時,兩個目錄不相同

----------------------------------------------------------------------  mv source target #將檔案source更名為target

----------------------------------------------------------------------  diff dir1 dir2 #比較目錄1與目錄2的檔案列表是否相同,但不比較檔案的實際內容,不同則列出 diff file1 file2 #比較檔案1與檔案2的內容是否相同,如果是文字格式的檔案,則將不相同的內容顯示,如果是二進位制程式碼則只表示兩個檔案是不同的 comm file1 file2 #比較檔案,顯示兩個檔案不相同的內容

----------------------------------------------------------------------  echo message #顯示一串字元 echo "message message2" #顯示不連續的字串 cat: cat file #顯示檔案的內容,和DOS的type相同 cat file | more #顯示檔案的內容並傳輸到more程式實現分頁顯示,使用命令less file可實現相同的功能 more #分頁命令,一般通過管道將內容傳給它,如ls | more

----------------------------------------------------------------------  export LC_ALL=zh_CN.GB2312 #將環境變數LC_ALL的值設為zh_CN.GB2312 export DISPLAY=0:0 #通過該設定,當前字元終端下執行的圖形程式可直接運行於Xserver date #顯示當前日期時間 date -s 20:30:30 #設定系統時間為20:30:30 date -s 2002-3-5 #設定系統時期為2003-3-5 clock –r #對系統Bios中讀取時間引數 clock –w #將系統時間(如由date設定的時間)寫入Bios

----------------------------------------------------------------------  eject #umout掉CDROM並將光碟彈出,但cdrom不能處於busy的狀態,否則無效

----------------------------------------------------------------------  du #計算當前目錄的容量 du -sm /root #計算/root目錄的容量並以M為單位 find -name /path file #在/path目錄下查詢看是否有檔案file grep -ir “chars” #在當前目錄的所有檔案查詢字串chars,並忽略大小寫,-i為大小寫,-r為下一級目錄

----------------------------------------------------------------------  vi file #編輯檔案file vi 原基本使用及命令:  輸入命令的方式為先按ctrl+c, 然後輸入:x(退出),:x!(退出並儲存) :w(寫入檔案),:w!(不詢問方式寫入檔案), :r file(讀檔案file) ,:%s/oldchars/newchars/g(將所有字串oldchars換成newchars) 這一類的命令進行操作

----------------------------------------------------------------------  man ls #讀取關於ls命令的幫助 man ls | grep color #讀取關於ls命令的幫助並通過grep程式在其中查詢color字串

----------------------------------------------------------------------  startx #執行Linux圖形有環境 Xfree86 #只執行X圖形server

----------------------------------------------------------------------  reboot #重新啟動計算機 halt #關閉計算機 init 0 #關閉所有應用程式和服務,進入純淨的操作環境 init 1 #重新啟動應用及服務 init 6 #重新啟動計算機

----------------------------------------------------------------------  擴充套件命令 ----------------------------------------------------------------------  ----------------------------------------------------------------------  tar xfzv file.tgz #將檔案file.tgz解壓 tar xfzv file.tgz -C target_path #將檔案file.tgz解壓到target_path目錄下 tar cfzv file.tgz source_path #將檔案source_path壓縮為file.tgz tar c directory > directory.tar #將目錄directory打包成不壓縮的directory.tar gzip directory.tar #將覆蓋原檔案生成壓縮的 directory.tar.gz gunzip directory.tar.gz #覆蓋原檔案解壓生成不壓縮的 directory.tar。 tar xf directory.tar #可將不壓縮的檔案解包

----------------------------------------------------------------------  dmesg #顯示kernle啟動及驅動裝載資訊 uname #顯示作業系統的型別 uname -R #顯示作業系統核心的version

----------------------------------------------------------------------  strings file 顯示file檔案中的ASCII字元內容

----------------------------------------------------------------------  rpm -ihv program.rpm #安裝程式program並顯示安裝程序 rpm2targz program.rpm program.tgz #將rpm格式的檔案轉換成tarball格式

----------------------------------------------------------------------  su root #切換到超級使用者 sulogin /dev/tty4 #在tty4即alt+F4終端等待使用者登陸或直接登陸開啟一個shell chmod a+x file #將file檔案設定為可執行,指令碼類檔案一定要這樣設定一個,否則得用bash file才能執行 chmod 666 file #將檔案file設定為可讀寫 chown user /dir #將/dir目錄設定為user所有

----------------------------------------------------------------------  mknod /dev/hda1 b 3 1 #建立塊裝置hda1,主裝置號為3,從裝置號為1,即master硬碟的的第一個分割槽 mknod /dev/tty1 c 4 1 #建立字元裝置tty1,主裝置號為4,眾裝置號為1,即第一個tty終端

----------------------------------------------------------------------  touch /tmp/running #在/tmp下建立一個臨時檔案running,重新啟動後消失

----------------------------------------------------------------------  sleep 9 #系統掛起9秒鐘的時間

----------------------------------------------------------------------  lpd stop 或 cups stop #停止列印服務程式 lpd start 或 cups start #啟動列印服務程式 lpd restart 或 cups restart #重新啟動列印服務程式 lpr file.txt #列印檔案file.txt

----------------------------------------------------------------------  fdisk /dev/hda #就像執行了dos的fdisk一樣 cfdisk /dev/hda #比fdisk介面稍為友好些 mount -t ext2 /dev/hda1 /mnt #把/dev/hda1裝載到 /mnt目錄 df #顯示檔案系統裝載的相關資訊  mount -t iso9660 /dev/cdrom /mnt/cdrom #將光碟機載入到/mnt/cdrom目錄 mount-t smb //192.168.1.5/sharedir /mnt -o username=tomlinux,password=tomlinux #將windows的的共享目錄載入到/mnt/smb目錄,使用者名稱及密碼均為tomlinux mount -t nfs 192.168.1.1:/sharedir /mnt #將nfs服務的共享目錄sharedir載入到/mnt/nfs目錄 umount /mnt #將/mnt目錄解除安裝,/mnt目錄必須處於空閒狀態 umount /dev/hda1 #將/dev/hda1裝置解除安裝,裝置必須處於空親狀態 sync #將cache中的內容與磁碟同步,在Linux中複製檔案,一般要系統空閒才去寫檔案 e2fsck /dev/hda1 #檢查/dev/hda1是否有檔案系統錯誤,提示修復方式 e2fsck -p /dev/hda1#檢查/dev/hda1是否有錯誤,如果有則自動修復 e2fsck -y /dev/hda1#檢查錯誤,所有提問均於yes方式執行 e2fsck -c /dev/hda1#檢查磁碟是否有壞區 mkfs /dev/hda1 #格式化/dev/hda1為ext2格式 mkfs.minix /dev/hda1 #格式化/dev/hda1為minix格式檔案系統 mfks /dev/hda9 #格工化/dev/hda9為Linux swap格式 swapon /dev/hda9 #將swap分割槽裝載當作記憶體來用 swapoff /dev/hda9 #將swap分割槽解除安裝

----------------------------------------------------------------------  lilo #執行lilo程式,程式自動查詢/etc/lilo.conf並按該配置生效 lilo -C /root/lilo.conf #lilo程式按/root/lilo.conf配置生效 grub #在Linux shell狀態下執行boot loader設定程式 grub-install #安裝grub磁碟載入程式,成功後升級核心無須像lilo一樣要重新啟動系統,只需修改/etc/grub.conf即可實現新引導配置 rdev bzImage #顯示kernel的根分割槽資訊 rdev bzImage /dev/hda1 #將kernel的根分割槽設定為/dev/hda1,這在沒有lilo等載入程式的系統中非常重要.

----------------------------------------------------------------------  dd if=/dev/fd0 of=floppy.fd #將軟盤的內容複製成一個映象,功能與舊石器時代常用的hd-copy相同 dd if=/dev/zero of=root.ram bs=1024,count=1024 #生成一個大小為1M的塊裝置,可以把它當作硬碟的一個分割槽來用 mkfs root.ram #將塊裝置格式化為ext2格式 dd if=root.ram of=/dev/ram0 #將init.rd格式的root.ram的內容匯入記憶體 mount /dev/ram0 /mnt #ramdisk /dev/ram0裝載到/mnt 目錄

----------------------------------------------------------------------  gcc hello.c #將hello.c編譯成名為a.out二進位制執行檔案 gcc hello.c -o hello #將hello.c編譯成名為hello的二進位制執行檔案 gcc -static -o hello hello.c #將hello.c編譯成名為hello的二進位制靜態執行檔案 ldd program #顯示程式所使用了哪些庫 objcopy -S program #將程式中的符號表及無用的除錯資訊去掉,可以小很多

----------------------------------------------------------------------  strace netscape #跟蹤程式netscape的執行,看呼叫的庫,環境變數設定,配置檔案,使用的裝置,呼叫的其它應用程式等,在strace下,程式幹了什麼東東一目瞭然。 ps #顯示當前系統程序資訊 ps –ef #顯示系統所有程序資訊 kill -9 500 #將程序編號為500的程式幹掉 killall -9 netscape #將所有名字為netscape的程式殺死,kill不是萬能的,對僵死的程式則無效。 top #顯示系統程序的活動情況,按佔CPU資源百分比來分 free #顯示系統記憶體及swap使用情況 time program #在program程式結束後,將計算出program執行所使用的時間

----------------------------------------------------------------------  chroot . #將根目錄切換至當前目錄,除錯新系統時使用 chroot /tomlinux #將根目錄切換至/tomlinux目錄 chroot /tomlinux sbin/init #將根目錄切換至/tomlinux並執行sbin/init adduser id #增加一個叫id的使用者 userdel id #增除叫id的使用者 userlist #顯示已登陸的使用者列表 passwd id #修改使用者id的密碼 passwd -d root #將root使用者的密碼刪除 chown id /work #指定/work目錄為id使用者所擁有

----------------------------------------------------------------------  ifconfig eth0 192.168.1.1 netmask 255.255.255.0 #設定網絡卡1的地址192.168.1.1,掩碼為255.255.255.0,不寫netmask引數則預設為255.255.255.0 ifconfig eth0:1 192.168.1.2 #捆綁網絡卡1的第二個地址為192.168.1.2 ifconfig eth0:x 192.168.1.x #捆綁網絡卡1的第二個地址為192.168.1.x ifconfig down eth1 #關閉第二塊網絡卡,使其停止工作 hostname -F tomlinux.com #將主機名設定為tomlinux.com route #顯示當前路由設定情況 route add default gw 192.168.1.1 metric 1 #設定192.168.1.1為預設的路由 route del default #將預設的路由刪除 dhcp #啟動dhcp服務 dhclient #啟動dhcp終端並自動獲取IP地址 ping 163.com #測試與163.com的連線 ping 202.96.128.68 #測試與IP 202。96.128.68的連線

----------------------------------------------------------------------  probe rtl8139 #檢查驅動程式rtl8139.o是否正常工作 lsmod #顯示已裝載的驅動程式 insmod rtl8139.o #裝載驅動程式rtl8139.o insmod sb.o io=0x280 irq=7 dma=3 dma16=7 mpu_io=330 #裝載驅動程式並設定相關的irq,dma引數 rmmod rtl8139 #刪除名為rtl8139的驅動模組 gpm -k #停止字元狀態下的mouse服務 gpm -t ps2 #在字元狀態下以ps2型別啟動mouse的服務

----------------------------------------------------------------------  telnet 192.168.1.1 #登陸IP為192.168.1.1的telnet伺服器 telnet iserver.com #登陸域名為iserver.com的telnet伺服器 ftp 192.168.1.1 或 ftp iserver.com #登陸到ftp服務

Linux開發中的常用命令(cygwin環境也同樣適用)