無論是使用預編譯二進制文件還是從源代碼編譯,Julia安裝都很簡單。按照https://julialang.org/downloads/上的說明下載并安裝Julia 。
學習和試驗Julia的最簡單方法是通過雙擊Julia可執(zhí)行文件或julia從命令行運行來啟動交互式會話(也稱為read-eval-print循環(huán)或“REPL”):
$ julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.0.1 (2018-09-29)
_/ |\__'_|_|_|\__'_| |
|__/ |
julia> 1 + 2
3
julia> ans
3
要退出交互式會話,請鍵入CTRL-D(按下Control / ^鍵和鍵一起d),或鍵入exit()。在交互模式下運行時,julia顯示橫幅并提示用戶輸入。一旦用戶輸入了完整的表達式,例如1 + 2,并且命中輸入,交互式會話將評估表達式并顯示其值。如果將表達式輸入到帶有分號分號的交互式會話中,則不會顯示其值。ans無論是否顯示,變量都綁定到上次計算的表達式的值。該ans變量僅在交互式會話中綁定,而不是在以其他方式運行Julia代碼時。
要評估在源文件file.jl中編寫的表達式,請編寫include("file.jl")。
要以非交互方式在文件中運行代碼,可以將其作為julia命令的第一個參數(shù):
$ julia script.jl arg1 arg2...
如示例所示,以下命令行參數(shù)將julia被解釋為程序的命令行參數(shù)script.jl,并在全局常量中傳遞ARGS。腳本本身的名稱作為全局傳遞PROGRAM_FILE。請注意,ARGS當使用-e命令行上的選項(請參閱julia下面的幫助輸出)給出Julia表達式時,也會設置該值,但PROGRAM_FILE它將為空。例如,要只打印給腳本的參數(shù),您可以這樣做:
$ julia -e 'println(PROGRAM_FILE); for x in ARGS; println(x); end' foo bar
foo
bar
或者您可以將該代碼放入腳本并運行它:
$ echo 'println(PROGRAM_FILE); for x in ARGS; println(x); end' > script.jl
$ julia script.jl foo bar
script.jl
foo
bar
所述--分隔符可以被用于旨在用于從用于朱莉婭參數(shù)的腳本文件單獨的命令行參數(shù):
$ julia --color=yes -O -- foo.jl arg1 arg2..
Julia可以使用-p或--machine-file選項以并行模式啟動。-p n將啟動一個額外的n工作進程,同時--machine-file file將為文件中的每一行啟動一個worker file。file必須通過無密碼ssh登錄訪問定義的計算機,|并將Julia安裝在與當前主機相同的位置。每個機器定義都采用這種形式[count*][user@]host[:port] [bind_addr[:port]]。user默認為當前用戶,port標準ssh端口。count是在節(jié)點上生成的worker的數(shù)量,默認為1. optional bind-to bind_addr[:port]指定其他worker用于連接此worker的IP地址和端口。
如果您有運行Julia時要執(zhí)行的代碼,可以將其放入~/.julia/config/startup.jl:
$ echo 'println("Greetings! 你好! ??????")' > ~/.julia/config/startup.jl
$ julia
Greetings! 你好! ??????
...
有多種方法可以運行Julia代碼并提供選項,類似于可用于perl和ruby程序的選項:
julia [switches] -- [programfile] [args...]
| 開關 | 描述 | |
|---|---|---|
| -v, --version | 顯示版本信息 | |
| -h, --help | 打印此郵件 | |
| -J, --sysimage | <file>啟動給定的系統(tǒng)映像文件 | |
| -H, --home <dir> | 設置julia可執(zhí)行文件的位置 | |
| --startup-file={yes no} | 加載 ~/.julia/config/startup.jl | |
| --handle-signals={yes no} | 啟用或禁用Julia的默認信號處理程序 | |
| --sysimage-native-code={yes no} | 如果可用,請使用系統(tǒng)映像中的本機代碼 | |
| --compile | d-modules={yes no} | 啟用或禁用模塊的增量預編譯 |
| -e, --eval <expr> | 評估 <expr> | |
| -E, --print <expr> | 評估<expr>并顯示結果 | |
| -L, --load <file> | <file>立即加載所有處理器 | |
| -p,--procs {N auto} | 整數(shù)值N啟動N個額外的本地工作進程; auto啟動與本地CPU線程數(shù)(邏輯核心數(shù))一樣多的工作程序 | |
| --machine-file <file> | 在上面列出的主機上運行進程 <file> | |
| -i | 互動模式; REPL運行并且isinteractive()是真的 | |
| -q, --quiet | 安靜的啟動:沒有橫幅,抑制REPL警告 | |
| --banner={yes no auto} | 啟用或禁用啟動橫幅 | |
| --color={yes no auto} | 啟用或禁用彩色文本 | |
| --history-file={yes no} | 加載或保存歷史記錄 | |
| --depwarn={yes no error} | 啟用或禁用語法和方法棄用警告(error將警告轉(zhuǎn)換為錯誤) | |
| --warn-overwrite={yes no} | 啟用或禁用方法覆蓋警告 | |
| -C, --cpu-target <target> | 限制CPU功能的使用最多<target>; 設置為help查看可用選項 | |
| -O, --optimize={0,1,2,3} | 設置優(yōu)化級別(如果未指定,則默認級別為2;如果不使用級別,則默認級別為3) | |
| -g, -g <level> | 啟用/設置調(diào)試信息生成的級別(如果未指定,則默認級別為1;如果不使用級別,則默認級別為2) | |
| --inline={yes no} | 控制是否允許內(nèi)聯(lián),包括覆蓋@inline聲明 | |
| --check-bounds={yes no} | 始終或從不發(fā)出邊界檢查(忽略聲明) | |
| --math-mode={ieee,fast} | 禁止或啟用不安全的浮點優(yōu)化(覆蓋@fastmath聲明) | |
| --code-coverage={none user all} | 計算源代碼行的執(zhí)行次數(shù) | |
| --code-coverage | 相當于 --code-coverage=user | |
| --track-allocation={none user all} | 計算每個源行分配的字節(jié)數(shù) | |
| --track-allocation | 相當于 --track-allocation=user |