Showing posts with label coreutils. Show all posts
Showing posts with label coreutils. Show all posts

Thursday, August 12, 2010

mount壞掉導致無法正常開機

給未來的裕翔

如果/bin/mount壞掉了

你就完了!

不過放心, 有我在^^

拿出DVD安裝光碟, 進入rescue mode

CD的沒有這功能喔~

憑小小的大腦勾選幾個選項後進入shell

書上說重裝rpm, 不過我不知道怎麼從光碟抽出來耶

也不像教室環境那樣有人架好NFS讓我使用rpm

就在我稍稍緊張之時!

我想到從當下的mount取代我原來壞掉的mount^^ !!!

要注意的是, rescue mode的mount不在/bin裡面

用which mount查看後, 在/usr/bin/裡

cp /usr/bin/mount /mnt/sysimage/bin

然後重開機就可以^^

Tuesday, August 10, 2010

samba_share_t v.s. public_content_rw_t

給未來的裕翔

書上說

如果我要開放一個samba服務

分享的資料夾看是要context改成samba_share_t

或是改成public_content_rw_t並且allow_smbd_anon_write設為on

那怎不乾脆設為samba_share_t就好呢?

因為就只能分享給samba

如果有其他服務可能會存取這個資料夾

那就會是public_content_rw_t會比較適當

附註: 同樣是允許寫入, 架nfs時好像沒有改context和boolean耶

Wednesday, August 4, 2010

cp來源和目標同位置的話?

給未來的裕翔

沒想到cp有個小技巧

當我對/etc/sysconfig/iptables作備份時

如果備份成/etc/sysconfig/iptables.bak

我都是cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

不然了不起一點就是先cd /etc/sysconfig

cp iptables iptables.bak

剛發現

其實我可以直接

cp /etc/sysconfig/iptables{,.bak}

這跟touch file{1,2,3}的道理是一樣的

會變成touch file1 file2 file3, 它們數字在指令裡是以逗號隔開

同理/etc/sysconfig/iptables{,.bak}

因為逗號前面沒東西, 所以展開是/etc/sysconfig/iptables

而逗號後面是.bak, 展開變成/etc/sysconfig/iptables.bak

如同touch file1 file2 file3

我的cp指令變成

cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

帥!

md5sum, sha1sum, gpg

給未來的裕翔

簡介一下md5sum, sha1sum, 和gpg

md5sum和sha1sum是對檔案算hash, 然後驗證用

gpg才是對檔案加密用的

用法:

md5sum file

sha1sum file

如果想要比較兩個檔案的hash, 直接放在一起即可

md5sum file1 file2

sha1sum比照辦理^^

至於加密

gpg -c file

輸入加密密碼後會在current working directory(CWD)產生一個file.gpg

要解密的話

如果直接輸出到螢幕

gpg -d file.gpg

要另存新檔的話

gpg -o file2 -d file.gpg

Tuesday, August 3, 2010

cut的deliiter如果是空白?

給未來的裕翔

cut -d' ' -f#

head指定不列出的行數

給未來的裕翔

head是拿來列出檔案開始的幾行的

預設十行

可用head -n 20改成列出20行

如果今天我想, 從頭列出到倒數第三行?

那就是最後兩行不列出

head -n -2

報告完畢

Monday, August 2, 2010

cut的field幾行都可以

給未來的裕翔

如果想以cut抓取/etc/passwd的某幾行

ex: 1, 4, 7行

cut -d: -f1,3,7 /etc/passwd

這幾行中間還會自動以 : 隔開喔~

tee的功能

給未來的裕翔

在pipe處理中

通常都是把上一個STDOUT當成STDIN處理後再把它STDOUT

看是要匯入檔案

或是再傳給下一個指令

可否同時達成?

xxx | tee filename | yyy

上面的意思是xxx把自己的STDOUT傳給tee後

tee產生兩個STDOUT(我也不知道這說法對不對...)

一個匯入檔案filename

一個當yyy的STDIN

報告完畢

ls的-F

給未來的裕翔

如果ls時忘記每個顏色代表的意思

可以考慮ls -F

它會加一些識別符號再每個檔名後面

Sunday, August 1, 2010

cp對於ln的處理

給未來的裕翔

cp複製一個檔案時

如果它是link檔

被複製的不會是ln檔本身, 而是ln檔指的對象

可用 cp -a 來複製ln檔本身

Monday, July 19, 2010

把檔案非註解部份秀出來

給未來的裕翔

以/etc/ntp.conf為例

它裡面的的註解是#

所以先把它cat出來

再利用grep把每列開頭不為#的抓出來

完整命令如下

cat /etc/ntp.conf | grep ^[^#]

從光碟製作映像檔+掛載

給未來的裕翔

這是從網路上看到的

(我很需要……)

已經成功做出映像檔

不過還不確定做出來的映像檔可否使用

在此先把指令記錄下來

dd if=/dev/cdrom of=/my-iso-file-destination

搞定!

幾天後的今天

我嘗試掛載幾天前的那天所製作的映像檔

mount -t iso9660 -o loop /where-my-iso-is/file-name.iso /where-I-want-to-mount

可以用耶^^

下次來測試最新防拷電影DVD看看, 以嚴肅嚴謹的科學探討精神~

Tuesday, July 6, 2010

whoami v.s. who am i

給未來的裕翔

whoami是看自己當下是誰

看PS1不行嗎......

有點不是很懂這指令存在的意義

中間如果一直su來su去

忘記自己當初是以哪個身份登入的話

who am i

就可以知道啦^^

也可以打who mom likes

其實這還蠻好笑的^^

查看當下有誰在哪登入&作什麼

給未來的裕翔

如果要查看當下有誰在哪登入

可以使用w
 12:51:06 up  3:15,  5 users,  load average: 0.28, 0.40, 0.38
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
ada tty2 - 12:33 16:11 0.08s 0.09s login -- ada
ada tty7 :0 09:36 3:15m 7:00 0.13s pam: gdm-passwo
ada pts/0 :0.0 12:35 0.00s 0.05s 0.03s w
ada pts/1 :0.0 12:50 2.00s 0.03s 0.02s ssh nvlab187.ee
ada pts/2 nvl05.ee.nthu.ed 12:51 2.00s 0.02s 0.02s -bash

那個TTY欄位, 如果是Ctrl + Alt + F#切換的

就會顯示tty2~tty5, 根據#的數字決定

ttr1呢? 不知道耶~ 我換不過去

tty7就是GUI桌面

在桌面叫出來的terminal屬於pts/#

遠端連過來的也是這個範疇

使用who指令也是類似功能

簡單比較:

who -> 看有誰登入

w -> 看有誰登入&作啥

用cat建檔

給未來的裕翔

使用cat > file建檔時

以Ctrl + d作輸入結束

如果以cat > file << sentinal-word

sentinal-word可以自訂

可以改以sentinal-word作輸入結束

即使是這樣, 硬要 Ctrl + d結束一樣可以行得通啦

那~結論是

當然以cat > file建檔比較方便阿

Tuesday, June 22, 2010

如何快速知道自己使用的bash的pid

給未來的裕翔

ps?

top?

錯~~~

答案是

echo $$

Monday, June 21, 2010

把訊息印到/dev/tty#

給未來的裕翔

當以at進行類似echo的動作時

會失敗, 因為at沒有所謂的標準輸入輸出

不過可以改用echo "test-string" > /dev/tty#

不過有很多情況會失敗:

像是, 如果我(normal-user)在桌面那個tty, ex: tty1

echo hello > /dev/tty1      桌面傳給桌面會失敗

登入別的tty然後, echo hello > /dev/tty1      也會失敗, 應該還是因為桌面的關係

如果我在tty2以normal user登入

在tty1以同一位normal user執行echo hello > /dev/tty2

可以成功

如果在tty2以root登入

在tty1以normal user執行echo hello > /dev/tty2

會失敗

算了, 不想講了, 講結論: 好像就是~

從哪傳給桌面就是都會失敗

root傳給root和user可以成功

user只能傳給自己才會成功

不同user之間沒試過

Saturday, June 5, 2010

用cat寫檔

給未來的裕翔

如果想用cat寫檔, 內容只有一行時

直接echo aaa bbb ccc > file-name

注意, aaa bbb ccc那一行可以含空白喔^^

也不需要雙引號

如果是要多行, 又不想vim的話, 可以用cat

cat << key-word > file-name

cat << key-word >> file-name

建新檔就用>

append就用>>

那個key-word是說當某一行我輸入key-word時

就結束cat的寫檔

注意, key-word左邊一定要是<<喔

只有<會錯誤

不過, 也是可以無視自己訂的key-word啦

Ctrl + d取代之

su --login

給未來的裕翔

su --login可以簡化為su -l

su -l可以簡化為su -

結論, 直接用su -吧!

Thursday, May 20, 2010

selinux的簡單雜亂筆記

給未來的裕翔

那個星星是由一個叫setroubleshootd的程式負責的

永久性修改selinux的狀態的話

到/etc/sysconfig/selinux

如果想讓某個服務脫離selinux控管

setsebool -P xxx_disable_trans 1

想看process的selinux context的話

ps -Z

要改變檔案的context, 別忘記加-t

chcon -t xxx_xxx_xxx_t file

如果對像是目錄, 且希望裡面的檔案context一次改完

chcon -R -t xxx_xxx_xxx_t dir