Linux基礎介紹【第三篇】

来源:http://www.cnblogs.com/yinshoucheng-golden/archive/2016/12/09/6149556.html
-Advertisement-
Play Games

更改SSH服務端遠程登錄的配置 windows服務端的預設遠程管理埠是3389,管理員用戶是administrator,普通用戶是guest。Linux的管理用戶是root,普通用戶預設有很多個,遠程連接預設埠是22。 修改配置文件/etc/ssh/sshd_config,13行Port 22(... ...


更改SSH服務端遠程登錄的配置

windows服務端的預設遠程管理埠是3389,管理員用戶是administrator,普通用戶是guest。Linux的管理用戶是root,普通用戶預設有很多個,遠程連接預設埠是22。

修改配置文件/etc/ssh/sshd_config,13行Port 22(預設埠22),改為Port 52113(範圍0——65535);15行ListenAddress 0.0.0.0 (監聽ip地址),改為ListenAddress 192.168.131.1;43行PermitRootLogion yes(root用戶遠程連接),改為PermitRootLogion no;122行UseDNS yes(DNS解析),改為UseDNS no;GSSAPIAuthentication yes(SSH連接慢),改為GSSAPIAuthentication no;

cat –n:查看行號

vim à:set nu à顯示行號

diff比較2個文件的不同之處。

[root@oldboy66 ssh]# diff sshd_config sshd_config.oldboy.20161204

vimdiff以高亮方式比較2個文件的不同之處。

[root@oldboy66 ssh]# vimdiff sshd_config sshd_config.oldboy.20161204

sed替換:

  1. [root@oldboy66 ssh]# sed -ir '13 iPort 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthenication no' sshd_config

重啟生效:/etc/init.d/sshd restart(可能影響用戶)或/etc/init.d/sshd reload(平滑重啟)。

查看埠:

netstat -lntup|grep sshd

利用sudo控制用戶對系統命令的使用許可權

管理sudo命令:

visudo或vi /etc/sudoers,visudo更好。vi命令模式直接輸入行數+gg到固定的行數,顯示行號:set nu,yy(複製)+p(粘貼)複製當前行到下一行,shift+a到結尾處於編輯狀態。

98+gg: 98 root ALL=(ALL) ALL

給oldboy授予root許可權:

oldboy ALL=(ALL) ALL

oldboy ALL=(ALL) NOPASSWD:ALL(不提示輸入密碼)

用oldboy添加一個用戶oldgirl:

  1. [oldboy@oldboy66 ~]$ sudo useradd oldgirl
  2. #輸入oldboy密碼
  3. [sudo] password for oldboy:
  4. #添加成功
  5. [oldboy@oldboy66 ~]$ tail -1 /etc/passwd
  6. oldgirl:x:501:501::/home/oldgirl:/bin/bash

給oldboy授予固定許可權:

oldboy ALL=(ALL) /bin/touch,/usr/sbin/useradd

註意:需要命令的全路徑,查看命令全路徑which 命令,例如:

  1. [root@oldboy66 ~]# which useradd
  2. /usr/sbin/useradd
  3. [root@oldboy66 ~]# which touch
  4. /bin/touch

find查找:find / -type f -name "useradd"

whereis查找:whereis -b useradd

locate查找:locate useradd

環境變數:

PATH系統路徑變數,執行ls、cp等非內置命令時,系統會查找PATH里對應的路徑是否存在,如果沒有就報告找不到該命令。當執行which cp來查看命令所在路徑的時候,也就是從PATH變數去搜索。

PATH變數的臨時修改 export PATH="/tmp:$PATH",永久生效將命令放到/etc/profile下,使用source /etc/profile 使得立刻生效。

Linux中文顯示設置

查看當前字元編碼:

  1. [root@oldboy66 tmp]# cat /etc/sysconfig/i18n
  2. LANG="en_US.UTF-8"
  3. SYSFONT="latarcyrheb-sun16"

操作前先進行備份:cp /etc/sysconfig/i18n /etc/sysconfig/i18n.oldboy.20161205

  1. [root@oldboy66 sysconfig]# sed -i 's#LANG="en_US.UTF-8"#LANG="zh_CN.UTF-8"#g' /etc/sysconfig/i18n
  2. [root@oldboy66 sysconfig]# cat /etc/sysconfig/i18n
  3. LANG="zh_CN.UTF-8"
  4. SYSFONT="latarcyrheb-sun16"
  5. #立刻生效
  6. [root@oldboy66 sysconfig]# source /etc/sysconfig/i18n
  7. [root@oldboy66 sysconfig]# echo $LANG
  8. zh_CN.UTF-8

註意:客戶端字元集需改為UTF-8。

設置Linux伺服器時間同步

顯示時間:date

修改時間:date –s "時間" àhwclock

顯示日曆:cal

同步互聯網時間:

  1. [root@oldboy66 tmp]# /usr/sbin/ntpdate time.nist.gov

定時任務執行同步:

  1. #每5分鐘執行一次同步
  2. [root@oldboy66 tmp]# echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1" >>/var/spool/cron/root
  3. [root@oldboy66 tmp]# crontab -l
  4. */5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1

下麵三種方法是等價的:

/dev/null 空設備(黑洞)

錯誤和正確都輸出到/dev/null:

1、1>/dev/null 2>/dev/null

2、1>/dev/null 2&1

3、&>/dev/null

時間同步架構

小規模時間同步架構:

大規模時間同步架構:

設置Linux預設歷史記錄數

命令如下,註意此時的配置僅臨時生效。

  1. #設置歷史記錄數5
  2. [root@oldboy66 ~]# HISTSIZE=5

把配置參數放入配置文件,使得永久生效。

  1. #設置終端超時時間
  2. [root@oldboy66 ~]# echo 'TMOUT=300' >>/etc/profile
  3. #設置歷史記錄數
  4. [root@oldboy66 ~]# echo 'HISTSIZE=5' >>/etc/profile
  5. #設置文件記錄數cat ~/.bash_history
  6. [root@oldboy66 ~]# echo 'HISTFILESIZE=5' >>/etc/profile

TMOUT=10:連接的超時時間控制變數。

HISTSIZE=5:命令行的歷史記錄數量變數。

HISTFILESIZE=10:歷史記錄文件的命令行數量變數(~/.bash_history)。

歷史記錄清空:history -c。

刪除指定歷史記錄:history -d 10(刪除10號歷史記錄)。

加大伺服器文件描述符

文件描述符的概念

1、表示形式為整數數字(0——65535)。

2、進程使用的時候會占用文件描述符(標識打開的文件)。

查看預設文件描述符

  1. [root@oldboy66 ~]# ulimit -n
  2. 1024

3、調整文件描述符

方法一:

直接把ulimit -SHn 65535命令加入到/etc/rc.local,然後每次開機啟動的時候生效。

  1. #臨時生效
  2. [root@oldboy66 ~]# ulimit -SHn 65535
  3. [root@oldboy66 ~]# ulimit -n
  4. 65535

寫入rc.local:

  1. cat >>/etc/rc.local<<EOF
  2. ulimit -HSn 65535
  3. ulimit -s 65535
  4. EOF

方法二:

在/etc/sercurity/limits.conf裡面配置。

  1. [root@oldboy66 ~]# echo '* - nofile 65535' >>/etc/security/limits.conf
  2. [root@oldboy66 ~]# tail -1 /etc/security/limits.conf
  3. * - nofile 65536

調整內核參數文件/etc/sysctl.conf

vim編輯:shift+g切換到文件結尾

優化參數:

  1. net.ipv4.tcp_fin_timeout = 2
  2. net.ipv4.tcp_tw_reuce = 1
  3. net.ipv4.tcp_tw_recycle = 1
  4. net.ipv4.tcp_syncookies = 1
  5. net.ipv4.tcp_keepalive_time = 600
  6. net.ipv4.ip_local_port_range = 4000 65000
  7. net.ipv4.tcp_max_syn_backlog = 16384
  8. net.ipv4.tcp_max_tw_buckets = 36000
  9. net.ipv4.route.gc_timeout = 100
  10. net.ipv4.tcp_syn_retries = 1
  11. net.ipv4.tcp_synack_retries = 1
  12. net.core.somaxconn = 16384
  13. net.core.netdev_max_backlog = 16384
  14. net.ipv4.tcp_max_orphans = 16384
  15. #以下參數是對iptables防火牆的優化,防火牆不開會提示,可以忽略不理
  16. #net.nf_conntrack_max = 25000000
  17. #net.netfilter.nf_conntrack_tcp_timeout_established = 180
  18. #net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
  19. #net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
  20. #net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

執行生效:sysctl -p

查看網路狀態:netstat -an

隱藏Linux版本信息

控制Linux顯示版本信息的文件

  1. [root@oldboy66 ~]# cat /etc/issue
  2. CentOS release 6.6 (Final)
  3. Kernel \r on an \m
  4.  
  5. [root@oldboy66 ~]# cat /etc/issue.net
  6. CentOS release 6.6 (Final)
  7. Kernel \r on an \m

清空這個兩個文件就可以了。

鎖定關鍵系統文件,防止提權被篡改

命令:

  1. [root@oldboy66 ~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

解除鎖定:chattr -i

為grub菜單加密碼

為grub菜單加密碼的目的是防止他人修改grub做內核等啟動設置。

1、先用/sbin/grub-md5-crypt產生一個MD5密碼串。

  1. [root@oldboy66 ~]# /sbin/grub-md5-crypt
  2. Password:
  3. Retype password:
  4. $1$T2zU4/$KmlABHIkQGczWjh1DdwWU.

2、修改grub.conf文件添加

password --md5 $1$T2zU4/$KmlABHIkQGczWjh1DdwWU.。

  1. [root@oldboy66 ~]# vim /etc/grub.conf
  2.   1 # grub.conf generated by anaconda
  3.   2 #
  4.   3 # Note that you do not have to rerun grub after making changes
  5.      to this file
  6.   4 # NOTICE: You have a /boot partition. This means that
  7.   5 # all kernel and initrd paths are relative to /boot/,
  8.      eg.
  9.   6 # root (hd0,0)
  10.   7 # kernel /vmlinuz-version ro root=/dev/sda3
  11.   8 # initrd /initrd-[generic-]version.img
  12.   9 #boot=/dev/sda
  13.  10 default=0
  14.  11 timeout=5
  15.  12 splashimage=(hd0,0)/grub/splash.xpm.gz
  16.  13 hiddenmenu
  17.  14 title CentOS 6 (2.6.32-504.el6.x86_64)
  18.  15 root (hd0,0)
  19.  16 kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=e89
  20.     62baa-4051-4832-b0ee-e27aa74f6374 rd_NO_LUKS rd_NO_LVM LANG=en
  21.     _US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto
  22.      KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
  23.  17 initrd /initramfs-2.6.32-504.el6.x86_64.img

註意:password要加在splashimage和title之間,否則可能不生效。

禁止Linux系統被ping

命令:

  1. [root@oldboy66 ~]# echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
  2. #立刻生效
  3. [root@oldboy66 ~]# sysctl -p

升級具有典型漏洞的軟體版本

首先查看相關軟體的版本號

  1. [root@oldboy66 ~]# rpm -qa openssl openssh bash
  2. openssl-1.0.1e-30.el6.x86_64
  3. bash-4.1.2-29.el6.x86_64
  4. openssh-5.3p1-104.el6.x86_64

執行升級已知漏洞的軟體版本到最新。

  1. [root@oldboy66 ~]# yum install openssl openssh bash

配置yum源

查看當前yum源

  1. [root@oldboy66 ~]# cat /etc/yum.repos.d/CentOS-Base.repo

配置阿裡雲的yum源

  1. wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

wget:下載,wget http://url;-O:下載到指定路徑並改名;--spider:爬蟲,檢查網站是不是好的,不會下載只是檢查;-T(--timeout):指定超時時間(--timeout=seconds);--tries:指定重試的次數(--tries=2);-q(--quiet):後臺下載,關閉輸出;

總結:

1、不用root管理,以普通用戶的名義通過sudo授權管理。

2、更改預設的遠程連接SSH服務埠,禁止root用戶遠程連接,甚至要更改為只監聽內網IP。

3、定時自動更新伺服器時間,使其和互聯網時間同步。

4、配置yum更新域,從國內更新源下載安裝軟體包。

5、關閉SELinux及iptables(在生產場景中,如果有外部IP一般要打開)

6、調整文件描述符的數量,進程及文件的打開都會消耗文件描述符。

7、定時自動清理郵件目錄垃圾文件,防止inodes節點被占滿。

8、精簡並保留必要的開機自啟動服務(如crond、sshd、network、rsyslog、stsstat)。

9、Linux內核參數優化/etc/sysctl.conf,執行sysctl -p 生效。

10、更改字元集,使其支持中文。

11、鎖定關鍵系統文件如/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow、/etc/inittab,處理後把chattr、lasttr改名。

12、清空/etc/issue、/etc/issue.net,去除系統及內核版本登錄前的屏幕顯示。

13、清楚多餘的系統虛擬賬號。

14、為grub菜單加密碼。

15、禁止被ping。

16、升級漏洞軟體。

 

less:按屏(空格、page up/page down)或按行(回車)查看文件。

more:按屏(空格)或按行(回車)查看文件,不能向上翻。

Linux目錄結構

linux只有一個頂點/(根),其他所有目錄都在根下。根下麵的所有目錄是一個有層次的樹狀結構,像一顆倒掛著的大樹。

  1. [root@oldboy66 ~]# tree -L 1 /
  2. /
  3. ├── bin
  4. ├── boot
  5. ├── dev
  6. ├── etc
  7. ├── home
  8. ├── lib
  9. ├── lib64
  10. ├── lost+found
  11. ├── media
  12. ├── mnt
  13. ├── oldboy
  14. ├── opt
  15. ├── proc
  16. ├── root
  17. ├── sbin
  18. ├── selinux
  19. ├── srv
  20. ├── sys
  21. ├── tmp
  22. ├── usr
  23. └── var

tree:顯示目錄結構,-L:指定顯示多少層;-d:只顯示目錄。

linux的目錄結構和磁碟分區是分離的,可以自由組合。

/

├── bin    àEssential command binaries

├── boot    àStatic files of the boot loader

├── dev    àDevice files

├── etc    àHost-specific system configuration

├── home    àUser home directories(optional)

├── lib    àEssential shared libraries and kernel modules

├── lib64

├── lost+found

├── media

├── mnt    àMount point for mounting a filesystem temporarily

├── oldboy

├── opt    àAdd-on application software packages

├── proc    à進程信息及內核信息(cpu、硬碟分區、記憶體信息等)

├── root    àHome directory for the root user(optional)

├── sbin    àEssential system binaries

├── selinux

├── srv

├── sys

├── tmp    àTemporary files

├── usr    àSecondary hierarchy

└── var    àVariable data

cat /proc/meminfo    à記憶體信息

cat /proc/cpuinfo àcpu信息

cat /proc/mounts     à掛載信息

cat /proc/loadavg à負載(系統繁忙程度)

小結:

1、linux系統的所有目錄時一個有層次的倒著的樹狀目錄結構,/根是所有目錄的起點。

2、不同的目錄數據可以跨越不同的磁碟分區或不同的磁碟設備。

/dev/ 設備目錄

/etc/ 系統配置即服務配置文件、啟動命令的目錄

/proc 顯示內核及進程信息的虛擬文件系統

/tmp 臨時文件目錄

/home 普通用戶家目錄

/root 超級管理員的家目錄

/var 變化的目錄,一般是日誌文件,cache的目錄

/usr 用戶程式及數據、幫助文件、二進位命令等的目錄

/bin、/sbin、/usr/sbin 用戶命令的目錄

Linux重要目錄路徑

/etc/sysconfig/network-scripts/ifcfg-eth0:配置網路地址及GW等。

  1. [root@oldboy66 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
  2. DEVICE=eth0 #物理設備名,eth1表示第二塊網卡
  3. HWADDR=00:0c:29:a6:d7:cb #網卡的MAC地址,48位(克隆後要刪除)
  4. TYPE=Ethernet #乙太網
  5. UUID=cd11ee91-579f-43be-9074-a14cabe2e0c6 #uuid唯一用戶標識(克隆後要刪除)
  6. ONBOOT=yes #控制網卡是不是開機啟動
  7. NM_CONTROLLED=yes
  8. BOOTPROTO=dhcp #proto值:none,引導時不使用協議;static,靜態分配地址;bootp,使用BOOTP協議;dhcp,使用DHCP協議
  9. DNS2=202.106.0.20 #DNS把baidu.com變成baidu伺服器IP。DNS功能變數名稱和IP的解析工具
  10. DNS1=8.8.8.8
  11. USERCTL=no
  12. PEERDNS=yes
  13. IPV6INIT=no

IPADDR=10.0.0.7 #addr是IP地址

NETMASK=255.255.255.0 #子網掩碼,劃分網路位和主機位10.0.0.0/24

GATEWAY=10.0.0.254 #網關地址,路由器的地址

修改配置生效命令:

  1. [root@oldboy66 ~]# /etc/init.d/network restart #ONBOOT=yes
  2. [root@oldboy66 ~]# ifdown eth0 && ifup eth0 #關閉和啟動

ifup:啟動

ifdown:關閉

/etc/resolv.conf:DNS管理

  1. [root@oldboy66 ~]# cat /etc/resolv.conf
  2. ; generated by /sbin/dhclient-script
  3. search localdomain
  4. nameserver 8.8.8.8
  5. nameserver 202.106.0.20

小結:

1、客戶端DNS可以在網卡配置文件里設置(ifcfg-eth0)。

2、客戶端DNS也可以在/etc/resolv.conf里設置。

3、網卡裡的設置DNS優先於/etc/resolv.conf。

/etc/hosts:設定用戶IP與功能變數名稱的對應解析表

對應windows的文件C:\Windows\System32\drivers\etc\hosts。

  1. [root@oldboy66 ~]# cat /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 192.168.131.128 oldboy66

hosts在企業里的作用:

1、開發、產品、測試等人員,用於通過正式的功能變數名稱測試產品。

2、伺服器之間的調用可以用功能變數名稱(內部的DNS),方便遷移。

/etc/sysconfig/network:修改機器名及網卡啟動,網關等配置。

  1. [root@oldboy66 ~]# cat /etc/sysconfig/network
  2. NETWORKING=yes
  3. HOSTNAME=oldboy66

更改主機名:

1、vi /etc/sysconfig/network

2、hostname 主機名

同時修改。

/etc/fstab:設置文件系統掛載信息的文件,使得開機能夠自動掛載磁碟分區

  1. [root@oldboy66 ~]# df –h #查看磁碟掛載信息
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/sda3 7.1G 1.4G 5.4G 21% /
  4. tmpfs 497M 0 497M 0% /dev/shm
  5. /dev/sda1 190M 27M 153M 15% /boot

 

  1. [root@oldboy66 ~]# cat /etc/fstab
  2. UUID=e8962baa-4051-4832-b0ee-e27aa74f6374 / ext4 defaults 1 1
  3. UUID=9782b8eb-4b2d-4919-b3b7-14ee46d04ae8 /boot ext4 defaults 1 2
  4. UUID=60b51f07-216b-4e38-9eee-d3de8d897e01 swap swap defaults 0 0
  5. tmpfs /dev/shm tmpfs defaults 0 0 #掛載的設備    掛載點    FS類型    參數    備份    檢查
  6. devpts /dev/pts devpts gid=5,mode=620 0 0
  7. sysfs /sys sysfs defaults 0 0
  8. proc /proc proc defaults 0 0
  9. [root@oldboy66 ~]#

fsck:磁碟檢查(不要檢查好磁碟),卸載的狀態

掛載方式:

1、命令掛載

mount -t ext4 -o noexec /dev/sda1 /mnt

2、/etc/fstab

 

測試手動掛載:

1、創建一個虛擬的塊設備。

dd if=/dev/zero of=/dev/sdb1 bs=4906 count=100

2、格式化

mkfs.ext4 /dev/sdb1

3、掛載

mount -t ext4 -o loop,noatime,noexec /dev/sda1 /mnt

4、查看

df -h

第一列掛載的設備可以是設備名或UUID、磁碟標簽。

fstab出問題,修複方式:

1、開機提示輸入密碼修複。

2、救援模式rescue修改/etc/fatab只讀狀態,mount -o rw,remount /。

/etc/rc.local:用於存放開機自啟動程式命令的文件

讓一個程式開機啟動:

1、chkconfig(/etc/init.d/sshd)。

2、放入/etc/rc.local。

選擇建議:/etc/rc.local,工作中把/etc/rc.local作為伺服器檔案文件,所有程式開機啟動放入/etc/rc.local並加註釋。

rc.local與fstab區別:rc.local在系統啟動完成最後載入。

NFS網路文件系統掛載是,網卡還沒啟動,就已經載入fstab。(mount -t nfs 10.0.0.7:/data /mnt)

/etc/inittab:設定系統啟動時init進程將把系統設置成什麼樣的runlevel運行級別及載入相關的級別對應啟動文件設置

Linux啟動過程:

1、開機BIOS自檢

2、MBR引導

硬碟0柱面0磁碟1扇區的前446byte。

3、grub引導菜單

cat /etc/grub.conf

4、載入內核kernel

5、啟動init進程

ps -ef|grep init

/etc/init.d

/etc/profile:系統全局環境變數永久生效的配置文件

/etc/profile.d:登錄後執行的腳本所在地

/etc/motd:登錄後顯示的字元串

/etc/issue:記錄用戶登錄前顯示的系統版本等信息

  1. [root@oldboy66 ~]# cat -n /etc/issue
  2.      1 CentOS release 6.6 (Final)
  3.      2 Kernel \r on an \m

/etc/group:設定用戶的組名與相關信息

/etc/passwd:賬號信息文件

/etc/shadow:密碼信息文件

/etc/gshadow:組密碼信息文件

/etc/sudoers:可以執行使用sudo命令的配置文件

visudo -c:檢查語法

yum remove tree -y:yum刪除(會刪除依賴,慎用)

/var/log/messages:系統日誌,自動輪詢按周(rsyslog)

/var/log/secure:安全日誌,SSH連接日誌

dmesg:內核列印的錯誤信息,例如硬體故障

/var/spool/cron/root:定時任務crond配置文件

/proc/mounts:設備掛載信息與df -h類似


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

-Advertisement-
Play Games
更多相關文章
  • 問題描述: 附加數據時,提示無法打開物理文件,操作系統錯誤5。如下圖: 問題原因:可能是文件訪問許可權方面的問題。 解決方案:找到資料庫的mdf和ldf文件,賦予許可權即可。如下圖: 找到mdf和ldf文件,本演示以ldf為例。 1.點擊文件右鍵屬性-->安全-->編輯 2.編輯-->添加 3.添加-- ...
  • 1、MDK、Keil C51 編譯後數據 Code:程式大小 Flash RO-data:常量 Flash RW-data:(已初始化的)可讀可寫變數 Flash RAM ZI-data:未初始化的變數 RAM ...
  • 1、上電,短接ERASE,>10秒後,拔USB。 2、短接TST,上電,>10秒後,拔USB。 3、安裝驅動。(看別人教程,下載到INF文件,WIN7不能右擊安裝,好,換虛擬機XP) 4、成功識別,但ISP居然不能下載,write Flash為灰色。 卡了N久 百度,別人write Flash 灰色 ...
  • 基於STM32F1開發平臺,從頭開始完成一個基於時間片輪詢和優先順序搶占的實時任務調度內核 ...
  • 對於包含 MMU 的處理器而言, Linux 系統提供了複雜的存儲管理系統,使得進程所能訪問的記憶體達到 4GB。進程的 4GB 記憶體空間被分為兩個部分—用戶空間與內核空間。用戶空間地址一般分佈為 0~3GB(即 PAGE_OFFSET),這樣,剩下的 3~4GB 為內核空間。內核空間申請記憶體涉及的函... ...
  • 介紹 forfiles是windows自帶的一個批量刪除命令,對於時間的判斷是通過文件自身的修改日期屬性進行判斷,使用它來對歷史文件進行判斷刪除是個不錯的選擇。 語法 forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d [{+ | ...
  • 從網路上下載到的源碼包, 最常見的是 .tar.gz 包, 還有一部分是 .tar.bz2包要解壓很簡單 :.tar.gz 格式解壓命令為 tar -zxvpf xx.tar.gz.tar.bz2 格式解壓命令為 tar -jxvpf xx.tar.bz2 //p參數可以保留原文件許可權(很重要) ...
  • 本文地址 分享提綱: 1. svn 不常見單有用的命令 2. svn查看切換用戶 1. svn自己總結的一些不常見,但有用的命令 1)【導出svn不帶版本代碼】導出不帶svn版本控制的代碼到本地的 localdir下: svn export https://github.com/wozhuzaisi ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...