發表文章

目前顯示的是有「ubuntu」標籤的文章

Kotlin 與 Swift 語法對照:跨平台開發者 (2025年)

Kotlin 與 Swift 語法對照表(2025 年版) 在行動應用開發中, Kotlin 與 Swift 分別是 Android 與 iOS 的主流語言。雖然語法有些差異,但其實它們有很多相似之處。本文整理了常用的語法對照表,方便跨平台開發者快速上手。 1. 變數宣告 // Kotlin val name: String = "Alice" // 常數 var age: Int = 25 // 可變數 // Swift let name: String = "Alice" // 常數 var age: Int = 25 // 可變數 2. 條件判斷 // Kotlin if (age >= 18) { println("Adult") } else { println("Minor") } // Swift if age >= 18 { print("Adult") } else { print("Minor") } 3. 函式定義 // Kotlin fun greet(name: String): String { return "Hello, $name!" } // Swift func greet(_ name: String) -> String { return "Hello, \(name)!" } 4. 陣列與迴圈 // Kotlin val fruits = listOf("Apple", "Banana", "Cherry") for (fruit in fruits) { println(fruit) } // Swift let fruits = ["Apple", "Banana", "Cherry"] for fruit in fruits { print(f...

[Linux] A Unix process: init

markdown 簡單而言,init是Linux系統開機的過程會先執行的行程(process) 它會去產生其他所有行程,而該行程的PID為1 行程號(PID, process identifier) 是OS用來標識唯一行程的代號 函式呼叫某個行程時,會以PID作為參數 除了PID0(PID為0的行程)以外的所有行程,都是由其他行程使用系統呼叫 fork() 函式建立 原行程為 父行程(Parent Process) ,建立的行程稱為 子行程(Child Process) 一個父行程可以有多個子行程,但一個子行程只會有一個父行程 Linux系統開機時,會先載入Linux內核 而後Linux內核會載入init,再由init完成其餘的開機過程 Linux系統的PID0是系統開機時建立的特殊行程 它會呼叫fork()函式建立PID1(也就是init),再由PID1去呼叫各式行程執行其他動作 PID0是PID1的Parent Process,PID1則是其他所有行程的Parent Process 大部分的系統PID1都是init,其他則不盡相同 在init中,定義了幾種不同的執行模式,或稱執行級別(Runlevel) 各家系統的執行模式 可能有所不同 但其中0、1(或稱S、s)、6會是一樣的,被稱作Standard Runlevels  模式(Runlevel)   說明    0   關機(halt)    1(S or s)   單使用者(Single-user mode)   2   多使用者、無網路(Multi-user without networking)   3   多使用者、有網路(Multi-user with networking)   4   未使用、使用者自定 (Not used/User-definable)   5   多使用者、圖形介面 (Multi-user mode, with GUI)    6   重新啟動 (Reboot)  系統登入後,也可以透過init指令改變執行模式 如欲重新開機可以...

[Linux] About LSB: Linux Standard Base(Linux標準規範)

圖片
Linux is an Open Source Operating System(作業系統) 所以任何人都可以自由使用底層原始碼 修改成符合自身需求的版本並發布 負責維護的Linux基金會建立了一套規範 稱作  Linux標準規範(LSB, Linux Standard Base) 目標是定義各家散布版本(Distribution)之間的共通性 This mark assures developers and end-users that any "LSB Certified" application will work correctly on every "LSB Certified" distribution  ( 來源 ) 對此,我們也可以透過此規範定義的指令 觀察到當前OS的Linux種類與版本: $ lsb_release -a 有些OS安裝時就已經包含此套件(如 ubuntu ),有些則要另外安裝 像是 CentOS,我剛安裝 CentOS7 時輸入,會出現  command not found 此時,可以輸入 $ yum provides lsb_release 會發現其包含在  redhat-lsb-core  下 於是,只要安裝該套件後,應該就能使用了 $ sudo yum install redhat-lsb-core 安裝完成後,輸入 $ lsb_release -a 畫面如下: 而Ubuntu 14.04LTS 畫面如下: 參考資料: Linux標準規範 - 維基百科 Linux基金會 - 維基百科 Certification - The Linux Foundation Linux lsb_release 指令,版本、種類的查詢(Linux Standard Base) | 香港矽谷 How to fix lsb_release command not found on CentOS 7.3 |Tutoral and Full Version Software

[Ubuntu] 相關文章整理

Ubuntu知識 [Ubuntu] 發行版本與代號一覽 [Linux] About LSB [Linux] A Unix process: init 一般環境 [Ubuntu] 14.04LTS 將主要目錄改成英文 [Ubuntu] 關閉畫面自動鎖定 Terminal [Ubuntu] Terminal 複製貼上的方法

[Ubuntu] 發行版本與代號一覽

最近使用 Ubuntu,一直注意到有不同的版本差異 甚至看過 Ubuntu Trusty 版本,心想這什麼東西... 因此花了時間查一下wiki 才發現每個版本號之間原來有這樣的關係 連對應的代號都可以這麼有趣~

[Ubuntu] 14.04LTS 將主要目錄改成英文

圖片
如果一開始安裝Ubuntu 選擇中文語系 會發現有時要打指令會卡在目錄名稱是中文(如:桌面, 下載...) 因此還要切換輸入法,不是那麼方便 (相對而言,在CLI不被重視的Windows系統下,這些目錄雖然我們看到是中文名字,像是桌面,不過這些是用虛擬的命名方式,因此在CMD下又必須用本來的英文名稱才可以呼叫到,桌面就是 Desktop/ )

【Ubuntu】Terminal 複製貼上的方法 Copy & Paste

Ctrl C + Ctrl V 能使用嗎? 有常常透過Ubuntu在指令海裡摸索的一定不陌生 在Terminal裡我們不能用Ctrl C + Ctrl V來進行複製貼上的作業 每次都不小心Ctrl C下去,就要抱頭痛哭QQ (在Terminal裡面是呼叫一個外部中斷,強制中止當下系統的動作) 其實在Terminal當中也有複製貼上的功能 Ctrl + Shift + C 複製 Ctrl + Shift + V 貼上 功能相當於一般的複製貼上,也只是多按一個Shift,相信不是太難適應 如果是透過VirtualBox建立的Ubuntu 想要跟主機互通的話,可以參考這篇: [VirtualBox] 共用剪貼簿與檔案 另外,在Terminal裡也有所謂的暫存剪貼簿,是針對指令設計的 Ctrl + U 剪下游標前的字元到剪貼簿 Ctrl + K 剪下游標後的字元到剪貼簿 Ctrl + Y 貼上 所謂的游標就是打指令的那行閃爍的位置 所以其他畫面上系統輸出的文字不會受影響,才說是針對指令設計 這個暫存的剪貼簿也跟一般的是分開的,或許會有派上用場的一天吧!

【Ubuntu】關閉預設畫面自動鎖定

圖片
近期一直碰到一個小麻煩 在Ubuntu VM做研究時 因為平常會在本機Search,才去VM操作 卻發現每次畫面跳去Ubuntu那邊 都還要重新打密碼登入,很惱人 怒查之下,原來這個動作叫  畫面鎖定 反正VM就是個測試環境,根本不需要這些安全措施 透過下面步驟就可以取消了 甚至連開機登入時都可以不用打密碼了呵呵

【VirtualBox】 共用剪貼簿與檔案

圖片
最近透過 VirtualBox 執行Ubuntu的VM VM是一個獨立的環境,只要在該視窗下 剪貼簿與整個系統都是獨立於主機不互通的 但我常在本機與VM之間交錯操作 常要用到指令或檔案,又不能相互移動、複製使用,很是困擾 其實VirtualBox 預設不能如此,卻可以透過如下操作實現: