2016年11月2日 星期三
Linux 檔案類型(*.bat, *.exe...)
Linux檔案中的『副檔名』,對系統的識別檔案類型,並沒有任何意義。頂多只是讓使用者方便知道它是什麼類型。
實際上檔案的類型,請打指令 ls -l後,所顯示出來的第一欄(十個字元)的第一個字元,即為檔案的類型,即檔案屬性,例:-rwxrwxrwx,。
檔案屬性:
-:正規檔案 ,可能為"純文字檔(ASCII)"、"二進位檔(binary)"、"資料格式檔(data)"。
d:目錄 ,目錄。
l :連結檔 ,似Windows的捷徑。
b:區塊設備檔,例如:硬碟、軟碟。
c:字元設備檔,例如:鍵盤、滑鼠。
s:資料接口檔,檔案通常被用在網路上的資料承接。
p:資料輸送檔,FIFO是一種特殊的檔案類型,主要在解決多個程序同時存取一個檔案所造成的錯誤問題。
如果是執行檔,如何執行檔案呢?console模式下,執行:"./程式名",即可。
Linux 基本指令
pwd: (Print Working Directory) - 顯示目前所在目錄
ls: (List information about file(s)) - 顯示檔案名稱與內容
ls -a 顯示隱藏檔 (以"."開頭的檔案)
ls -al -a + -l
ls -al|more 將檔案內容以一頁一頁顯示
ls --color 以彩色顯示檔案資料
ls -d 僅列出目錄
ls -h 檔案容量以人類較易讀的方式(例如 GB, KB 等等)列出來;
ls -l 詳細列出檔案系統結構
ls -r 連同子目錄內容一起列出來
ls -S 以檔案容量大小排序,而不是用檔名排序
ls -t 依時間排序,而不是用檔名
cd: (Change Directory) - 變換工作路徑
cd .. 回到上一層(.. 上一層), (. 目前目錄)
cd 回到使用者目錄
cd /usr/bin 到/usr/bin這個目錄(絕對路徑)
cd .. /usr/bin 到上一層/usr/bin這個目錄(相對路徑)
cd usr/bin 到usr/bin這個目錄(相對路徑)
cat: (Concatenate files and print on the standard output) - 顯示檔案內容
mkdir: (Create new folder(s)) - 建立新資料夾
rmdir: (Remove folder(s)) - 移除資料夾
rm: (Remove files) - 刪除檔案
rm -irf 目錄下的東西都一起刪除
mv: (Move or rename files or directories) - 移動檔案或目錄
cp: (Copy one or more files to another location) - 複製檔案或目錄
ln: (Make links between files) - 把某個檔案(資料夾)內容連結到某個檔案(資料夾)
ln -s 來源檔(資料夾) 目的檔(資料夾)
此時目的檔(資料夾),可以看到來源檔(資料夾)裡面的內容
chmod: (change mode) - 改變檔案的屬性、 SUID 、等等的特性
chown: (change owner) - 改變檔案所屬人
chgrp: (change group) - 改變檔案所屬群組
參考路徑:
http://www.mediacollege.com/linux/command/linux-command.html
http://linux.vbird.org/linux_basic/redhat6.1/linux_06command.php
2016年11月1日 星期二
hello world(gcc) - (console)(Ubuntu 16.04.1)
Install:
1. 安裝gcc
sudo apt-get install g++
2. 安裝基本library
sudo apt-get install build-essential
撰寫第一個Hello world程式:
1. 開啟編輯器,順便開檔案
command 模式下->/usr/bin/vi hello_world.c
2. 把下面內容打入(vi 編輯器使用方式,請上往查詢)
#include<stdio.h>
int main()
{
printf("%s", "Hellow World!!!\n");
}
3. build code
command 模式下->gcc hello_world.c -o hello_world
4. 執行程式
./hello_world
1. 安裝gcc
sudo apt-get install g++
2. 安裝基本library
sudo apt-get install build-essential
撰寫第一個Hello world程式:
1. 開啟編輯器,順便開檔案
command 模式下->/usr/bin/vi hello_world.c
2. 把下面內容打入(vi 編輯器使用方式,請上往查詢)
#include<stdio.h>
int main()
{
printf("%s", "Hellow World!!!\n");
}
3. build code
command 模式下->gcc hello_world.c -o hello_world
4. 執行程式
./hello_world
2016年10月31日 星期一
PCMan X(Ubuntu 16.04.1)
1. Enter command window(Ctrl + Alt + t)
2. sudo apt-get install pcmanx-gtk2
中文字會有重疊問題: View --> Non-ASCII Font --> AR PL UKai TW
注音輸入法(Ubuntu 16.04.1)
1. Enter command window(Ctrl + Alt + t)
2. sudo apt-get install ibus-chewing
3. ibus restart
4. 點輸入法 --> [Text Entry Settings] --> [+] --> [選擇Chinese (Chewing)]
Win + 空白 --> 切換字型
Linux 資料夾介紹
/:
根目錄
/bin:User Binaries
執行檔的存放路徑,個人或所有人所使用的執行檔,都可能放在此路徑。
/boot:Boot Loader Files
系統一開始的所需的檔案,包含:Kernel initrd, vmlinux, grub files(開機選單)。
/dev:Device Files
存放此系統存在的裝置內容(例:terminal devices, usb, or any device attached to the system.)。
/etc:Configuration Files
拿來存放程式的一些設定檔(configuration)或者一些Script檔。
/home:Home Directories
所有使用者的家目錄,例:/home/john, /home/nikita。
/lib:System Libraries
存放/bin and /sbin所需要的含式庫,附檔名通常為:ld* or lib*.so.*。Ubuntu 的 64bit 的版本時,還會出現 lib32 和 lib64 二個資料夾。
/media:Removable Media Devices
暫時掛載可移除裝置的目錄。
例:/media/cdrom for CD-ROM
/media/floppy for floppy drives
/media/cdrecorder for CD writer
/mnt:Mount Directory
暫時掛載某些額外的裝置的目錄。(系統管理者才有權限)
/opt:Optional add-on Applications
給第三方(individual vendors)協力軟體放置的目錄。
/proc:Process Information
存放系統正在執行的Process資訊。此為虛擬的檔案系統,包含正在執行的Process(/proc/{pid})與一些資源訊息(/proc/uptime),等資訊。
/root:
root帳號的home,只有root有存取權。
/sbin:System Binaries
跟/bin一樣,都是拿來存放執行檔,裡面存放的檔案通常給系統管理者(super user) or root使用者使用,目的是拿來管理系統用。
/srv:Service Data
一些Service啟動之後,所需要取用的資料目錄。
例:/srv/cvs -->CVS service所需要的相關資料
/srv/www/
/tmp:Temporary Files
存放系統跟使用者的暫存檔,重開機會清掉
/usr:User Programs
使用者所存放的一些資料,含執行檔(binaries),函式庫(libraries),文件檔(documentation),原始程式碼(source-code),等。
/usr/bin 使用者的xxx
當/bin裡找不到,可到/usr/bin裡找。
/usr/sbin 使用者的xxx
當/sbin裡找不到,可到/usr/sbin裡找。
/usr/lib 使用者的xxx
當/lib裡找不到,可到/usr/lib裡找。
/usr/local 使用者的xxx
通常自己編譯和安裝的程式會被放到這個資料夾。例:裝apache(透過原始碼),會放在/usr/local/apache2
xxx請參考跟目錄下同資料夾名稱的說明
/var:Variable Files
存放系統上的動態資料,如:Log files(/var/log)、database files、emails (/var/mail); print queues (/var/spool); lock files (/var/lock); temp files needed across reboots (/var/tmp)。
參考資料:
http://www.thegeekstuff.com/2010/09/linux-file-system-structure/?utm_source=tuicool
http://www.arthurtoday.com/2012/12/ubuntu-file-system-tree-directories.html
http://linux.vbird.org/linux_basic/0210filepermission.php
根目錄
/bin:User Binaries
執行檔的存放路徑,個人或所有人所使用的執行檔,都可能放在此路徑。
/boot:Boot Loader Files
系統一開始的所需的檔案,包含:Kernel initrd, vmlinux, grub files(開機選單)。
/dev:Device Files
存放此系統存在的裝置內容(例:terminal devices, usb, or any device attached to the system.)。
/etc:Configuration Files
拿來存放程式的一些設定檔(configuration)或者一些Script檔。
/home:Home Directories
所有使用者的家目錄,例:/home/john, /home/nikita。
/lib:System Libraries
存放/bin and /sbin所需要的含式庫,附檔名通常為:ld* or lib*.so.*。Ubuntu 的 64bit 的版本時,還會出現 lib32 和 lib64 二個資料夾。
/media:Removable Media Devices
暫時掛載可移除裝置的目錄。
例:/media/cdrom for CD-ROM
/media/floppy for floppy drives
/media/cdrecorder for CD writer
/mnt:Mount Directory
暫時掛載某些額外的裝置的目錄。(系統管理者才有權限)
/opt:Optional add-on Applications
給第三方(individual vendors)協力軟體放置的目錄。
/proc:Process Information
存放系統正在執行的Process資訊。此為虛擬的檔案系統,包含正在執行的Process(/proc/{pid})與一些資源訊息(/proc/uptime),等資訊。
/root:
root帳號的home,只有root有存取權。
/sbin:System Binaries
跟/bin一樣,都是拿來存放執行檔,裡面存放的檔案通常給系統管理者(super user) or root使用者使用,目的是拿來管理系統用。
/srv:Service Data
一些Service啟動之後,所需要取用的資料目錄。
例:/srv/cvs -->CVS service所需要的相關資料
/srv/www/
/tmp:Temporary Files
存放系統跟使用者的暫存檔,重開機會清掉
/usr:User Programs
使用者所存放的一些資料,含執行檔(binaries),函式庫(libraries),文件檔(documentation),原始程式碼(source-code),等。
/usr/bin 使用者的xxx
當/bin裡找不到,可到/usr/bin裡找。
/usr/sbin 使用者的xxx
當/sbin裡找不到,可到/usr/sbin裡找。
/usr/lib 使用者的xxx
當/lib裡找不到,可到/usr/lib裡找。
/usr/local 使用者的xxx
通常自己編譯和安裝的程式會被放到這個資料夾。例:裝apache(透過原始碼),會放在/usr/local/apache2
xxx請參考跟目錄下同資料夾名稱的說明
/var:Variable Files
存放系統上的動態資料,如:Log files(/var/log)、database files、emails (/var/mail); print queues (/var/spool); lock files (/var/lock); temp files needed across reboots (/var/tmp)。
參考資料:
http://www.thegeekstuff.com/2010/09/linux-file-system-structure/?utm_source=tuicool
http://www.arthurtoday.com/2012/12/ubuntu-file-system-tree-directories.html
http://linux.vbird.org/linux_basic/0210filepermission.php
Linux 軟體安裝(封裝軟體)格式 - apt, dpkg, rpm, yum
apt指令(Advanced Packaging Tool):
源出自 Debian Linux,而Ubuntu、FreeBSD、SUSE 也支援此方式。安裝包內包含相容性檢查。
支援安裝、升級、更新。
dpkg指令(Debian Package):
一樣源出自 Debian Linux,而Ubuntu、FreeBSD、SUSE 也支援此方式。
P.S. dpkg是Debian底層的套件管理程式,其上還有強大的apt,在其上更有非常強大的aptitude管理系統。
YUM指令(Yellowdog Updater, Modified):
Red Hat 所發展的線上更新方式,可自動更新, Red Hat 相關的 Linux,都支援此種方式,例如 : RedHat、Fedora Core、CentOS 都支援此方式更新。
克服RPM 屬性相依的問題。
RPM指令(RedHat Package Managmer):
Red Hat 所發展的封裝方式,多半是 Red Hat 公司出的 Linux 居多,所以 Red Hat 相關的 Linux,都支援此種方式,例如 : RedHat、Fedora Core、CentOS。
支援安裝、升級、更新。
up2date指令(又被稱作Red Hat Update Agent):
這是一個由較舊版本的Red Hat Enterprise Linux、CentOS及Fedora Core所使用。
tarball指令:
內容為Linux的壓縮檔(*.tgz、*.tar.gz、*.gz、*.tbz、*.bz2), 為最原始的檔案,可能包含:原始程式碼檔案、偵測程式檔案 (可能是 configure 或 config 等檔名)、本軟體的簡易說明與安裝說明 (INSTALL 或 README),需檢視install跟readme,來自行安裝,流程較複雜,更新也需手動更新。
源出自 Debian Linux,而Ubuntu、FreeBSD、SUSE 也支援此方式。安裝包內包含相容性檢查。
支援安裝、升級、更新。
dpkg指令(Debian Package):
一樣源出自 Debian Linux,而Ubuntu、FreeBSD、SUSE 也支援此方式。
P.S. dpkg是Debian底層的套件管理程式,其上還有強大的apt,在其上更有非常強大的aptitude管理系統。
YUM指令(Yellowdog Updater, Modified):
Red Hat 所發展的線上更新方式,可自動更新, Red Hat 相關的 Linux,都支援此種方式,例如 : RedHat、Fedora Core、CentOS 都支援此方式更新。
克服RPM 屬性相依的問題。
RPM指令(RedHat Package Managmer):
Red Hat 所發展的封裝方式,多半是 Red Hat 公司出的 Linux 居多,所以 Red Hat 相關的 Linux,都支援此種方式,例如 : RedHat、Fedora Core、CentOS。
支援安裝、升級、更新。
up2date指令(又被稱作Red Hat Update Agent):
這是一個由較舊版本的Red Hat Enterprise Linux、CentOS及Fedora Core所使用。
tarball指令:
內容為Linux的壓縮檔(*.tgz、*.tar.gz、*.gz、*.tbz、*.bz2), 為最原始的檔案,可能包含:原始程式碼檔案、偵測程式檔案 (可能是 configure 或 config 等檔名)、本軟體的簡易說明與安裝說明 (INSTALL 或 README),需檢視install跟readme,來自行安裝,流程較複雜,更新也需手動更新。
訂閱:
文章 (Atom)