Linux 基礎學習

来源:https://www.cnblogs.com/guokaifeng/archive/2019/08/23/11397048.html
-Advertisement-
Play Games

Linux 基礎學習 [TOC] 用戶登錄 root用戶 是一個特殊的管理賬號,也可以成為超級管理員 root用戶對系統有完全控制的許可權 對系統的損害會無限大 在工作中,如果沒有特殊的必要,儘量不要使用root 普通用戶 許可權有限 對系統的損害會小 終端 分類 設備終端 物理終端 虛擬終端 ctrl ...


目錄

Linux 基礎學習

用戶登錄

  • root用戶
    • 是一個特殊的管理賬號,也可以成為超級管理員
    • root用戶對系統有完全控制的許可權
    • 對系統的損害會無限大
    • 在工作中,如果沒有特殊的必要,儘量不要使用root
  • 普通用戶
    • 許可權有限
    • 對系統的損害會小

終端

  • 分類
    • 設備終端
    • 物理終端
    • 虛擬終端 ctrl+alt+f[1-6] /dev/tty#
    • 圖形終端 /dev/tty7
    • 串列終端
    • 偽終端 通過ssh遠程連接的 /dev/pts/#
    • 查看終端的命令 tty
    [root@localhost ~]# echo $SHELL
    /bin/bash
    • 查看ip地址的命令 ip addr (ip a)
    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:ec:6b:40 brd ff:ff:ff:ff:ff:ff
        inet 192.168.234.129/24 brd 192.168.234.255 scope global noprefixroute ens33
           valid_lft forever preferred_lft forever
        inet6 fe80::bce1:f5a5:d3b0:55a8/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever
    [root@localhost ~]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 00:0c:29:ec:6b:40 brd ff:ff:ff:ff:ff:ff
        inet 192.168.234.129/24 brd 192.168.234.255 scope global noprefixroute ens33
           valid_lft forever preferred_lft forever
        inet6 fe80::bce1:f5a5:d3b0:55a8/64 scope link noprefixroute 
           valid_lft forever preferred_lft forever

互動式介面

  • 啟動終端以後,在終端設備上附加的一個應用程式
    • GUI(桌面)
    • CLI command line (命令行)
      • powershell (win10)
      • sh
      • bash(linux,mac預設的程式)
      • zsh
      • csh
      • tcsh

bash

bash是linux系統的用戶界面,提供了用戶和操作系統之間的交互,它接收用戶的輸入,讓它送給操作系統執行(命令行操作)

  • 目前是linux和mac上預設的 shell(一種命令語言)
  • centos預設使用
  • 顯示系統當前使用的shell echo $SHELL
[root@localhost ~]# echo $SHELL
/bin/bash
  • 查看系統內可以使用的shell cat /etc/shells
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
  • ctrl +d 快速終止當前的連接
  • 切換shell chsh -s /bin/shell(shell可修改如 :chsh -s /bin/zsh)

修改ssh連接慢的步驟

echo "UseDNS no" >> /etc/ssh/sshd_config
systemctl restart sshd

命令提示符

[root@localhost ~]#  
管理員是#   (命令提示符)
普通用戶時$

顯示提示符格式

[root@localhost ~]# echo $PS1
[\u@\h \W]\$
\u 代表當前登錄的用戶
\h 代表當前主機的主機名
\W 代表當前的目錄
0表示預設字體,1表示加粗,4在字體下方加下劃線 5 閃爍 7 代表突出顯示
31-37 字體顏色
40-47 表示背景顏色
echo 'PS1="\[\e[1;35mm\][\u@\h \W]\\$\[\e[0m\]"' >> /etc/profile.d/ps.sh #永久生效

命令

執行命令: 輸入命令回車

內部命令:shell 自帶的命令

  • help 顯示所有的內部命令

外部命令:第三方提供的命令

查看命令的類型: type

[root@localhost ~]#type echo
echo is a shell builtin
[root@localhost ~]#type top
top is /usr/bin/top

別名

  • 查看當前所有的別名 alias
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
  • 自定別名 alias cdetc='cd /etc'
  • 取消別名 unalias cdetc
  • 設置別名只對當前的終端有效
  • 設置所有用戶都可以用 /etc/bashrc
  • 只對當前用戶有效 ~/.bashrc
  • 執行本身命令
    • \command
    • "command"
    • 'command'
    • path

命令格式

command [options.....] [args...]

command 命令本身

options:啟動或者關閉命令裡面的某些功能

  • 長選項:--help --color
  • 短選項: -i -l

args:命令的作用體,一般情況下是目錄或者文件,用戶名等等

註意:

  • 短選項是可以合併
  • 空格隔開
  • ctrl+c 結束命令的執行
  • 在同一行執行多個命令用;隔開
  • 一個命令可以在多行顯示用\連接

獲取命令的幫助信息

內部命令:

  • help command
[root@localhost ~]# help command
command: command [-pVv] command [arg ...]
    Execute a simple command or display information about commands.
    
    Runs COMMAND with ARGS suppressing  shell function lookup, or display
    information about the specified COMMANDs.  Can be used to invoke commands
    on disk when a function with the same name exists.
    
    Options:
      -p        use a default value for PATH that is guaranteed to find all of
        the standard utilities
      -v        print a description of COMMAND similar to the `type' builtin
      -V        print a more verbose description of each COMMAND
    
    Exit Status:
    Returns exit status of COMMAND, or failure if COMMAND is not found.
  • man bash 執行這條命令,會得到所有內建命令列表及使用方法
Linux系統中的命令可分為內部命令和外部命令。內部命令,又稱為內建命令(builtin)。怎麼區分內部命令和外部命令了? 輸入man bash命令,就可查看所有的內部命令
BASH(1)                         General Commands Manual                        BASH(1)

NAME
       bash - GNU Bourne-Again SHell

SYNOPSIS
       bash [options] [file]

COPYRIGHT
       Bash is Copyright (C) 1989-2011 by the Free Software Foundation, Inc.

DESCRIPTION
       Bash  is  an  sh-compatible command language interpreter that executes commands
       read from the standard input or from a file.   Bash  also  incorporates  useful
       features from the Korn and C shells (ksh and csh).

       Bash  is  intended to be a conformant implementation of the Shell and Utilities
       portion of the IEEE POSIX specification (IEEE Standard 1003.1).   Bash  can  be
       configured to be POSIX-conformant by default.

OPTIONS
       All of the  single-character shell options documented in the description of the
       set builtin command can be used as options when the shell is invoked.  In addi‐
       tion, bash interprets the following options when it is invoked:

       -c string If  the -c option is present, then commands are read from string.  If
                 there are arguments after the string, they are assigned to the  posi‐
                 tional parameters, starting with $0.
       -i        If the -i option is present, the shell is interactive.
       -l        Make bash act as if it had been invoked as a login shell (see INVOCA‐
                 TION below).
       -r        If the -r option  is  present,  the  shell  becomes  restricted  (see Manual pape bash(1) line 1 (press h for help or q to quiit)

外部命令:

  • command -h
  • command --help
  • man coomand
  • 官方文檔
[root@localhost ~]#python --help
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...
[] 可選項
<> 表示變化的數據
... 表示列表
a|b|c 或者
-abc 表示-a -b -c
{} 表示分組

man

 1   Executable programs or shell commands  #用戶命令
 2   System calls (functions provided by the kernel) # 系統調用
 3   Library calls (functions within program libraries) # 庫的調用
 4   Special files (usually found in /dev) #設備文件與特殊文件
 5   File formats and conventions eg /etc/passwd # 配置文件格式
 6   Games #游戲
 7   Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) # 雜項
 8   System administration commands (usually only for root) # 管理類的命令
 9   Kernel routines [Non standard] # 內核的API
 退出q
 翻屏 空格
 翻行 回車
 man 章節 passwd

bash 快捷鍵

  • ctrl+l 清屏 相當於clear
  • ctrl+o 執行當前的命令,並顯示當前的命令
  • ctrl+s 鎖屏
  • ctrl+q 解鎖
  • ctrl+c 終止命令
  • ctrl+z 掛起命令
  • ctrl+a 游標移動到行首,相當於Home
  • ctrl+e 游標移動到行位,相當於End
  • ctrl+xx 在開頭和當前游標所在位置跳轉
  • ctrl+k 刪除游標後的文字
  • ctrl+u 刪除游標前的文字
  • alt+r 刪除正行

tab 鍵

  • 命令補全
    • 內部命令
    • 外部命令:根據環境變數定義的路徑,從前往後依次查找,自動匹配第一個查找到的內容
    • 如果用戶給的命令只有唯一一個匹配,則直接補全
    • 如果有多個匹配,則需要在按tab鍵將所有匹配到的結果展示出來
  • 目錄補全
    • 把用戶給定的字元作為文件的開頭,如果有唯一一個匹配則直接補全
    • 如果有多個匹配,則需要再次按tab鍵把所有的匹配到的結果展示出來

引號

[root@localhost ~]#name=alexdsb
[root@localhost ~]#echo "$name"
alexdsb
[root@localhost ~]#echo '$name'
$name
[root@localhost ~]#echo "wo shi `tty`"
wo shi /dev/pts/2
[root@localhost ~]#tty
/dev/pts/2
[root@localhost ~]#echo "wo shi $(tty)"
wo shi /dev/pts/2

命令歷史

  • 可以使用上下箭頭來查找之前執行過的命令
  • 存放文件是~/.bash_history
  • 執行的命令是history
  • 執行上一條命令
    • 上箭頭
    • !!
    • !-1
    • ctrl+p 回車
  • 調用上一條命令的最後一個值 esc .
  • !# 指定第多少條命令
  • !-# 指定倒數第#條命令
  • !string 用來最近一次匹配到的命令(從下往上)
  • ctrl+r 搜索命令
  • ctrl+g 取消搜索
  • # 顯示最後#條命令

命令展開

touch file{1..20} #創建20個文件
seq 0 2 10
echo file{1..20..2}

echo 回顯

echo -e 'dadasda\ndasdasd'
echo -e '\a' #播放聲音

查看用戶登錄信息

[root@localhost ~]#whoami # 顯示當前的登錄用戶
root
[root@localhost ~]#who am i #顯示當前登錄用戶的詳細信息
root     pts/2        2019-08-22 15:54 (192.168.21.1)
[root@localhost ~]#w 顯示所有的用戶並顯示執行的命令
 16:27:54 up  5:19,  9 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty2                      11:37    4:48m  0.02s  0.02s -bash
wu       tty3                      11:39    4:48m  0.02s  0.02s -bash
root     :0       :0               11:30   ?xdm?   1:28   0.36s /usr/libexec/gnome-session-binary --session gnome-classi
root     pts/0    :0               11:35    4:43m  0.03s  0.03s bash
root     pts/1    192.168.21.1     12:11    4:03m  0.02s  0.02s -bash
root     pts/2    192.168.21.1     15:54    2.00s  0.18s  0.03s w
wu       pts/3    192.168.21.1     12:27    2:26   0.05s  0.05s -bash

date

[root@localhost ~]#date  顯示當前的時間
Thu Aug 22 16:30:06 CST 2019 
Usage: date [OPTION]... [+FORMAT]
  or:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
[root@localhost ~]#date 010923102018 #修改時間
Tue Jan  9 23:10:00 CST 2018
[root@localhost ~]#date
Tue Jan  9 23:10:18 CST 2018
[root@localhost ~]#ntpdate time.windows.com #同步網路伺服器時間
unix元年 1970-01-01
[root@localhost ~]#date
Thu Aug 22 16:35:44 CST 2019
[root@localhost ~]#date
Thu Aug 22 16:35:47 CST 2019
[root@localhost ~]#date
Thu Aug 22 16:35:48 CST 2019
[root@localhost ~]#date +%a
Thu
[root@localhost ~]#date +%A
Thursday
[root@localhost ~]#date +%F
2019-08-22
[root@localhost ~]#date +%H
16
[root@localhost ~]#date +%I
04
[root@localhost ~]#date +%m
08
[root@localhost ~]#date +%d
22
[root@localhost ~]#date +%M
38
[root@localhost ~]#date +%h
Aug
[root@localhost ~]#date +%c
Thu 22 Aug 2019 04:38:42 PM CST
[root@localhost ~]#date +%T
16:39:01
[root@localhost ~]#date +%y
19
[root@localhost ~]#date +%Y
2019
[root@localhost ~]#date +%Y/m/%d
2019/m/22
[root@localhost ~]#date +%Y/%m/%d
2019/08/22
[root@localhost ~]#date +%s
1566463197
[root@localhost ~]#date +%W
33

顯示時區

[root@localhost ~]#timedatectl 
      Local time: Thu 2019-08-22 16:42:43 CST
  Universal time: Thu 2019-08-22 08:42:43 UTC
        RTC time: Thu 2019-08-22 08:42:43
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
[root@localhost ~]#timedatectl set-timezone Asia/Tokyo

日曆

  • cal

[root@localhost ~]# cal
     August 2019    
Su Mo Tu We Th Fr Sa
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
  • cal -y 一年的日曆

[root@localhost ~]# cal -y
                               2019                               

       January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2                   1  2
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    3  4  5  6  7  8  9
13 14 15 16 17 18 19   10 11 12 13 14 15 16   10 11 12 13 14 15 16
20 21 22 23 24 25 26   17 18 19 20 21 22 23   17 18 19 20 21 22 23
27 28 29 30 31         24 25 26 27 28         24 25 26 27 28 29 30
                                              31
        April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6             1  2  3  4                      1
 7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30
        July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                1  2  3    1  2  3  4  5  6  7
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30

       October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    8  9 10 11 12 13 14
13 14 15 16 17 18 19   10 11 12 13 14 15 16   15 16 17 18 19 20 21
20 21 22 23 24 25 26   17 18 19 20 21 22 23   22 23 24 25 26 27 28
27 28 29 30 31         24 25 26 27 28 29 30   29 30 31
  • cal # 顯示某一年的日曆

[root@localhost ~]# cal 2008
                               2008                               

       January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2                      1
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    2  3  4  5  6  7  8
13 14 15 16 17 18 19   10 11 12 13 14 15 16    9 10 11 12 13 14 15
20 21 22 23 24 25 26   17 18 19 20 21 22 23   16 17 18 19 20 21 22
27 28 29 30 31         24 25 26 27 28 29      23 24 25 26 27 28 29
                                              30 31
        April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                1  2  3    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    4  5  6  7  8  9 10    8  9 10 11 12 13 14
13 14 15 16 17 18 19   11 12 13 14 15 16 17   15 16 17 18 19 20 21
20 21 22 23 24 25 26   18 19 20 21 22 23 24   22 23 24 25 26 27 28
27 28 29 30            25 26 27 28 29 30 31   29 30

        July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2       1  2  3  4  5  6
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    7  8  9 10 11 12 13
13 14 15 16 17 18 19   10 11 12 13 14 15 16   14 15 16 17 18 19 20
20 21 22 23 24 25 26   17 18 19 20 21 22 23   21 22 23 24 25 26 27
27 28 29 30 31         24 25 26 27 28 29 30   28 29 30
                       31
       October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
          1  2  3  4                      1       1  2  3  4  5  6
 5  6  7  8  9 10 11    2  3  4  5  6  7  8    7  8  9 10 11 12 13
12 13 14 15 16 17 18    9 10 11 12 13 14 15   14 15 16 17 18 19 20
19 20 21 22 23 24 25   16 17 18 19 20 21 22   21 22 23 24 25 26 27
26 27 28 29 30 31      23 24 25 26 27 28 29   28 29 30 31
                       30

關機重啟

  • shutdown 預設1分鐘之後關機
    • shutdown -c 取消關機
  • shutdow -r 重啟
  • TIME
    • now 立即
    • +n n分鐘之後
    • hh:mm 指定時間
  • 關機命令
    • poweroff
    • halt
    • init 0
  • 重啟
    • reboot
      • -f 強制
      • -p 關機
    • init 6

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

-Advertisement-
Play Games
更多相關文章
  • sort -f :忽略大小寫的差異,例如 A 與 a 視為編碼相同; -b :忽略最前面的空格符部分; -M :以月份的名字來排序,例如 JAN, DEC 等等的排序方法; -n :使用『純數字』進行排序(預設是以文字型態來排序的); -r :反向排序; -u :就是 uniq ,相同... ...
  • [tcp] nginx實現反向代理 nginx常見的代理模型 正向代理 反向代理 區別 1.區別在於形式上服務的”對象”不一樣 2.正向代理代理的對象是客戶端,為客戶端服務 3.反向代理代理的對象是服務端,為服務端服務 代理支持的協議 反向代理支持的協議 模塊總結 反向代理模式與Nginx代理模塊總 ...
  • 小結 部署web01,web02,nfs,db01,backup,搭建wordpress,WeCenter,實現共用,熱備,實時備份 1)在web01和web02上安裝nginx和php 2)創建www用戶 3)修改nginx和PHP啟動用戶 4)編輯nginx配置文件 5)創建站點目錄並授權 6) ...
  • 一般來說著名的linux系統基本上分兩大類: RedHat系列:Redhat、Centos、Fedora等 Debian系列:Debian、Ubuntu等 RedHat 系列 常見的安裝包格式 rpm包,安裝rpm包的命令是“rpm -參數” 包管理工具 yum 支持tar包 Debian系列 yu ...
  • Vmware啟動ubuntu 出現錯誤“以獨占方式鎖定此配置文件失敗。 可能其它正在運行VMware進程在使用此配置文件”。 在網上查找了很多方法,法(1)試過在啟動任務管理器中“結束與VMware有關的進程”, 法(2)刪除擴展名為.lck的臨時文件和文件夾,等等。以失敗告終。 之後又出現新的錯誤 ...
  • 剛入職實習,第四天了,昨晚老大安排我在公司機器上裝個JProfiler看一情況。 然後網上都是什麼跟tomcat一起使用的,所以折騰了很久才搞出來。 我這裡沒用什麼伺服器,因為公司用的是Play!框架。 1.JProfirler 這個就不多介紹了,網上有,本篇文章主要是記錄安裝使用的過程。 2.Wi ...
  • 下載Nginx wget http://nginx.org/download/nginx-1.12.2.tar.gz 一、安裝nginx時必須先安裝相應的編譯工具 [root@xuegod63 ~]#yum -y install gcc gcc-c++ autoconf automake gcc c ...
  • WEB監控手段: 1、埠 本地: ss 、 netstat 、lsof ss -ntlp|grep 80|wc -l (大於等於1) netstat -natlp |grep 80|wc -l (大於等於1) lsof -i:80 |wc -l (大於等於1) 遠程: telnet、 nmap、  ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...