配置 FreeBSD 的工作基本上都需要在 CLI 下執行,如果沒有接觸過 CLI,可能會有些頭大,因此這裡還是要給大家先普及些基礎知識。

Unix 基礎

UNIX / Linux / BSD / macOS 有哪些區別與聯絡?

看影片吧。

POSIX 標準

Linux 當年能迅速崛起,跟 Linux 在開發階段就相容 POSIX 標準有很大的關係,當時移植了大量的 UNIX 應用程式。

現在反而是 Linux 上面的應用更多了。

CLI 與 SHELL

顯示當前終端使用的 SHELL

echo $SHELL

基本命令

pwd

顯示當前目錄。

cd

更改當前目錄。

ls

檢視當前目錄下所有檔案和目錄。

su

升權,root 賬戶。

echo

屏顯。

cat

顯示文字檔案內容。

grep

查詢文字。

sed

修改文字檔案。

管道運算子|

將運算子左邊的結果傳遞給右邊的指令,右邊的命令必須支援管道輸入才可以。

重定向運算子 > / >>

可以把屏顯的輸出結果重定向到檔案(也可重定向到其他地方,這裡不展開)。
>為覆蓋,>>為追加。

開啟 sshd

sysrc sshd_enable="YES"

配置 tcsh

顯示中文

# 編輯/etc/login.conf,結尾處(我一般在russian段落後面)新增
chinese|Chinese Users Accounts:\
        :charset=UTF-8:\
        :lang=zh_CN.UTF-8:\
        :setenv=LC_ALL=zh_CN.UTF-8:\
        :tc=default:
# 之後執行
cap_mkdb /etc/login.conf
pw usermod terry -L chinese

.cshrc

# $FreeBSD: releng/12.0/share/skel/dot.cshrc 337497 2018-08-08 19:24:20Z asomers $
#
# .cshrc - csh resource script, read at beginning of execution by each shell
#
# see also csh(1), environ(7).
# more examples available at /usr/share/examples/csh/
#

alias h		history 25
alias j		jobs -l
alias la	ls -aF
alias lf	ls -FA
alias ll	ls -lAF

#terry added
alias q         exit
alias rm        rm -i
alias del       rm -r
alias mv        mv -i
alias cp        cp -i
alias dh        df -haT
alias ds        du -sh
alias ..        cd ..
alias -         cd -
alias v         vi
alias g         git
alias s		su -m
alias minstall  'make install clean'

alias pkg-msg      "pkg info -D"
alias pkg-fresh    'pkg version -vl "<"'

alias port-init    'portsnap fetch extract'
alias port-sync    'portsnap fetch update'
alias port-rebuild 'portmaster -d'
alias port-update  'portmaster -w -D -a'
alias port-clean   'portmaster --clean-distfiles -y'
alias port-notice  '$PAGER /usr/ports/UPDATING'
alias port-dep  "echo '^[[1m^[[32mBuild depends:^[[0m' && make build-depends-list|sort \
                 echo '^[[1m^[[32mRun depends:^[[0m' && make run-depends-list|sort  \
                 echo '^[[1m^[[31mMissing:^[[0m' && make missing|sort"

alias proxy     setenv SOCKS5_PROXY 192.168.3.1:1087
alias unproxy   unsetenv SOCKS5_PROXY
#terry added end

# These are normally set through /etc/login.conf.  You may override them here
# if wanted.
# set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin)
# setenv	BLOCKSIZE	K
# A righteous umask
# umask 22

setenv	EDITOR	vi
setenv	PAGER	less

setenv LSCOLORS HxGxFxdxCxegedabagExEx
setenv CLICOLOR yes

#terry added
setenv GREP_OPTIONS --color=auto

set cr = "%{\e[31m%}"
set cg = "%{\e[32m%}"
set c0 = "%{\e[0m%}"
#terry added

if ($?prompt) then
	# An interactive shell -- set some stuff up
	set prompt = "%N@%m:%~ %# "
	set promptchars = "%#"

#terry added
	if ( "$uid" == "0" ) then
                #set prompt = "%U%n%u@%m [%l] %B%~%b # "
                set prompt = "%U%n%u@%m.$cr%l$c0%b %c2 %B%#%b "
        else
                #set prompt = "%U%n%u@%m [%l] %B%~%b % "
                set prompt = "%U%n%u@%m.$cg%l$c0%b %c2 %B%%%b "
        endif
#terry added end

	set filec
	set history = 1000
	set savehist = (1000 merge)
	set autolist = ambiguous
	# Use history to aid expansion
	set autoexpand
	set autorehash
	set mail = (/var/mail/$USER)
	if ( $?tcsh ) then
		bindkey "^W" backward-delete-word
		bindkey -k up history-search-backward
		bindkey -k down history-search-forward
	endif

endif
#added terry
# completion
if ( -d ~/.tcsh_completion ) then
    foreach tcsh_comp ( ~/.tcsh_completion/*.tcsh )
        source $tcsh_comp
    end
endif
#added terry end

老張說:

支援我們

如果您喜欢这篇文章,您可以分享给您的朋友,分享到您的社交账号比如:

或者 点击这个链接 观看广告支持我【广告内容与我们无关,请不要轻易相信并打开弹出的广告】。
若您经济宽裕,更欢迎通过下面的方式小额赞助以支持我们的创作。