權限
chmod -R 644 *
change mode
-R
chmod -R 744
owner
rwx
4+2+1
7
group
r--
4
4
others
r--
4
4
rwx/rw-/---
Read
Write
eXecute
umask
預設值需減掉的權限
ex
chmod 666
umask 002
result 664
chown [onwer/:group] [Filename]
[-R] 包含子目錄與檔案
chown dinolai lol.exe
chown :lab317 lol.exe
change owner
chgrp
change group
[-R] 包含子目錄與檔案
chgrp lab317 lol.exe
user
useradd [username]
useradd -g [groupname] [username]
加入主群組
useradd -G [groupname] [username]
加入副群組
usermod -g [groupname] [username]
將已存在帳號加入主群組
usermod -a -G [groupname] [username]
將已存在帳號加入副群組
群組與加入群組
etc/group
groupadd [groupname]
gpasswd -a [username] [groupname]
新增一使用者至群組
gpasswd -d [username] [groupname]
從一群組刪除一使用者
batch
chmod 664 $(find ./ -type f)
目錄
cd
.
此層目錄
..
上一層目錄
-
前一個工作目錄
~
家目錄
~account
account的家目錄
pwd
顯示目前目錄
mkdir
建立新目錄
rmdir
刪除空目錄
ls
| wc -l
查看目錄總檔案數
files
locate
find
grep
-r
grep -r "abc" /var/www/website/*
在多個資料檔案裡查詢指定字串
file
檔案基本資料
cat
顯示檔案內容
wc
wc [option] file
-c
--bytes 顯示位元數統計
-m
--chars 顯示字母數統計
-l
--lines 顯示行數統計
-L
--max-line-length 印出最長一行的字數
-w
--words 顯示單字數(word)統計
touch
新建檔案
mv a.out b.out
將a.out 改名為b.out
which
尋找執行檔
whereis
尋找特定檔案
locate
使用部份名稱尋找檔案
Process
kill
crontab
例行性工作排程
at
一次性工作排程
sh -x /tools/sync_web.sh mstar.tw/event/20140903-students/ event.mstar.garena.tw/event/20140903-students/ event.mstar.garena.tw
telnet host port
Job
&
execute in background
ping www.google.com.tw &
Ctrl + z
pause process
jobs
watch jobs
bg
background
fb
foreground
kill
kill job
nohup
logout still execute
shutdown
-h
指定時間後關機
-r
重開機
directory
pushd
popd
remote
fstab
遠端mount資料
scp
scp student@127.0.0.1:/etc/bashrc /tmp
將 127.0.0.1 這部遠端主機的 /etc/bashrc 複製到本機的 /tmp 底下
scp
scp -r student@127.0.0.1:/etc /tmp
將 127.0.0.1 這部遠端主機的 /etc 資料夾複製到本機的 /tmp 底下
wget
ssh
laid@124.108.136.73
mount
sudo mount -a
套件
yum
install
update
rpm
-e
移除某個套件
-q
查詢某個套件
-qi
查詢某個套件完整安裝資訊
-ivh
安裝新的套件
-ivh --replacepkgs
安裝已經裝的套件
-Uvh
昇級新版本的套件
-Fvh
更新已經安裝過的套件,只有裝過的才會更新
system
date
[month]
[year]
redhat-config-date
free
藉由讀取 /proc/meminfo 檢視記憶的使用狀況,單位是 1024 Bytes 的 block。
swap
swapon
-s
show swap information
[swap filename]
enable swap file
SetUp
fallocate -l 4G /swapfile
create swap file
mkswap /swapfile
make file ready to be used as a swap space
swapon [swap filename]
enable swap file
/etc/fstab
/swapfile none swap sw 0 0
make swap file permanent
/proc/sys/vm/swappiness
how often your system swaps data out of RAM to the swap space
sysctl vm.swappiness=10
df
-h
disk information
PATH
PATH=$PATH:~/opt/bin
bc
計算機
系統說明
man
manual
info
information
/usr/share/doc
show process
pstree
top
ps
-e --context
-A
all of process
-a
all of process exclude terminal
-u laid
see process run by user laid
-U root -u root -N
See every process except those running as root
-f
complete output
aux
uname -a
system and kernel information
netstat
dmesg
hardware and software information
vmstat
resource information
/proc
fuser
find who use this file
lsof
find process execute files
pidof
find process pid
tmux
Ref
https://wiki.freebsdchina.org/software/t/tmux
ls
kill--server
kill--session
Ctrl+b
&
關閉窗口
Database
freetds
php與mssql溝通Solution
Mysql
mysql -u username -p
GRANT ALL PRIVILEGES ON dbTest.* To 'user'@'hostname' IDENTIFIED BY 'password';
postgresql
/var/lib/pgsql/9.4/data
ph_hba
type
host
database
all
user
root
address
0.0.0.0/0
method
md5
postgresql.conf
listen_address = '*'
/usr/pgsql-9.4
bin
postgresql94-setup initdb
./pg_ctl reload
Account
su
切換使用者
passwd
修改密碼
Nginx
expires
暫存
sendfile
off
on
bash
source
讀入設定檔
|
pipe
less
cut
-d
division
echo $PATH | cut -d ':' -f 3,5
-f
field
-c
char
export | cut -c 12-
grep
-a
binary檔案以text搜尋
-c
count
-i
insensitive
-n
行號
-v
反向選擇
--color=auto
sort
-f
忽略大小寫
-b
忽略開頭空白
-M
Month
-n
number
-r
reverse
-u
uniq
-t
tab
-k
uniq
-i
insensitive
-c
count
wc
-l
列出行
-w
words
-m
多少字元
執行處理
standard in
stdin
0
<
<<
standard out
stdout
1
>
>>
standard error
stderr
2
2>
2>>
垃圾黑洞
/dev/null
;
&&, ||
firewall
iptables
firewalld
systemctl
systemctl start firewalld
systemctl disable firewalld
systemctl status firewalld
firewall-cmd
edit
--add/--remove/--list
-service=http
-port=80/tcp
-port=80-100/udp
-lockdown-whitelist
-context
-uid
-command
='/usr/bin/python -Es /usr/bin/firewall-cmd*'
-user
-masquerade
-interface
-forward-port=port=22
:proto=tcp:toport=3753
:proto=tcp:toaddr=192.0.2.55
:proto=tcp:toport=2055:toaddr=192.0.2.55
--permanent
--zone
--direct
--permanent
--add/--remove
-rule ipv4 filter IN_public_allow \ 0 -m tcp -p tcp --dport 666 -j ACCEPT
--panic
dropping all incoming and outgoing packets
-on
-off
--lockdown
-on
-off
--set
-default-zone=public
status
--state
--version
--help
--reload
--get
-active-zones
-zone-of-interface=em1
-service
-service --permanent
view active after the reload
--zone
--zone=public --list-all
--zone=public --list-ports
--zone=public --list-interfaces
--query
-panic
-masquerade
-lockdown
-lockdown-whitelist-command='/usr/bin/python -Es /usr/bin/command'
config
/usr/lib/firewalld
/ect/firewalld
zone
/usr/lib/firewalld/zones
drop
block
public
default
/etc/firewalld/firewalld.conf
external
dmz
work
home
internal
trusted
/etc/firewalld/zones/
customize
service
/usr/lib/firewalld/services/
predefined
must not be edited
/etc/firewalld/services/
customize
Direct Interface
command
--direct
/etc/firewalld/direct.xml
Rich Language Syntax
Lockdown
/etc/firewalld/firewalld.conf
Signal
Ctrl+r
search command from history
Deamon
[xxx]d
state
signal control
cupsd
interval control
atd
crond
management
stand alone
example
httpd
vsftpd
config
/etc/services
service and port mapping
/var/run
pid
/etc/init.d/
/etc/rc.d/init.d
啟動腳本
status
restart
start
stop
condrestart
/etc/sysconfig/
初始化環境設定檔
/etc
properties
/var/lib
services' database
update-rc.d [deamon name] defaults
super daemon
example
telnet
config
/etc/xinetd.conf, /etc/xinetd.d/
super daemon 設定檔
grep -i 'disable' /etc/xinetd.d/*
service <service_name> { <attribute> <assign_op> <value> <value> ... ... }
=
+=
在原來的設定裡頭加入新的參數
-=
在原來的參數捨棄這裡輸入的參數!
firewall & TCP Wrappers
/etc/hosts.allow
<service(program_name)> : <IP, domain, hostname> : <action>
/etc/hosts.deny
the same as allow
service
--status-all
[service name]
start
status
restart
stop
restart
chkconfig
--list
[--level [0123456]] [service name] [on | off]
[--add | --del][service name]
服務名稱必須在 /etc/init.d/ 內
chkconfig: [runlevels] [啟動順位] [停止順位]
ntsysv
類圖型介面管理程式
Life cycle
read bios and self testing
MBR(Master Boot Record)
get kernel, load memory, detect hardware
kernel call init actively
/etc/rc.d/rc.sysinit
daemon start
/etc/rc.d/rc[0-6].d/*
/etc/rc.d/rc.local
Folder Structure
standard
FHS (Filesystem Hierarchy Standard)
folder
/bin
指令
/boot
開機檔案
/dev
裝置與設備
/lib
開機會用到的函式庫
/bin, /sbin 會用到的函式庫
/modules
核心相關模組
/media
可移除裝置
/mnt
掛載用
/opt
第三方協力軟體
/root
/sbin
開機過程中所需要的,裡面包括了開機、修復、還原系統所需要的指令
/srv
service
/tmp
temp
/usr
Unix Software Resource
/var
常態性變動的檔案
/etc
gitconfig
git 全域設定檔
php5
nginx
hosts
bash
存放所有bash檔的目錄
passwd
使用者設定檔
家目錄
使用哪個bash
登入訊息
issue
issue.net
telnet用
motd
顯示給所有登入者
shadow
密碼
group
群組
security
limit.conf
設定使用者同時登入連線數量
module-load.d
*.conf
開機時讀取 module
/init.d
預設啟動服務
/xinetd.d
super deamon
~
.ssh/
know_hosts
Linux自行紀錄的hosts
系統改變需刪除
config
自己的DNS and 指定登入key
Garena_laid.pri
private key
.bash_profile
.bashrc
環境變數設定
ssh 登入後設定位置
cd /var/www/garenatw
PS1="[\u@\h \w $ ]"
.gitconfig
git 自我設定檔
.bash_logout
登出前先做什麼
SELinux
https://en.wikipedia.org/wiki/Security-Enhanced_Linux
Security-Enhanced Linux
command
setenforce
1
Enforcing
0
Permissive