10 分鐘學會Linux常用 bash命令

来源:http://www.cnblogs.com/savorboard/archive/2017/04/05/bash-guide.html
-Advertisement-
Play Games

目錄 1. "基本操作" 1.1. "文件操作" 1.2. "文本操作" 1.3. "目錄操作" 1.4. "SSH, 系統信息 & 網路操作" 2. "基本 Shell 編程" 2.1. "變數" 2.2. "字元串替換" 2.3. "函數" 2.4. "條件" 2.5. "迴圈" 3. "技巧" ...


bash logo

目錄

  1. 基本操作
    1.1. 文件操作
    1.2. 文本操作
    1.3. 目錄操作
    1.4. SSH, 系統信息 & 網路操作
  2. 基本 Shell 編程
    2.1. 變數
    2.2. 字元串替換
    2.3. 函數
    2.4. 條件
    2.5. 迴圈
  3. 技巧
  4. 調試

1. Basic Operations

a. export

顯示所有的環境變數,如果你想獲取某個變數的詳細信息,使用 echo $VARIABLE_NAME.

export

Example:

$ export
SHELL=/bin/zsh
AWS_HOME=/Users/adnanadnan/.aws
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LESS=-R

$ echo $SHELL
/usr/bin/zsh

b. whereis

whereis使用系統自動構建的資料庫來搜索可執行文件,源文件和手冊頁面。

whereis name

Example:

$ whereis php
/usr/bin/php

c. which

它在環境變數PATH指定的目錄中搜索可執行文件。此命令將列印可執行文件的完整路徑。

which program_name 

Example:

$ which php
/c/xampp/php/php

d. clear

清除視窗上的內容。

1.1. File Operations

ls touch cat more head tail mv cp rm diff
chmod gzip gunzip gzcat lpr lpq lprm

a. ls

列出您的文件。ls有很多選項:-l列出“長格式”的文件,其中包含文件的確切大小,擁有該文件的人員,有權查看該文件,以及何時進行上次修改。-a列出所有文件,包括隱藏文件。有關此命令的更多信息,請檢查此鏈接

ls option

Example:

$ ls -al
rwxr-xr-x   33 adnan  staff    1122 Mar 27 18:44 .
drwxrwxrwx  60 adnan  staff    2040 Mar 21 15:06 ..
-rw-r--r--@  1 adnan  staff   14340 Mar 23 15:05 .DS_Store
-rw-r--r--   1 adnan  staff     157 Mar 25 18:08 .bumpversion.cfg
-rw-r--r--   1 adnan  staff    6515 Mar 25 18:08 .config.ini
-rw-r--r--   1 adnan  staff    5805 Mar 27 18:44 .config.override.ini
drwxr-xr-x  17 adnan  staff     578 Mar 27 23:36 .git
-rwxr-xr-x   1 adnan  staff    2702 Mar 25 18:08 .gitignore

b. touch

創建或更新您的文件。

touch filename

Example:

$ touch trick.md

c. cat

它可以在UNIX或Linux下用於以下目的。

  • 在屏幕上顯示文本文件
  • 複製文本文件
  • 合併文本文件
  • 創建新的文本文件
cat filename
cat file1 file2 
cat file1 file2 > newcombinedfile

d. more

顯示文件的第一部分(用空格移動並鍵入q以退出)。

more filename

e. head

輸出文件的前10行。

head filename

f. tail

輸出最後10行文件。用於-f在文件增長時輸出附加數據。

tail filename

g. mv

將文件從一個位置移動到另一個位置。

mv filename1 filename2

filename1 文件的源路徑,filename2 是目標路徑。

h. cp

將文件從一個位置複製到另一個位置。

cp filename1 filename2

filename1 文件的源路徑,filename2 是目標路徑。

i. rm

刪除文件。在目錄上使用此命令會給您顯示一個錯誤: rm: directory: is a directory。 為了刪除目錄,你必須傳遞-rf去遞歸刪除目錄中的所有內容。

rm filename

j. diff

比較文件,併列出他們的差異。

diff filename1 filename2

k. chmod

讓您更改文件的讀取,寫入和執行許可權。

chmod -options filename

l. gzip

壓縮文件。

gzip filename

m. gunzip

解壓縮gzip壓縮的文件。

gunzip filename

n. gzcat

讓你查看gzip壓縮文件,而不需要gunzip它。

gzcat filename

o. lpr

列印文件。

lpr filename

p. lpq

查看印表機隊列。

lpq

Example:

$ lpq
Rank    Owner   Job     File(s)                         Total Size
active  adnanad 59      demo                            399360 bytes
1st     adnanad 60      (stdin)                         0 bytes

q. lprm

從列印隊列移除某些內容。

lprm jobnumber

1.2. Text Operations

awk grep wc sed sort uniq cut echo fmt
tr nl egrep fgrep

a. awk

awk是處理文本文件最有用的命令。它一行一行地在整個文件上運行。預設情況下,它使用空格分隔欄位。awk命令最常用的語法是

awk '/search_pattern/ { action_to_take_if_pattern_matches; }' file_to_parse

讓我們採取以下文件 /etc/passwd。以下是此文件包含的示例數據:

root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync

所以現在讓我們從這個文件只獲取用戶名。 -F 指定在我們要基於哪個分隔欄位。在我們的例子中 :{ print $1 } 意味著列印出第一個匹配欄位。

awk -F':' '{ print $1 }' /etc/passwd

運行上述命令後,您將獲得以下輸出。

root
daemon
bin
sys
sync

有關如何使用awk的更多細節,請查看以下鏈接

b. grep

查找文件內的文本。您可以使用grep搜索與一個或多個正則表達式匹配的文本行,並僅輸出匹配的行。

grep pattern filename

Example:

$ grep admin /etc/passwd
_kadmin_admin:*:218:-2:Kerberos Admin Service:/var/empty:/usr/bin/false
_kadmin_changepw:*:219:-2:Kerberos Change Password Service:/var/empty:/usr/bin/false
_krb_kadmin:*:231:-2:Open Directory Kerberos Admin Service:/var/empty:/usr/bin/false

您還可以通過使用-i選項強制grep忽略單詞大小寫。-r可用於搜索指定目錄下的所有文件,例如:

$ grep -r admin /etc/

-w 只搜索單詞。有關grep詳細信息,請查看以下鏈接

c. wc

告訴你一個文件中有多少行,多少單詞和多少字元。

wc filename

Example:

$ wc demo.txt
7459   15915  398400 demo.txt

7459 是行數, 15915 是單詞數, 398400 是字元數.

d. sed

用於過濾和轉換文本的流編輯器。

example.txt

Hello This is a Test 1 2 3 4

用連字元替換所有空格

sed 's/ /-/g' example.txt
Hello-This-is-a-Test-1-2-3-4

使用"d"替換所有的數字

sed 's/[0-9]/d/g' example.txt
Hello This is a Test d d d d

e. sort

排序文本文件的行

example.txt

f
b
c
g
a
e
d

sort example.txt

sort example.txt
a
b
c
d
e
f
g

隨機化一個排序的example.txt

sort example.txt | sort -R
b
f
a
c
d
g
e

f. uniq

報告或省略重覆的行

example.txt

a
a
b
a
b
c
d
c

只顯示example.txt的唯一行(首先你需要排序,否則看不到重疊)

sort example.txt | uniq
a
b
c
d

顯示每行的唯一項,並告訴我找到了多少個實例

sort example.txt | uniq -c
    3 a
    2 b
    2 c
    1 d

g. cut

從每行文件中刪除部分。

example.txt

red riding hood went to the park to play

顯示第2,7和9欄的空格作為分隔符

cut -d " " -f2,7,9 example.txt
riding park play

h. echo

顯示一行文字

顯示 "Hello World"

echo Hello World
Hello World

用字母之間的換行顯示 "Hello World"

echo -ne "Hello\nWorld\n"
Hello
World

i. fmt

簡單的最佳文本格式化程式

example: example.txt (1 line)

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

將example.txt的行輸出為20個字元的寬度

cat example.txt | fmt -w 20
Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.

j. tr

翻譯或刪除字元

example.txt

Hello World Foo Bar Baz!

把所有小寫字母變成為大寫

cat example.txt | tr 'a-z' 'A-Z' 
HELLO WORLD FOO BAR BAZ!

把所有的空格變成換行符

cat example.txt | tr ' ' '\n'
Hello
World
Foo
Bar
Baz!

k. nl

顯示文件的行數

example.txt

Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.

帶行號顯示 example.txt

nl -s". " example.txt 
     1. Lorem ipsum
     2. dolor sit amet,
     3. consetetur
     4. sadipscing elitr,
     5. sed diam nonumy
     6. eirmod tempor
     7. invidunt ut labore
     8. et dolore magna
     9. aliquyam erat, sed
    10. diam voluptua. At
    11. vero eos et
    12. accusam et justo
    13. duo dolores et ea
    14. rebum. Stet clita
    15. kasd gubergren,
    16. no sea takimata
    17. sanctus est Lorem
    18. ipsum dolor sit
    19. amet.

l. egrep

列印匹配模式的行 - 擴展表達式(別名為:'grep -E')

example.txt

Lorem ipsum
dolor sit amet, 
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.

在其中顯示“Lorem”或“dolor”的行

egrep '(Lorem|dolor)' example.txt
or
grep -E '(Lorem|dolor)' example.txt
Lorem ipsum
dolor sit amet,
et dolore magna
duo dolores et ea
sanctus est Lorem
ipsum dolor sit

m. fgrep

列印匹配模式到的行 - FIXED模式匹配(別名為:'grep -F')
example.txt

Lorem ipsum
dolor sit amet,
consetetur
sadipscing elitr,
sed diam nonumy
eirmod tempor
foo (Lorem|dolor) 
invidunt ut labore
et dolore magna
aliquyam erat, sed
diam voluptua. At
vero eos et
accusam et justo
duo dolores et ea
rebum. Stet clita
kasd gubergren,
no sea takimata
sanctus est Lorem
ipsum dolor sit
amet.

在example.txt中找到具體的字元串'(Lorem | doloar)'

fgrep '(Lorem|dolor)' example.txt
or
grep -F '(Lorem|dolor)' example.txt
foo (Lorem|dolor) 

1.3. Directory Operations

mkdir cd pwd

a. mkdir

生成一個新的目錄。

mkdir dirname

b. cd

執行這個,從一個目錄轉移到另外一個目錄。

$ cd

將你移動到主目錄。此命令接受可選的dirname,將你移動到該目錄。

cd dirname

c. pwd

告訴你你目前所在的目錄。

pwd

1.4. SSH, System Info & Network Operations

ssh whoami passwd quota date cal uptime w finger uname
man df du last ps kill killall top bg fg
ping whois dig wget scp

a. ssh

ssh (SSH client) 是一個用來在登錄到遠程機器並執行的命令的程式。

ssh user@host

此命令還接受-p可用於連接到特定埠的選項。

ssh -p port user@host

b. whoami

返回當前登錄用戶名。

c. passwd

允許當前登錄的用戶更改其密碼。

d. quota

顯示您的磁碟配額。

quota -v

e. date

顯示當前日期和時間。

f. cal

顯示月份的日曆。

g. uptime

顯示當前的正常運行時間。

h. w

顯示誰線上

i. finger

Displays information about user.

finger username

j. uname

顯示內核信息。

uname -a

k. man

顯示指定命令的手冊。

man command

l. df

顯示磁碟使用情況。

m. du

顯示文件名中文件和目錄的磁碟使用情況(du -s只給出一個總數)。

du filename

n. last

列出您最後登錄的指定用戶。

last yourUsername

o. ps

列出您的進程。

ps -u yourusername

p. kill

使用您所提供的ID殺死(結束)進程。

kill PID

q. killall

用名稱殺死所有進程。

killall processname

r. top

顯示當前活動的進程。

s. bg

列出停止的或後臺工作的Job; 恢覆在後臺停止的Job。

t. fg

前臺化最近的Job。
Brings the most recent job in the foreground.

u. ping

Pings主機並輸出結果。

ping host

v. whois

獲取域的whois信息。

whois domain

w. dig

獲取域的DNS信息。

dig domain

x. wget

下載文件。

wget file

y. scp

在本地主機和遠程主機之間或兩台遠程主機之間傳輸文件。

從本地主機複製到遠程主機

scp source_file user@host:directory/target_file

從遠程主機複製到本地主機

scp user@host:directory/source_file target_file
scp -r user@host:directory/source_folder farget_folder

此命令還接受-P選項可用於連接到特定的埠。

scp -P port user@host:directory/source_file target_file

2. Basic Shell Programming

在bash中你將編寫第一行腳本文件,被叫做shebang。任何腳本中的這一行來確定腳本的執行能力,如獨立的可執行文件,而不是在終端中預先鍵入sh,bash,python,php等。

#!/bin/bash

2.1. Variables

在bash中創建變數與其他語言類似。沒有數據類型。bash中的變數可以包含數字,字元,字元串等。您無需聲明變數,只需為其引用分配一個值即可創建它。

Example:

str="hello world"

上面的一行創建一個變數str並給它賦值“hello world”。通過$放在變數名的開頭來檢索變數的值。

Example:

echo $str   # hello world

像其他語言一樣,bash也有數組。數組是包含多個值的變數。數組的大小沒有最大限制。bash中的數組為零。第一個元素被索引為元素0.在bash中創建數組有幾種方法。以下給出了哪些。

Examples:

array[0] = val
array[1] = val
array[2] = val
array=([2]=val [0]=val [1]=val)
array(val val val)

要在特定索引處顯示值,請使用以下語法:

${array[i]}     # where i is the index

如果沒有提供索引,則假定為數組元素0。要瞭解數組中有多少值,請使用以下語法:

${#array[@]}

Bash也支持三元條件。下麵是一些例子。

${varname:-word}    # 如果varname存在且不為null,則返回其值; 否則返回word
${varname:=word}    # 如果varname存在且不為null,則返回其值;否則設置它,然後返回其值
${varname:+word}    # 如果varname存在並且不為null,返回word; 否則返回null 
${varname:offset:length}    # 執行子字元串擴展。它返回$ varname的子字元串,從offset開始,最多為length的字元

2.2 String Substitution

檢查一些關於如何操作字元串的語法

${variable#pattern}         # if the pattern matches the beginning of the variable's value, delete the shortest part that matches and return the rest
${variable##pattern}        # if the pattern matches the beginning of the variable's value, delete the longest part that matches and return the rest
${variable%pattern}         # if the pattern matches the end of the variable's value, delete the shortest part that matches and return the rest
${variable%%pattern}        # if the pattern matches the end of the variable's value, delete the longest part that matches and return the rest
${variable/pattern/string}  # the longest match to pattern in variable is replaced by string. Only the first match is replaced
${variable//pattern/string} # the longest match to pattern in variable is replaced by string. All matches are replaced
${#varname}     # returns the length of the value of the variable as a character string

2.3. Functions

幾乎與任何編程語言一樣,您可以使用函數以更邏輯的方式對代碼段進行分組,或者實踐遞歸的神聖藝術。聲明函數只是編寫函數my_func {my_code}的問題。調用一個函數就像調用另一個程式一樣,你只需要寫上它的名字。

functname() {
    shell commands
}

Example:

#!/bin/bash
function hello {
   echo world!
}
hello

function say {
    echo $1
}
say "hello world!"

當您運行上述示例時,該hello函數將輸出“world!”。上述兩個功能hellosay是相同的。主要區別是功能say。此功能列印其接收到的第一個參數。函數內的參數以與給腳本的參數相同的方式進行處理。

2.4. Conditionals

bash中的條件語句與其他編程語言相似。條件有許多形式,如最基本的形式是if表達式then語句,其中語句只有在表達式為真時執行。

if [expression]; then
    will execute only if expression is true
else
    will execute if expression is false
fi

有時,如果條件變得混亂,所以你可以使用相同的條件case statements

case expression in
    pattern1 )
        statements ;;
    pattern2 )
        statements ;;
    ...
esac

Expression Examples:

statement1 && statement2  # 兩邊的條件都為true
statement1 || statement2  # 其中一邊為true

str1=str2       # str1 匹配 str2
str1!=str2      # str1 不匹配 str2
str1<str2       # str1 是否小於 str2
str1>str2       # str1 是否大於 str2
-n str1         # str1 不為空(長度大於 0)
-z str1         # str1 為空(長度為 0)

-a file         # 文件存在 
-d file         # 文件存在,是一個目錄 
-e file         # 文件存在; 相同的-a 
-f file         # 文件存在,是一個常規文件(即不是目錄或其他特殊類型的文件) 
-r file         # 你有讀許可權 
-r file         # 文件存在,不為空 
-w file         # 你有寫許可權 
-x file         # 你有文件的執行許可權

file1 -nt file2     # file1 is newer than file2
file1 -ot file2     # file1 is older than file2

-lt     # 小於 
-le     # 小於或等於 
-eq     # 等於
-ge     # 大於或等於 
-gt     # 大於
-ne     # 不等於

2.5. Loops

bash 中有三種不同類型的迴圈。 for, whileuntil.

for 語法:

for x := 1 to 10 do
begin
  statements
end

for name [in list]
do
  statements that can use $name
done

for (( initialisation ; ending condition ; update ))
do
  statements...
done

while 語法:

while condition; do
  statements
done

until 語法:

until condition; do
  statements
done

3. Tricks

設置一個別名

bash_profile 可以通過運行後面的命令打開。 nano ~/.bash_profile

alias dockerlogin='ssh [email protected] -p2222' # add your alias in .bash_profile

快速去特定的目錄

nano ~/.bashrc

export hotellogs="/workspace/hotel-api/storage/logs"

source ~/.bashrc
cd hotellogs

4. Debugging

您可以通過傳遞不同的選項來輕鬆地調試bash腳本bash。例如-n,不會運行命令並僅檢查語法錯誤。-vecho命令在運行它們之前。-x命令行處理後的echo命令。

bash -n scriptname
bash -v scriptname
bash -x scriptname

License

License: CC BY 4.0


原文地址:https://github.com/Idnan/bash-guide
翻譯:楊曉東(Savorboard)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、sersync項目: sersync項目利用inotify與rsync技術實現對伺服器數據實時同步到解決方案,其中inotify用於監控sersync所在伺服器上文件系統的事件變化,rsync是目前廣泛使用的本地及異地數據同步工具,其優點是只對變化的目錄數據操作。 sersync項目的優點:1) ...
  • 1. 獲取源代碼,一般是wget方式,ubuntu可以使用apt-get source來獲取源代碼。 2. 解壓源代碼,一般使用tar -zxvf xxx.tar.gz即可 3. 切換到解壓後的目錄,運行 ./configure。其選項可以通過 ./configure –help來獲取,非root用 ...
  • 手動設置ip地址 如果虛擬機不能自動獲取IP,只能手動配置,配置方法如下: 輸入命令 #vi /etc/sysconfig/network-scripts/ifcfg-eth0 [編輯網卡的配置文件] 輸入上述命令後回車,打開配置文件,使用方向鍵移動游標到最後一行,按字母鍵“O”,進入編輯模式,輸入 ...
  • 標簽:老男孩教育 Centos6.5安裝選包原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://oldboy.blog.51cto.com/2561410/1564620近來發現越來越多的運維小伙伴們都有最小化安裝系統的潔癖,因此,找 ...
  • 執行任何命令返回“-bash: fork: 無法分配記憶體” 原因:系統預設分配的pid使用殆盡 解決方法:echo "kernel.pid_max=64000" >>/etc/sysctl.conf sysctl -p ...
  • ####主機: backup nfs01 ####系統環境: [root@backup ~]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@backup ~]# uname -r 2.6.32-642.el6.x86_64 [ro... ...
  • Windows 操作系統功能豐富,可視化的界面能夠幫助我們提高工作效率。不過,日常使用中,很多用戶都習慣“一隻滑鼠走天下”,頻繁的點擊讓手指疲憊不堪。 為此,我們總結了十個適用於 Windows 7 以上版本操作系統的通用快捷鍵,只要能夠記住,便可以讓操作效率進一步提升,成為周圍人眼中的“高手”。 ...
  • 1、使用該執行打開埠文件vi /etc/sysconfig/iptables2、隨便複製一行現有內容,將你要打開的埠設置上就行了,這裡是打開80埠-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT3、輸入:wq保存退 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...