- Aug 13 Thu 2015 21:19
NoSleep | 資訊癮想力 | 部落格公告
- Apr 23 Thu 2020 13:47
高雄景點 | 推薦高雄懶人包 | 五項造訪高雄必做的事!高雄市怎麼吸引外國遊客?
- Apr 03 Fri 2020 20:16
高雄IG打卡 | 高雄網美景點懶人包一次收錄!| 原來高雄這麼美!
最近修課需要Promote網站,裡面收錄許多高雄美食,高雄網美景點,高雄婚紗攝影地點,高雄祕境,
請各位看官千萬不要錯過,高雄一日遊最美打卡景點懶人包!!!一站就搞定。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
BeautyTakgo | 網美。往美 | IG人氣爆棚景點! | 高雄最美的瞬間一次收錄!
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
- Mar 05 Thu 2020 12:17
程式開發 | [Firmware][BMC] Server BMC開發 | 韌體工程師 | 必備軟體&工具指南
- Aug 08 Tue 2017 17:55
如何搶救 Linux 上不能開機的 GRUB 2
如何搶救 Linux 上不能開機的 GRUB 2
本文翻譯自 Linux.com,原作者為 Carla Schroder:https://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/
- Aug 07 Mon 2017 11:54
程式開發 | [Linux][Shell] 指令行數計算 | 指令回傳行數 | 指令回傳值計算
[ Quick Solution Mode ]
$ cat test.log aaaaa bbbbb ccccc ddddd # Way I $ wc -l ./test.log # -l, --lines: print the newline counts 4 ./test.log # Way II $ grep -c '' ./test.log # -c, --count: print a count of matching lines 4 # Way III $ sed -n '$=' ./test.log # $: match last line, =:print current line number 4
[ Verbose Mode ]
由以上三種方法可以看出用 grep 或 sed 時只會回傳總行數, 如果需要用行數來做一些處理時就會比用 wc 來的方便 sed 的 -n 指的是 silent (安靜模式), 表示只顯示匹配的結果, 若不加就會將檔案內容也給輸出了, 所以通常使用 sed 時都會加上 -n 的參數
- Aug 07 Mon 2017 11:50
程式開發 | [Linux][Shell] Linux shell script 基本指令總整理
在許多的情況之下,我們都需要固定一組可以重覆或判斷資訊的指令,
而把這些指令存被在文字檔中,再交由Shell執行,就是Script。
一般會將Shell Script的副檔名命名為.sh,雖然副檔名在Linux中並非必要,
但是有副檔名可以讓我們更容易管理這些檔案。
假設有一個名為test.sh 的 Shell Script,首先用文字編輯器來撰寫內容如下:
#!/bin/bash
echo Hello World
第一行是必需的,它是用來定義你要使用的 shell。Linux中有許多的Shell可以使用,
如:ksh、bash,但是彼此之間語法有所差異,所以我們首先需要定義使用哪一個Shell。
而第二行的 echo 代表列出一個字串,預設會把後面的字串「Hello World」顯示在螢幕上。
將test.sh存檔後,可以用下列其中一種方式執行它:
1、直接輸入 sh test.sh
2、改變test.sh的權限,加上可以執行的權限,
chmod a+x test.sh
接著直接執行它:
./test.sh
在Shell Script中,「#」表示註解,在#後面將視為註解並且被程式忽略。
例如:
#pwd
ls -l
Shell只會執行ls -l,而不會執行ls -l
而「;」 則代表指令的分隔,例如:
pwd;ls -l
和
pwd
ls -l
都是一樣執行pwd及ls -l。
二、變數的使用
在Shell Script中,所有的變數都視為字串,因此不需要在定義變數類型。
在Shell中定義和使用變數時並不一樣。
例如,定義一個變數id並且設定值為2013001,接著還要將印出變數的值:
id=2013001 -> 定義變數時前面不加「$」符號
echo $id -> 使用變數時前面要加「$」符號
注意,在等號的二邊不可以有空白,否則將出現錯誤。
再介紹一個範例:
dir=/home/oracle
ls $dir
這裡我們定義了變數dir的值為/home/oracle,接著用ls指令來印出變數dir,
此時指令會變為ls /home/oracle,所以就把目錄中所有檔案都列出來。
我們再來看一個例子,說明如何使用變數來定義變數:
$ tmppath=/tmp$ tmpfile=$tmppath/abc.txt$ echo $tmpfile
/tmp/abc.txt
我們也可以把指令的輸出傳回給變數,指令前後加上關鍵字「`」,
它是位於鍵盤左上角「數字鍵1」左邊的按鍵:
now=`date`
echo now
結果會秀出「Mon Dec 16 09:31:44 EAT 2013」
此外,雙引號與單引號字串對變數解釋有不同的意義,
如果是使用單引號,則變數會當成一般文字;雙引號才會解譯成變數,例如:
a=123
echo "$a" ->結果是123
echo '$a' ->結果是$a
Script也可以要求使用者輸入資料,利用read指令來讀取輸入的資料。如下:
#!/bin/sh
printf "Please input your name:"
read Name
echo "Your name is $Name"
由於echo指令內定會自動換行,所以我們使用printf這個指令來輸出字串。
我們將上述內容存成檔案test01.sh,接著執行它:
[root@oel62 test]# sh test01.sh
Please input your name: Job ->提示要輸入名字,此時輸入的是Job
Your name is Job
Shell Script有一些預設的特殊變數如下:
$? :表示上一個指令的離開狀況,一般指令正常離開會傳回 0。不正常離開則會傳回 1、2 等數值。
$1 :表示輸入的第一個參數,$2 則為第二個參數,依此類推。
$0 :shell script的檔名。
$@ :即代表 $1, $2,....直到所有參數結束。也就是說 $@ 代表了 "$1" "$2" "$3"....。
$* :所有參數無間隔的連在一起,成為單一個參數。也就是說 $* 代表了 "$1 $2 $3..."
三、運算符號
在 shell 中的四則運算必須使用 expr 這個指令來輔助。注意,在 + - * / 的二邊都有空白,如果沒有空白將產生錯誤:
expr 6 - 2
sum=`expr 10 + 20`
echo $sum
結果:
4
30
還有要特別注意的是乘號 * 。因為 * 有其他意義,所以要使用 \* 來代表。另外,也可以用 % 來求餘數。
count=`expr 9 \* 3`
echo $count
echo `expr $count % 3`
結果:
27
0
簡單的條件判斷是以 && 及 || 這二個符號來表示。
a && b如果 a 是真,則執行 b。如果 a 是假,則不執行 b。
a || b如果 a 是假,則執行 b。如果 a 是真,則不執行 b。
例如:
ls /home && echo YES
ls /dev/aaaa && echo YES
結果:
YES
ls: /dev/aaaa: No such file or directory
接著我們使用 test 及 [ 來做運算,運算所傳回的結果是真 (true) 或假 ( false)。
我們可以將它應用在條件判斷上。test 和 [ 都是一個指令,我們可以使用 test 並在其後加上參數來判斷真假。
或者也可以使用 [ 表達式 ] 來替代 test,要注意的是 [ ] 中的必須有空白間隔。
表達式說明如下:
-n str1 :如果字串 str1 的長度大於 0 則傳回 true。
-z str1 :如果字串 str1 的長度等於 0 則傳回 true。
str1 = str2 :如果字串str1等於字串str2則傳回 true,等號二邊有空白。
str1 != str2 :如果 str1 不等於 str2 則傳回 true。!= 的二邊有空白。
a -eq b :Equal,a 等於 b 則傳回真 (true)。
a -ne b :Not equal,a 不等於 b 則傳回真 (true)。
a -gt b :Grwater than,a 大於 b 則傳回真 (true)。
a -lt b :Less Than,a 小於 b 則傳回真 (true)。
a -ge b :Greater or equal,a 大於或等於 b 則傳回真 (true)。
a -le b :Less or equal,a 小於或等於 b 則傳回真 (true)。
我們舉例來說明:
test 5 -eq 5 && echo true
test abc!=cde && echo true
[ 6 -lt 10 ] && echo true
結果:
true
true
true
四、流程控制
1、if 的條件判斷
基本語法:
if condition-list
then list
elif condition-list
then list
else list
fi
範例:
if [ $1 = "aa" ]
then
echo "YES"
else
echo "NO"
fi
範例二:
$ ee test.sh
#!/bin/sh
if [ $1 -gt 10 ]
then echo " $1 is bigger then 10"
elif [ $1 -ge 0 ]
then echo " $1 is between 5 and 0. "
else echo "$1 is less then 0."
fi
2、while 及 until 迴圈
基本語法:
while condition-list
do list
done
until condition-list
do list
done
範例一:
#!/bin/sh
i=1
while [ $i -le 10 ]
do
echo $i
i=`expr $i + 1`
done
說明:首先令變數 i=1,接著在當i小於等於10執行迴圈的內容,而每次執行迴圈一次,則i加1。
範例二:
#!/bin/sh
i=1
until [ $i -gt 10 ]
do
echo $i
i=`expr $i + 1`
done
說明:首先令變數 i=1,接著迴圈會判斷,一直執行到i大於10才停止。
每跑一次迴圈就i就加1。
3、for 迴圈
基本語法:
for name in word1 word2 …
do do-list
done
for name
do do-list
done
範例一:
#!/bin/sh
for color_name in blue red green
do
echo $color_name
done
說明:這個Script中,會在每一次迴圈中將關鍵字in後面的字串分配給變數color_name,
然後印出變數 color。
4、case 判斷
基本語法:
case word in
pattern1) list1 ;;
pattern2) list2 ;;
…
esac
範例:
case $num1 in
1|2|3) echo $num1 is between 0~3;;
4|5|6|7) echo $num1 is between 4~7;;
8|9) echo $num1 is 8 or 9;;
*) echo $num1 is not on the list;;
esac
6、函式的運用
Shell Script中也可以使用函式 (function) 來將程式模組化。
基本語法:
name ( )
{
statement
}
函式有幾個要注意的地方:
A、在使用函式之前一定要先定義它,也就是在一個 Shell Script 中,一定要先寫函式的內容,
在函式之後再寫一般的程式部份。
B、在Script中的變數全部都是全域變數 (Global),所以函式中的變數會影響函式之外的其他部份。
C、在命令列中輸入的參數是以 $1,$2來讀取,但是這些參數並沒有辦法在函式中使用。
傳給函式的方法和在命令列中一樣,例如:[函式名稱] arg1 arg2..。
傳進函式的變數一樣會以 $1,$2來儲存並使用。
範例:
addnum1 ( )
{
echo 'Function $1 is' $1
echo 'Function $2 is' $2
}
echo 'Command $1 is' $1
echo 'Command $2 is' $2
a=`expr $1 + 10`
b=`expr $2 + 10`
addnum1 $a $b
程式執行:
[root@oel62 test]# ./test01.sh 2 3
結果:
Command $1 is 2
Command $2 is 3
Function $1 is 12
Function $2 is 13
- Aug 07 Mon 2017 11:46
程式開發 | [Linux][Shell] 時間格式總整理 (linux date format)
在linux環境中,不管是程式設計還是其他維護,時間是必不可少的,也經常會用到時間的運算,熟練運用date命令來表示自己想要表示的時間,肯定可以給自己的工作帶來諸多方便。
1.命令格式:
date [參數]... [+格式]
2.命令功能:
date 可以用來顯示或設定系統的日期與時間。
- Oct 03 Mon 2016 20:59
【家電資訊】美寧車用空氣清淨機
這幾天NoSleep的女友在M電商平台看到一台【多功能清淨防護機】,
看內容就是小台的空氣清淨機,主打在車上使用,
女友最近一直咳嗽咳到內臟都要咳出來,
剛好NoSleep女友逛網拍時看到這台,
- Aug 16 Tue 2016 20:06
ifconfig: ioctl 0x8914 failed: Cannot assign requested address
在DHCP的時候,如果出現 ifconfig: ioctl 0x8914 failed: Cannot assign requested address
表示MAC address沒有設定好或是跟其他裝置衝突了,
解決方法:重新設定可用的MAC address
- Aug 09 Tue 2016 18:17
HTML test
- Jul 14 Thu 2016 15:33
程式開發 | Web | 用Google Chrome Console測試DOM語法 | 自動點擊按鈕
- Jul 14 Thu 2016 11:34
重灌必備 | Google當掉? |真糟糕!Google Chrome 當掉了?
根據chorme的使用說明,有這麼一項 "「真糟糕!Google Chrome 當掉了﹗」 問題" Google Chrome 意外關閉時會顯示此錯誤。 也列了一些解決方法,如下。 1.請嘗試重新啟動您的瀏覽器。 →無效,跳過 2.您是否安裝了 Internet Download Manager? 如果您安裝了 Internet Download Manager,請更新為 IDM 6.03 Beta 版 (僅提供英文 版),或是前往 [選項] > [一般],停用「進階瀏覽器整合」選項。 →沒安裝,跳過 3.檢查衝突的軟體。 您可以在網址列中輸入 about:conflicts(註:在chrome網址列下輸入),檢查 Windows 是否安裝了衝突的軟體。如果您安裝了會造成 Google Chrome 當機的軟體,則頁面中 會標示這些軟體,並提供解決衝突的建議操作。在許多情況下,造成衝突的軟體是惡意 軟體,需要使用防毒軟體將其移除。 →檢查過,似乎是沒有。 4.請確認您是否需要重新建立瀏覽器的使用者設定檔。 如果這個錯誤訊息一直出現,表示您的瀏覽器使用者設定檔可能已經毀損。首先,請試著 將「User Data」資料夾內的「Default」子資料夾移到別處,再看看問題是否已解決︰ hint:記得先把chrome關掉 一、輸入鍵盤快速鍵:Windows 鍵 + E 鍵,開啟 Windows Explorer。 在顯示的 Windows Explorer 視窗網址列中,輸入下列適用的目錄: Windows Windows XP: %USERPROFILE%\Local Settings\Application Data\Google\Chrome\User Data\ Windows Vista/ Windows 7/ Windows 8:%LOCALAPPDATA%\Google\Chrome\User Data\ Mac OS X:~/Library/Application Support/Google/Chrome/Default Linux:~/.config/google-chrome/Default 二、按一下 [確定]。 三、在開啟的視窗中,將「Default」資料夾重新命名為「 Backup」。 四、將「Backup」資料夾從「User Data」資料夾移到上一層的「Chrome」資料夾。 如果持續發生錯誤,請試著建立新的使用者設定檔來取代現有的設定檔。 →似乎有效,不過我是很乾脆的把Default資料夾砍了,根據google說法,每次開 都會重新建一個default資料夾。其實這個資料夾就是管你的書籤跟瀏覽紀錄etc. 重灌以後我就是做了這個步驟才不會一直當機。(不過書籤都要重弄就是了。) 5.檢查受保護的系統檔案是否出現問題。 依序按一下 [開始] 功能表 > [執行]。 輸入以下指令:SFC.EXE /SCANNOW (請務必在 SFC.EXE 和 /SCANNOW 之間保留一個空格) 。 上述指令會啟動 Microsoft 的檢測公用程式,並針對電腦上受保護的系統檔案進行掃 描,同時試圖修復問題。 請嘗試開啟 Google Chrome,看看錯誤訊息是否持續出現。 →這個步驟我也有實行,雖然不知道效果如何,但是檢查一下總是好的。
- Jul 13 Wed 2016 08:15
程式開發| [VC/MFC] 讀寫ini檔案 | 儲存程式設定 | 多語系切換 | 小型資料庫
配置文件中經常用到ini文件,在VC中其函數分別為:
寫入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);
讀取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);
讀取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);
其中個參數的意思:
LPCTSTR lpAppName ------- INI文件中的一個字段名
LPCTSTR lpKeyName -------- lpAppName 下的一個鍵名,也就是裡面具體的變量名
LPCTSTR lpString ---------是鍵值,也就是變量的值, 必須為LPCTSTR或CString類型
LPCTSTR lpFileName --------完整的INI文件路徑名
LPCTSTR lpDefaut ----------如果沒有其前兩個參數值,則將此值賦給變量
LPSTR lpReturnedString --------接收INI文件中的值的CString對象,即接收緩衝區
DWORD nSize ------接收緩衝區的大小
例子:
CString StrName,Strtemp;
int nAge;
StrName = "jacky";
nAge = 13;
WritePrivateProfileString("Student","Name",StrName,"c:\\setting.ini");
結果:(INI文件中顯示如下:)
[Student]
Name=jacky
讀取:
CString SName;
GetPrivateProfileString("Student","Name","DefaultName",SName.GetBuffer(MAX_LENGTH),MAX_LENGTH,"c:\\setting.ini");
結果:SName = "jacky";這裡需要注意點就是用完GetBuffer函數後一定要釋放(用SName.ReleaseBuffer()函數),不然後面再用到SName的其他子函數就會失靈。
讀整數比較簡單,如下
int Result = GetPrivateProfileInt("Student","nAge",0,"c:\\setting.ini")返回值即為所讀取的結果!
在GetPrivateProfileString最後一個參數是配置文件路徑的參數,此路徑只能是絕對路徑,不能是相對路徑,但現在我需要是我的exe文件能和我的配置文件在一起。因此我使用了GetCurrentDirectory函數。
原代碼如下:
CString server_ip;
CString des="";
::GetCurrentDirectory(MAX_PATHLENGTH,des.GetBuffer(MAX_PATHLENGTH));
des.ReleaseBuffer();
des+="\\config.ini";
GetPrivateProfileString("PhoneDemo","Server_IP","",server_ip.GetBufferSetLength(15),15,des);
server_ip.ReleaseBuffer();
注意:在這裡使用CString變量時,在使用完GetBuffer後,緊接著一定要使用ReleaseBuffer()函數,才可以進行其他的諸如字符串+操作
- Jul 12 Tue 2016 14:04
程式開發 | [Linux][C] 使用 gettimeofday() 函式計算時間
- Jul 12 Tue 2016 13:19
程式開發 | C/C++ static 關鍵字用途
Static variable
- A static variable inside a function keeps its value between invocations.
- A static global variable or a function is "seen" only in the file it's declared in
意思就是
1. 如果在function裡面定義一個Local的static變數時:
每當離開function之後, 這個static變數的數值仍然會保留, 因為用static把這個變數定義的memory位置固定住了,
也不會被別的變數所使用!
- Mar 31 Thu 2016 10:02
Ubuntu FTP SERVER 安裝設置( vsftp 版本 )
拷貝來源:http://blog.udn.com/nigerchen/2261345
FTP SERVER 架設 (vsftp 版)
如果你有看了前幾篇的教學或是有了基本的知識,到了這裡,你就不用太過於擔心,一定可以駕輕就熟。
如同安裝LAMP一樣,我們使用ubuntu預設的 apt-get 套件來做安裝。
sudo apt-get install vsftpd
過程中,它會問你是否要安裝,請你按Y即可。
安裝完成後,我們可以來查看是否安裝成功,可用下列指令。
netstat -tul | grep ftp
下列會顯示一行訊息,最後會有一個LISTEN,表示已運行待命中。
接下來,就可以使用FTP軟體來做連線的動作。若順利連上就表示完成了,你可以使用你ubuntu的權限來進行登入,也可以使用匿名來登入,此時,vsftp的設定尚未完全。
如何設定vsftp權限
一般設定檔案的副檔名都叫作 .conf 居多,因此,它的設定檔,所在位置是
sudo vim /etc/vsftpd.conf
打開後,記得要編輯時都要按 Insert 或是 i 才能編輯,否則會錯亂一陣。
以下是文件的內容:(如你的文件內與此文件內容不同或是缺少,可以新增在最下方,若不需要此功能可在前面加上#號,即不會啟動)
#接受匿名用戶
anonymous_enable=YES
#匿名用戶login時不詢問密碼
no_anon_password=YES
#接受本地用戶
local_enable=YES
#可以上傳(全局控制).若想要匿名用戶也可上傳則需要設置anon_upload_enable=YES,若想要匿名用戶可以建立目錄則需要anon_mkdir_write_enable=YES.這裡禁止匿名用戶上傳,所以不設置這兩項.
write_enable=YES
#本地用戶上傳文件的umask
local_umask=022
#使用上傳/下載日誌,日誌文件默認為/var/log/vsftpd.log,可以通過xferlog_file選項修改
xferlog_enable=YES
#日誌使用標準xferlog格式
xferlog_std_format=YES
#login時的歡迎信息
ftpd_banner=Welcome to KingArthur's FTP service.
#設置的話將覆蓋上面的ftpd_banner設置,用戶login時將顯示/etc/vsftpd/banner中的內容
banner_file=/etc/vsftpd/banner
#為YES則進入目錄時顯示此目錄下由message_file選項指定的文本文件(,默認為.message)的內容
dirmessage_enable=YES
#本地用戶login後所在目錄,若沒有設置此項,則本地用戶login後將在他的home目錄(/etc/passwd的第六個欄位)中.匿名用戶的對應選項是anon_root<
local_root=/var/ftp
#設置為YES則下面的控制有效
chroot_list_enable=YES
#若為NO,則記錄在chroot_list_file選項所指定的文件(默認是/etc/vsftpd.chroot_list)中的用戶將被chroot在登錄後所在目錄中,無法離開.如果為YES,則所記錄的用戶將不被chroot.這裡選擇YES.(管理員使用居多)
chroot_local_user=NO
#若設置為YES則記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶將無法login,並且將檢察下面的userlist_deny選項
userlist_enable=YES
#若為NO,則僅接受記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶的login請求.若為YES則不接受這些用戶的請求.
userlist_deny=NO
#注意!!!vsftpd還要檢查/etc/vsftpd.ftpusers文件,記錄在這個文件中的用戶將無法login!!
#伺服器以standalong模式運行,這樣可以進行下面的控制
listen=YES
#匿名用戶的傳輸比率(b/s)
anon_max_rate=51200
#本地用戶的傳輸比率(b/s)
local_max_rate=512000
#可接受的最大client數目
max_clients=100
#每個ip的最大client數目
max_per_ip=5
connect_from_port_20=YES
tcp_wrappers=YES
pam_service_name=ftp
都改好了嗎?記得要重新啟動vsftp,才會生效
sudo /etc/init.d/vsftpd restart
記得每變更一次這個檔案,就要重啟一次,這樣子才會正常!!
------
補充:
一般我們會新增其他新的帳號來針對某些服務來做一些限制,像我在這裡新增了一個帳號是 www1 ,這個帳號就管理我的web server當然你也可以新增好幾個帳號,依照你所擁有的服務來創造管理的帳號。
那我們要怎麼限制這個帳號要控管哪個資料夾呢?
假設你已新增了一個帳號test,依照上面的設定,你的 chroot_local_user=NO,而且在/etc/vsftpd.chroot_list 也輸入了test這個帳號,那這個帳號將被限定在/home/test/,登入ftp後,將會無法回上一層,你的/home/test/被限定為根目錄,但是我的web server資料夾不是test,那怎麼做??
我們要修改帳號的初始路徑
sudo vim /etc/passwd
我們會看到下面的訊息(假設帳號為test)
test : x : 1001 : 1001 : test : /home/test : /bin/bash
^^^ ^^^ ^^^ ^^ ^^^^^^^
帳號 帳號id 群組id 群組名 家目錄位置
我們的目錄已改變在 /home/www/,那這個test帳號要管理web server 的資料夾,則可以把 /home/test/ 改成 /home/www/
家目錄的位置可以這樣修改,但是其餘的參數請勿在此修改,若導致帳號無法處理,我可無法負責。
我們可以看是否有修改成功,可以下這個指令
sudo grep test /etc/passwd
若出現
test : x : 1001 : 1001 : test : /home/www : /bin/bash
那就是修改正確,那就可以去你的ftp上面看是不是可以看到www裡的內容
- Dec 08 Tue 2015 13:40
免費軟體 | Daemon Sync | 超簡單搭建私有雲 | 全自動同步備份手機照片影片到電腦
- Dec 08 Tue 2015 13:31
NoSleep | 近期新增 2015.12
- Dec 02 Wed 2015 15:53
免費軟體 | QuickMark | 線上製作QR code | 簡單動作完成網路名片