練習(xí) 0:起步
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
自豪地采用谷歌翻譯
Windows虏缸,手動安裝
Windows侣颂,VirtualBox 虛擬機(jī)(.ova
格式的預(yù)配置映像)
你需要什么
- VitualBox负敏,虛擬機(jī)播放器吗伤。
- putty断国,終端模擬器剥懒。
- 預(yù)配置的 VirtualBox Debian 映像沐飘。
這樣做
下載并安裝 VirtualBox
下載并安裝 Putty虫溜。
-
下載此文件:https://docs.google.com/open?id=0Bw1iG1X4Li39ZlhkQmgtM1BhV2s
另一個鏈接:http://thepiratebay.se/search/vm1.ova/0/99/0
或另一個鏈接:http://www.fileconvoy.com/dfl.php?id=g280b501145101ce4999185763996254d441643a34
md5: 7ac8a6059460f7f3e39aee7c4ee2c230 sha256: 18d8f31d0894c89865d5306b0cb3284d8889e15d155c7435fc7888f3dbafa3ec
-
打開文件
-
點(diǎn)擊
Import
-
選擇
vm1
并點(diǎn)擊Start
-
等待
vm1
啟動 -
啟動
putty
雹姊,在Host Name
或者IP Address
中輸入localhost
。之后點(diǎn)擊Open
-
輸入
user1
,<ENTER>
,123qwe
,<ENTER>
吼渡。 -
恭喜容为,你現(xiàn)在登入了
vm1
。
Linux
你已經(jīng)使用 Linux 了寺酪,你還需要什么嘛坎背?開個玩笑。你可以嚴(yán)格遵循我的指南寄雀,或者隨意在你的系統(tǒng)上做實(shí)驗(yàn)得滤。
Mac OS
以后我會在這里把步驟補(bǔ)上。
練習(xí) 1:文本編輯器盒犹,vim
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
自豪地采用谷歌翻譯
在 Linux 中懂更,就像任何類 Unix 操作系統(tǒng),一切都只是文件急膀。而 Unix 哲學(xué)指出沮协,配置文件必須是人類可讀和可編輯的。在幾乎所有的情況下卓嫂,它們只是純文本慷暂。所以,首先晨雳,你必須學(xué)習(xí)如何編輯文本文件行瑞。
為此奸腺,我強(qiáng)烈建議你學(xué)習(xí) vim 的基礎(chǔ)知識,這是在 Linux 中處理文本的最強(qiáng)大的工具之一血久。Vim 是由 Bill Joy 于 1976 年編寫的突照,vi 的重新實(shí)現(xiàn)。vi 實(shí)現(xiàn)了一個非常成功的概念氧吐,甚至 Microsoft Visual Studio 2012 有一個插件讹蘑,它提供了一個模式,與這個超過 35 歲的編輯器兼容副砍。你可以在這里玩轉(zhuǎn)它(這是在瀏覽器中運(yùn)行的真正的 Linux)衔肢。完成之后庄岖,最后獲取我的虛擬機(jī)豁翎。
如果我還沒成功說服你,你可以了解 nano來代替隅忿。但至少要試試心剥。
現(xiàn)在,登入vm1
背桐,之后鍵入:
vim hello.txt
你應(yīng)該看到:
Hello, brave adventurer!
~
~
~
~
~
~
~
~
~
~
~
~
~
"hello.txt" [New File] 0,0-1 All
有一個笑話說优烧,vim有兩種模式 - “反復(fù)嗶嗶”和“破壞一切”。那么链峭,如果你不知道如何使用 vim畦娄,這是非常真實(shí)的,因?yàn)?vim 是模態(tài)的文本編輯器弊仪。模式是:
- 普通模式:移動光標(biāo)并執(zhí)行刪除熙卡,復(fù)制和粘貼等文本操作。
- 插入模式:輸入文本励饵。
譯者注:還有一個命令模式驳癌,用于生成真 · 隨機(jī)字符串(笑)。
這十分使新手頭疼役听,因?yàn)樗麄冊噲D盡可能地避免普通模式颓鲜。那么這是錯誤的,所以現(xiàn)在我將給你正確的大綱來使用 vim :
start vim
while editing is not finished, repeat
navigate to desired position in NORMAL mode
enter INSERT mode by pressing i
type text
exit INSERT mode by pressing <ESCAPE>
when editing is finished, type :wq
最重要的是典予,幾乎任何時(shí)候都呆在普通模式甜滨,短時(shí)間內(nèi)進(jìn)入插入模式,然后立即退出瘤袖。以這種方式衣摩,vim 只有一種模式,而這種模式是普通模式孽椰。
現(xiàn)在讓我們試試吧昭娩。記住凛篙,按i
進(jìn)入插入模式,以及<ESCAPE>
返回到普通模式栏渺。鍵入以下內(nèi)容(在每行末尾按<ENTER>
):
iRoses are red
Linux is scary
<ESCAPE>
這是你應(yīng)該看到的:
Roses are red
Linux is scary
~
~
~
~
~
~
~
~
~
~
~
~
~
4,17 All
現(xiàn)在我給你命令列表呛梆,在普通模式下移動光標(biāo):
-
h
- 向左移動 -
j
- 向下移動 -
k
- 向上移動 -
l
- 右移 -
i
- 進(jìn)入插入模式 -
o
- 在光標(biāo)下插入一行并進(jìn)入插入模式 -
<ESCAPE>
- 退出插入模式 -
x
- 刪除光標(biāo)下的符號 -
dd
- 刪除一行 -
:wq
- 將更改寫入文件并退出。是的磕诊,沒錯填物,這是一個冒號,后面跟著wq
和<ENTER>
霎终。 -
:q!
- 不要對文件進(jìn)行更改并退出滞磺。
那就夠了。現(xiàn)在莱褒,將光標(biāo)放在第一行并輸入:
oViolets are blue<ESCAPE>
之后击困,將光標(biāo)放在Linux is scary
那一行,并輸入:
oBut I'm scary too<ESCAPE>
你應(yīng)該看到:
Roses are red
Violets are blue
Linux is scary
But I'm scary too
~
~
~
~
~
~
~
~
~
~
~
4,17 All
現(xiàn)在鍵入:wq
保存文件广凸,并退出阅茶。你應(yīng)該看到:
Violets are blue
Linux is scary
But I'm scary too
~
~
~
~
~
~
~
~
~
~
~
"hello.txt" 4L, 64C written
user1@vm1:~$
好的。你做到它了谅海。你剛剛在 vim 中編輯了文本文件脸哀,很好很強(qiáng)大扭吁!
附加題
- 通過鍵入鍵入
vim hello.txt
再次啟動 vim撞蜂,并嘗試我給你的一些命令。 - 玩這個游戲侥袜,它會讓你更熟悉 vim:http://vim-adventures.com/
練習(xí) 2:文本瀏覽器蝌诡,少即是多
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
自豪地采用谷歌翻譯
現(xiàn)在你可以編輯文本文件,這很好系馆。但是如果你只想查看一個文本文件呢送漠?當(dāng)然,你可以使用 vim由蘑,但很多時(shí)候它是過度的闽寡。還有兩件事要考慮:
- 如果你想查看非常大的文件,你將需要在盡可能快的程序中查看它尼酿。
- 通常你不想意外地改變文件中的某些東西爷狈。
所以,我向你介紹強(qiáng)大的less
裳擎,少即是多涎永。“比什么多呢?”你可能會問羡微。嗯...有一次谷饿,有一個被稱為more
的瀏覽器。它很簡單妈倔,只是向你顯示你要求它顯示的文本文件博投。它是如此簡單,只能以一個方向顯示文本文件盯蝴,也就是向前毅哗。 馬克·恩德爾曼(Mark Nudelman)發(fā)現(xiàn)它并不那么令人滿意 ,1983 年至 1985 年捧挺,他編寫了less
虑绵。從那以后,它擁有了許多先進(jìn)的功能闽烙。因?yàn)樗?code>more更先進(jìn)翅睛,一句話就誕生了:“少即是多,多即是少”鸣峭。
好吧宏所,讓我們試試吧酥艳。
輸入:
less .bashrc
你應(yīng)該看到:
user1@vm1:~$ less .bashrc
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# don't put duplicate lines in the history. See bash(1) for more options
# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
HISTCONTROL=$HISTCONTROL${HISTCONTROL+:}ignoredups
.bashrc
如果你的終端不是足夠?qū)捥埽谋緦⒖雌饋硐褚粓F(tuán)糟,因?yàn)樗挪幌抡谐涫R迯?fù)它莫换,請鍵入- -ch<ENTER><ENTER>
。是的骤铃,dash-dash-ch-ENTER-ENTER
拉岁。這將開啟水平滾動。
為了向上向下文瀏覽文字惰爬,使用已經(jīng)熟悉的j
和k
喊暖。退出按q
。
現(xiàn)在我將向你展示less
的高級功能撕瞧,這樣你只能看到所需的那些行陵叽。鍵入&enable<ENTER>
。你應(yīng)該看到這個:
# enable color support of ls and also add hand
# enable programmable completion features (you
# this, if it's already enabled in /etc/bash.b
~
~
~
~
~
~
~
~
~
~
~
~
& (END)
注意看丛版!為了移除過濾器巩掺,只需鍵入&<ENTER>
。同樣页畦,要記住的命令:
-
j
- 向上移動 -
k
- 向下移動 -
q
- 退出less
胖替。 -
- -chop-long-lines或
- -ch<ENTER><ENTER>` - 開啟水平滾動。 -
/
- 搜索。 -
&something
- 只顯示文件中包含某些內(nèi)容的行独令。
附加題
- Linux 具有在線手冊端朵,通過鍵入
man
來調(diào)用。默認(rèn)情況下燃箭,在我們的系統(tǒng)中逸月,本手冊將使用less
來查看。 鍵入man man
并閱讀遍膜,然后退出碗硬。 - 就是這樣,沒有更多的附加題了瓢颅。
練習(xí) 3:Bash:Shell恩尾、.profile
、.bashrc
挽懦、.bash_history
翰意。
原文:[Exercise 3. Bash: The shell, .profile, .bashrc, .bash_history](https://archive.fo/DKP67
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
自豪地采用谷歌翻譯
當(dāng)使用 CLI(命令行界面)來使用 Linux 時(shí),你正在與一個名為 shell 的程序進(jìn)行交互信柿。所有你輸入的都傳遞給 shell冀偶,它解釋你輸入的內(nèi)容,執(zhí)行參數(shù)擴(kuò)展(這有點(diǎn)類似于代數(shù)中的花括號擴(kuò)展)渔嚷,并為你執(zhí)行程序进鸠。我們將使用的 Shell 稱為 Bash,它代表 Bourne Again Shell形病,而 Bourne Again Shell 又是一個雙關(guān)語】湍辏現(xiàn)在我將使用純中文,向大家介紹一下 bash 的工作方式:
- 你
- 登入 Linux 虛擬機(jī)
- 你的身份由用戶名(
user1
)和密碼(123qwe
)確定漠吻。 - Bash 執(zhí)行了量瓜。
- Bash
- 從你的配置中讀取并執(zhí)行首個命令,它定義了:
- 命令提示符是什么樣子
- 使用 Linux 時(shí)途乃,你會看到什么顏色
- 你的編輯器是什么
- 你的瀏覽器是什么
- ...
- 讀取首個命令后绍傲,Bash 進(jìn)入循環(huán)
- 沒有通過輸入
exit
或者按下<CTRL+D>
,來要求退出的時(shí)候:- 讀取一行
- 解析這一行耍共,擴(kuò)展花括號
- 使用擴(kuò)展參數(shù)執(zhí)行命令
- 沒有通過輸入
- 從你的配置中讀取并執(zhí)行首個命令,它定義了:
我重復(fù)一下烫饼,你輸入的任何命令都不會直接執(zhí)行,而是首先擴(kuò)展划提,然后執(zhí)行枫弟。例如,當(dāng)你輸入ls *
時(shí)鹏往,星號*
將擴(kuò)展為當(dāng)前目錄中所有文件的列表淡诗。
現(xiàn)在你將學(xué)習(xí)如何修改你的配置骇塘,以及如何編寫和查看你的歷史記錄。
這樣做
1: ls -al
2: cat .profile
3: echo Hello, $LOGNAME!
4: cp -v .profile .profile.bak
5: echo 'echo Hello, $LOGNAME!' >> .profile
6: tail -n 5 .profile
7: history -w
8: ls -altr
9: cat .bash_history
10: exit
你會看到什么
user1@vm1's password:
Linux vm1 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jun 7 12:03:29 2012 from sis.site
Hello, user1!
user1@vm1:~$ ls -al
total 20
drwxr-xr-x 2 user1 user1 4096 Jun 7 12:18 .
drwxr-xr-x 3 root root 4096 Jun 6 21:49 ..
-rw-r--r-- 1 user1 user1 220 Jun 6 21:48 .bash_logout
-rw-r--r-- 1 user1 user1 3184 Jun 6 21:48 .bashrc
-rw-r--r-- 1 user1 user1 697 Jun 7 12:04 .profile
user1@vm1:~$ cat .profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
echo Hello, $LOGNAME!
user1@vm1:~$ echo Hello, $LOGNAME!
Hello, user1!
user1@vm1:~$ cp -v .profile .profile.bak
`.profile' -> `.profile.bak'
user1@vm1:~$ echo 'echo Hello, $LOGNAME!' >> .profile
user1@vm1:~$ tail -n 5 .profile
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
echo Hello, $LOGNAME!
user1@vm1:~$ history -w
user1@vm1:~$ ls -altr
total 28
-rw-r--r-- 1 user1 user1 3184 Jun 6 21:48 .bashrc
-rw-r--r-- 1 user1 user1 220 Jun 6 21:48 .bash_logout
drwxr-xr-x 3 root root 4096 Jun 6 21:49 ..
-rw-r--r-- 1 user1 user1 741 Jun 7 12:19 .profile.bak
-rw------- 1 user1 user1 308 Jun 7 12:21 .bash_history
-rw-r--r-- 1 user1 user1 697 Jun 7 12:25 .profile
drwxr-xr-x 2 user1 user1 4096 Jun 7 12:25 .
user1@vm1:~$ cat .bash_history
ls -al
cat .profile
echo Hello, $LOGNAME!
cp -v .profile .profile.bak
echo 'echo Hello, $LOGNAME!' >> .profile
tail -n 5 .profile
history -w
ls -altr
user1@vm1:~$ exit
logout
不要害怕韩容,所有命令都會解釋款违。行號對應(yīng)“現(xiàn)在輸入它”的部分。
解釋
打印當(dāng)前目錄中的所有文件群凶,包括隱藏的文件插爹。選項(xiàng)
-al
告訴ls
以long
格式打印文件列表,并包括所有文件请梢,包括隱藏文件赠尾。.profile
和.bash_rc
是隱藏文件,因?yàn)樗鼈円渣c(diǎn).
開頭毅弧。以點(diǎn)開頭的每個文件都是隱藏的气嫁,這很簡單。這兩個特殊文件是 shell 腳本够坐,它們包含登錄時(shí)執(zhí)行的指令寸宵。打印出你的
.profile
文件。只是這樣元咙。告訴你的 shell梯影,你這里是 bash,輸出一個字符串
Hello, $LOGNAME!
庶香,用環(huán)境變量``$LOGNAME替換$LOGNAME
甲棍,它包含你的登錄名。將
.profile
文件復(fù)制到.profile.bak
脉课。選項(xiàng)-v
讓cp
詳細(xì)輸出救军,這意味著它會打印所有的操作。記住這個選項(xiàng)倘零,它通常用于讓命令給你提供比默認(rèn)更多的信息。-
在
.bash_rc
配置文件中添加一行戳寸。從現(xiàn)在開始呈驶,每次登錄到vm1
時(shí), 都將執(zhí)行該命令疫鹊。注意袖瞻,>>
代表向文件添加了一些東西,但>
意味著使用一些東西來替換文件拆吆。如果你不小心替換了.profile
而不是向它添加聋迎,則命令cp -v .profile.bak .profile
會向你返回舊的
.profile
文件。 從
.profile
文件中精確打印出最后 5 行枣耀。將所有命令歷史寫入
.bash_history
文件霉晕。通常這是在會話結(jié)束時(shí)完成的,當(dāng)你通過鍵入exit
或按<CTRL> + D
關(guān)閉它。打印當(dāng)前目錄中的文件牺堰。選項(xiàng)
-tr
表示文件列表按時(shí)間反向排序拄轻。這意味著最近創(chuàng)建和修改的文件最后打印。注意你現(xiàn)在有兩個新的文件伟葫。打印出保存命令歷史記錄的文件恨搓。注意你所有的輸入都在這里。
關(guān)閉會話
附加題
在線搜索為什么
ls -al
告訴你“總共 20”筏养,但是只有 5 個文件存在斧抱。 這是什么意思? 請注意渐溶,.
和..
是特殊文件條目夺姑,分別對應(yīng)于當(dāng)前目錄和父目錄的。登錄
vm1
并鍵入man -K /etc/profile
掌猛,現(xiàn)在使用光標(biāo)鍵滾動到INVOCATION
部分并閱讀它盏浙。 要退出man
,請鍵入q
荔茬。 鍵入man man
來找出man -K
選項(xiàng)的含義废膘。在命令之前鍵入
uname
與空格。 現(xiàn)在慕蔚,鍵入history
丐黄。 看到了嗎?如果你將空格放到命令前面孔飒,則不會將其保存在歷史記錄中灌闺!提示:當(dāng)你需要在命令行上指定密碼時(shí),很實(shí)用坏瞄。找到 bash 的 wiki 頁面桂对,并嘗試閱讀它。不用擔(dān)心鸠匀,如果它嚇到你蕉斜,只需要省略可怕的部分。