
6
destop版也可以,但容量差很~大
直接看網友文章~
VirtualBox 安裝 Ubuntu Server 設定與教學-使用 subiquity 安裝程式
sudo apt-get update
sudo apt-get upgrade
sudo apt install net-tools (=> ifconfig 可以查看ip)
sudo apt-get install openssh-client
sudo apt install git
sudo apt install mariadb(mysql)-server
sudo apt install mongodb
python3 --version
sudo apt install python3-pip
Python 套件
sudo pip list
sudo pip install pymysql
sudo pip install selenium
sudo pip install pandas……
sudo passwd root
sudo adduser newusername
sudo passwd newusername
- PS /etc/default/useradd (可以看到創建使用者的規則)
切換到使用者,試試看能不能登入
su - newusername
sudo passwd sudo userdel newusername
sudo groupadd groupname
sudo usermod -aG groupname newusername (加到特定組別)
sudo usermod -aG sudo newusername (加到sudo組,就可以擁有sudo權限)
- PS cat /etc/group (查看所有GROUP訊息)
- PS id <username> (查看特定用戶的身分訊息)
sudo groupdel groupname
sudo visudo
%<username> ALL=(ALL) ALL
沒特別設置時,文件的群組通常是文件創建者的主要群組,但可以更改文件的群組,來控製文件的訪問權限
chgrp newgroup myfile.txt
- PS chown newowner:newgroup filename (一起更改文件所有者和群組)
sudo grep emp1 /etc/group (在 /etc/group 文件中搜尋包含 emp1 的行)
sudo groupadd -g 1100 devb (創建一個名為 devb 的群組,同時指定群組ID(GID)為 1100)
sudo dpkg-reconfigure tzdata
sudo dpkg-reconfigure locales ( zh_TW.UTF-8 UTF-8)
crontab-e
sudo systemctl status cron (查看crontab狀態)
sudo systemctl restart cron (正常修改完crontab -e是不用重啟的。)
30 10 * * * echo "hello world" >> /home/catalina/hello_01.txt (每天的10:30)
0 */6 * * * echo "hello world" >> /home/catalina/hello_01.txt (每六小時)
30 22 * * * python3 ~/ptt.py >> ~/cron_ptt.log 2>&1 (22:30運行Python腳本ptt.py,並輸出到cron_ptt.log)
ps aux | grep ptt.py (確認所有python運行狀態)
cat cron_ptt.log (查看log紀錄)
mkdir scripts (/home/cata下,創建一個資料夾,專門用來放shell script 檔案)
cd scripts (/home/cata/scripts)
vi date_1.sh (資料夾中創建一個.sh檔案,/home/cata/scripts/date_1.sh)
[進入後輸入資料,目的是獲取當前日期和時間,輸入到指定檔案]
#!/bin/bash
mdate=`date`
echo $mdate >> /home/cata/date_1.txt (> 覆蓋 >> 附加)
crontab -e (設定排程、log檔)
0 20 * * * /bin/bash /home/cata/scripts/date_1.sh >> /home/cata/scripts/date_1.log 2>&1
直接看網友文章補充~
Ubuntu 排程設定 :Crontab 排程使用教學
pwd
cd
cd ..(回到上一層)
cd - (回到前一步驟用的目錄)
cd ~ (回到home/)
cp <來源> <目的> (複製檔案)
cp-r <來源> <目的> (複製資料夾)
rm <檔案> (刪除檔案)
rm -r <檔案> (刪除資料夾)
rm -rf <檔案> (強制刪除檔案)
mv <原路徑> <新路徑> (移動檔案 剪下 貼上)
mv <原檔名> <新檔名> (重新命名)
假設home/catalina/file_1 要移去 home/josh/
=> 現在在home/catalina => mv file_1 /home/josh/
=> 現在在home/josh => mv /home/catalina/file_1 .
ls
ls -l (簡稱ll,詳細列表(long listing))
ll -h or ls -h (使用容易觀看單位,KB、MB 等單位,而不是字節數)
ll -lh or ls -lh (詳細列表+容易觀看單位)
- PS ll AAA/BBB or ls AAA/BBB,例如: ls -lh /var/lib/mysql/test/
(可以直接查看指定位置資料夾)
ls /bin/ > bin1.txt
假設我在/home/catalina 操作ls /bin/ > bin1.txt,bin1.txt /home/catalina,而非 /bin
cat <filename>
less <filename> (分頁查看)
- PS history | less (查看歷史指令)
vi or vim <filename>
進到文件後
o 新增一行
yy 複製
30yy 複製30行
u 上一步
dd 刪除
p 貼上
G 跳到最後一行
esc + : + q! (跳出,不儲存)
esc + : + wq (跳出,儲存)
echo "hello linux!" > hello.txt
cat hello.txt > hello2.txt
mkdir <filename>
- PS mkdir /home/catalina/AAA/BBB/CCC (原本沒有的資料夾,會顯示錯誤)
- PS mkdir -p /home/catalina/AAA/BBB/CCC (加了p,原本沒有的資料夾,會自動被建立)
sudo rm -rf /home/catalina/AAA/BBB/CCC
clear
對的到right.log,錯的到wrong,log
ls hello.txt xxxx 1> right.log 2> wrong.log
tar -cf package.tar bin*
tar -tf package.tar (顯示內容)
tar -czf gzip_package.tar bin* (使用gzip技術)
zip gzip_package.zip -r .
tar -cjf bzip2_package.tar bin* (使用bzip技術)
tar -cJf xz_package.tar bin* (使用xz技術)
安裝套件
sudo apt-get install zip unzip
建立資料夾,解壓縮至資料夾
mkdir unzip_folder
unzip gzip_package.zip -d unzip_folder
wget {網址} (下載檔案)
unzip Daily_2023_09_24.zip -d ./ (解壓縮檔案)
less Daily_2023_09_24.csv (查看檔案)
grep TX Daily_2023_09_24.csv | less (搜尋關於TX)
grep ,TX Daily_2023_09_24.csv | less (搜尋關於,TX)
所有人可讀,只允許文件擁有者寫入
chmod 644 [example.txt]
只允許文件擁有者讀
chmod 400 [example.txt]
只允許文件擁有者讀+寫入
chmod 600 [example.txt]
文件所有者(User)具有讀取和寫入權限(rw-)
所屬組(Group)沒有權限(—)
其他用戶(Others)沒有權限(—)
folder下所有文件,只允許文件擁有者讀+寫入
chmod -R 700 myfolder
只允許文件擁有者讀+寫入+執行
chmod 771 [script.sh]
文件所有者(User)具有讀取、寫入和執行權限(rwx)。
所屬組(Group)具有讀取、寫入和執行權限(rwx)。
其他用戶(Others)具有讀取和執行權限(r-x)
last -5 查詢登入紀錄 (最近五筆)
last -5 <username> 查詢登入紀錄 (特定使用者)
last -s -7dyas 查詢登入紀錄 (七天內)
w (查看目前登入的用戶訊息)
w <username> (查看指定的登入紀錄、詳細訊息)
sudo cat /etc/passwd (查看所有用戶的登入紀錄、詳細訊息)
mv my_file ../ (到上一層)
前面安裝好了,直接啟動
sudo systemctl start mariadb
查看狀態: sudo systemctl status mariadb
開機時直接啟動: sudo systemctl enable mariadb
sudo mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
CREATE USER 'username' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'; (所有權限)
GRANT SELECT, INSERT ON mydb.* TO 'username'@'%';
select Host,User,authentication_string from mysql.user (查詢權限)
ALL PRIVILEGES:執行所有操作
SELECT:檢索數據。
INSERT:插入新數據
UPDATE:更新數據
DELETE:刪除數據
CREATE:創建新數據庫和表
DROP:刪除數據庫和表
ALTER:更改表結構
GRANT OPTION:將其擁有的權限授予其他用戶
SHOW DATABASES:查看可用的數據庫列表
SHOW TABLES:查看特定數據庫中的表列表
CREATE USER:創建新用戶
SUPER:root權限
REPLICATION CLIENT:複製客戶端狀態
REPLICATION SLAVE:複製伺服器
FILE:讀取和寫入系統文件
PROCESS:查看所有正在運行的進度
SHUTDOWN:關閉數據庫服務器
CREATE TEMPORARY TABLES:創建臨時表
LOCK TABLES:鎖定表,防止其他用戶對表進行更改
EXECUTE:執行存儲過程
REFERENCES:引用外鍵
CREATE ROUTINE:創建儲存過程和函數
ALTER ROUTINE:更改儲存過程和函數
EVENT:創建和管理事件
TRIGGER:創建觸發器
下載 putty gen ,輸入主機的外部IP產金鑰,再到AWS/GCP設定金鑰即可
直接看網友文章補充~
[教學] 使用 PuTTYgen 產生 SSH 連線 RSA、DSA 公鑰與私鑰
前面安裝好了,直接啟動
sudo systemctl start mongodb
查看狀態: sudo systemctl status mongodb
開機時直接啟動: sudo systemctl enable mongodb
mongo --username your_username --password your_password --authenticationDatabase admin
mongo
use admin
db.createUser(
{
user: "root",
pwd: "your_root_password",
roles: [ { role: "root", db: "admin" } ]
}
)
db.grantRolesToUser("catalina", [
{ role: "read", db: "mydb" },
{ role: "readWrite", db: "mydb" }
])
read: 讀取操作(find)。
readWrite: 讀取+寫入操作(find、insert、update、remove)
dbAdmin: 在指定數據庫上執行管理操作,如索引、查看統計信息等
dbOwner: 在指定數據庫上執行任何操作,類似於root權限
userAdmin: 可以管理數據庫中的用戶,如創建和刪除用戶、更改用戶密碼
clusterAdmin: 執行集群級別的操作,如復制集和分片集群的管理
backup: 備份數據庫
restore: 執行恢復數據庫
changeStream: 使用 changeStreams 監控數據庫的變化
readAnyDatabase: 在任何數據庫上執行讀取操作
readWriteAnyDatabase: 在任何數據庫上執行讀取和寫入操作
userAdminAnyDatabase: 在任何數據庫上管理用戶
dbAdminAnyDatabase: 在任何數據庫上執行管理操作
clusterManager: 具有集群管理權限
restoreAnyDatabase: 恢復任何數據庫
比較
use admin
// 創建用戶並為其分配 restore 角色(僅限於 mydb 資料庫)
db.createUser({
user: "backupuser",
pwd: "backupuser_password",
roles: [
{ role: "restore", db: "mydb" }
]
})
-------------------------------------------------------------
use admin
// 創建用戶並為其分配 restoreAnyDatabase 角色(允許在任何資料庫上執行恢復操作)
db.createUser({
user: "adminuser",
pwd: "adminuser_password",
roles: [
{ role: "restoreAnyDatabase", db: "admin" }
]
})
db.changeUserPassword("root", "new_password")
db.auth("root", "new_password") (確認是否更改成功)
安裝、啟動
sudo apt update
sudo apt install apache2
sudo service apache2 start
sudo apt install php
Apache 讀 css/js/php 檔要改文件
/etc/apache2/httpd.conf
or
/etc/apache2/apache2.conf

改好後重啟
sudo systemctl restart apache2
安裝、啟動
註冊NOIP
安裝客戶端
apt install make
apt install make gcc
建立NOIP資料夾
cd ~
mkdir noip
cd noip
下載、解壓縮、安裝客戶端
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar vzxf noip-duc-linux.tar.gz
cd noip-2.1.9-1
sudo make
sudo make install
會遇到詢問
Do you wish to run something at successful update? 回答 [N] (y/N)
如果成功,會設置新的no-ip2.conf ,查看 sudo vim /usr/local/etc/no-ip2.conf 文件
啟動NOIP
sudo /usr/local/bin/noip2
sudo /usr/local/bin/noip2 -S (查看啟動後狀態)
設置開機自動啟動NOIP
sudo crontab -e
最後一行加:@reboot /usr/local/bin/noip2 (如果是本機機台,每次開機都要執行一次sudo /usr/local/bin/noip2,因此設開機自動執行)
關閉NOIP
sudo killall noip2
確認是否綁定IP成功
ping -no-ip hostnanme
sudo apt install ddclient
sudo vi /etc/ddclient.conf
(進設定檔後,protocol=dyndns2
use=web, web=checkip.dyndns.com, web-skip='[NOIP設置的網址,0000.ddns.net]'
server=members.dyndns.org
login=group_3
password='[NOIP設置的密碼]')
啟動DNS
sudo systemctl start ddclient
如果換NOIP網址,要重新配置 NO-IP、改DNS設定檔
sudo /usr/local/bin/noip2 -C
sudo systemctl start ddclient
以上都完成後,html/css/js 或 php 檔案放到指定位置就能成功配置了
/var/www/html/index.html
加載、安裝NFS
sudo modprobe nfs
sudo modprobe nfsd
sudo apt install nfs-kernel-server
sudo apt-get install rpcbind
啟動NFS
sudo systemctl start rpcbind
查看狀態
sudo systemctl status rpcbind
查看監聽極端口
sudo netstat -tulnp | grep rpc.mountd
sudo netstat -tuln | grep :2049
設置防火牆
sudo ufw allow from [your ip] to any port nfs
設置共享資料夾及權限
/home/share/
140.137.219.56(rw,sync,no_subtree_check,crossmnt,fsid) 140.137.219.0/24(ro,sync,no_subtree_check) (ro 只讀,rw 讀寫權限)
sudo exportfs -r
掛載在指定的資料夾
sudo mount -t nfs ip:<分享位置> <掛載位置>
sudo mount -t nfs [your ip]:/home/NFS/ /home/catalina/nfs_share/
掛載成功後,可以直接使用putty連線
cd /home/catalina/nfs_share
安裝SAMBA
sudo apt-get install samba
更改設定檔
sudo gedit /etc/samba/smb.conf
第一個 [global],加上
workgroup =WORKGROUP
也可以加上,可以使用Symbolic Links及禁用Unix文件
wide links = yes
follow symlinks = yes
unix extensions = no
第二個 [設置要分享資料夾的名稱]
comment = Share
path = /home/share
read only = no
writable = yes
browseable= yes
create mask = 777
directory mask = 777
valid users = username
重啟
sudo /etc/init.d/smbd restart
查看虛擬機IP
ifconfig
本機端電腦

安裝smbclient連線
sudo apt install smbclient
設帳號密碼
sudo smbpasswd -a <username>
使用smbclient,連接到Samba共享
smbclient //[your ip]/share -U <user>
掛載Samba,共享到本地目錄
smbclient//<ip>/<share fold> -U <user> [SAMBA] : 密碼,英文名
掛載位置
sudo mount -t cifs //140.137.219.94/share /home/ivy/share -o username=ivy,password=ivy
設置防火牆,不影響samba執行
sudo ufw allow Samba
sudo ufw status
sudo ufw disable
sudo ufw status
重啟
sudo /etc/init.d/smbd restart
查看狀態
systemctl status smbd (/home)
查看設定檔
sudo testparm (/home/share)