第12章 使用Samba或NFS實現文件共享

章節簡述:

本章節為讀者講述文件共享系統的作用,了解Samba與NFS服務程序的開發背景以及用法。

詳細逐條講解Samba服務配置參數,演示安全共享文件的配置策方法,并使用autofs服務程序自動掛載設備,

學會后即可實現Linux系統之間或與Windows系統之間的文件共享,以及在共享文件時如何配置防火墻與SELinux策略規則。

?

本章目錄結構

  • 12.1 了解文件共享服務
  • 12.2 Samba服務
    • 12.2.1 安裝服務程序
    • 12.2.2 安全共享文件
  • 12.3 NFS網絡文件系統
  • 12.4 AutoFs自動掛載服務
12.1 了解文件共享服務

早期網絡想要在不同主機之間共享文件大多要用FTP協議來傳輸,但FTP協議僅能做到傳輸文件卻不能直接修改對方主機的資料數據,這樣確實不太方便,于是便出現了NFS開源文件共享程序:NFS(NetworkFile System)是一個能夠將多臺Linux的遠程主機數據掛載到本地目錄的服務,屬于輕量級的文件共享服務,不支持Linux與 Windows系統間的文件共享。

samba服務logo

隨后在1991年時大學生Tridgwell為了解決Linux與Windows系統之間共享文件的問題,便開發出了SMB協議與Samba服務程序。

SMB(Server Messages Block)協議:實現局域網內文件或打印機等資源共享服務的協議。

當時Tridgwell想要注冊SMBServer這個商標,但卻被因為SMB是沒有意義的字符被拒絕了,經過Tridgwell不斷翻看詞典,終于找到了一個拉丁舞蹈的名字——SAMBA,而這個熱情舞蹈的名字中又恰好包含了SMB(SAMBA),于是這便是Samba程序名字的由來。

Samba服務程序是一款基于SMB協議并由服務端和客戶端組成的開源文件共享軟件,實現了Linux與Windows系統間的文件共享。

Samba舞蹈

12.2 Samba服務
12.2.1 安裝服務程序

通過安裝Samba服務程序后細致的分析其配置文件參數,更能夠幫助讀者們理解Samba服務的安全驗證方式。

安裝Samba服務軟件包:

[root@linuxprobe Desktop]# yum install samba
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安裝過程………………
Installing:samba           x86_64           4.1.1-31.el7            rhel7           527 k
………………省略部分安裝過程………………
Complete!
瀏覽Samba配置文件:
[root@linuxprobe ~]# cat/etc/samba/smb.conf
配置文件竟然有320行!有沒有被嚇到?其實Samba服務配置文件中大部分是注釋信息,我們可以來篩選過濾下:

備份原始的配置文件:

[root@linuxprobe ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

過濾掉無用的內容:
先使用cat命令讀入Smb配置文件后通過grep命令-v參數(反向選擇)去掉所有注釋信息,然后分別刪選掉包含#號的行("#"),包含;號的行(";")以及所有的空白行("^$"),最后最后將過濾后的信息覆蓋寫入到/etc/samba/smb.conf文件中。

cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf
讓我們來看看過濾后的配置文件吧:
編輯
[global]?#全局參數。
?workgroup = MYGROUP#工作組名稱。
?server string = Samba Server Version %v#服務器介紹信息,參數%v為顯示SMB版本號。
?log file = /var/log/samba/log.%m#定義日志文件存放位置與名稱,參數%m為來訪的主機名。
?max log size = 50#定義日志文件最大容量為50Kb。
?security = user#安全驗證的方式,總共有4種。
?#share:來訪主機無需驗證口令,更加方便,但安全性很差。
?#user:需由SMB服務驗證來訪主機提供的口令后才可建立訪問,更加的安全。
?#server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理帳號)。
?#domain:使用PDC來完成驗證
?passdb backend = tdbsam#定義用戶后臺的類型,共有3種。
?#smbpasswd:使用SMB服務的smbpasswd命令給系統用戶設置SMB密碼。
?#tdbsam:創建數據庫文件并使用pdbedit建立SMB獨立的用戶。
?#ldapsam:基于LDAP服務進行帳戶驗證。
?load printers = yes#設置是否當Samba服務啟動時共享打印機設備。
?cups options = raw#打印機的選項
[homes]?#共享參數
?comment = Home Directories#描述信息
?browseable = no#指定共享是否在“網上鄰居”中可見。
?writable = yes#定義是否可寫入操作,與"read only"相反。
[printers]?#打印機共享參數
?comment = All Printers?
?path = /var/spool/samba#共享文件的實際路徑(重要)。
?browseable = no?
?guest ok = no#是否所有人可見,等同于"public"參數。
?writable = no?
?printable = yes?
標準的Samba共享參數是這樣的:
編輯
參數作用
[linuxprobe]共享名稱為linuxprobe
comment = Do not arbitrarily modify the database file警告用戶不要隨意修改數據庫
path = /home/database共享文件夾在/home/database
public = no關閉所有人可見
writable = yes允許寫入操作
我們將上面的配置參數直接追加到SMB服務配置文件(/etc/samba/smb.conf)并重啟SMB服務程序即可生效。
但此時SMB服務默認的驗證模式為user,我們需要先創建用戶數據庫后才可以正常使用,現在來學習下如何創建吧~
12.2.2 安全共享文件

使用Samba服務口令驗證方式可以讓共享文件更加的安全,做到僅讓信任的用戶訪問,而且驗證過程也很簡單,要想使用口令驗證模式,我們需要先需要創建Samba服務獨立的數據庫。

第1步:檢查當前是否為user驗證模式。

[root@linuxprobe ~]# cat /etc/samba/smb.conf
修改SMB服務為帳戶驗證模式

?

第2步:創建共享文件夾:

[root@linuxprobe ~]# mkdir /database

第3步:描述共享文件夾信息。

SMB服務主配置文件最下面追加共享文件夾的配置參數:

[database]
comment = Do not arbitrarily modify the database file
path = /database
public = no
writable = yes

保存smb.conf文件后重啟啟動SMB服務:

[root@linuxprobe ~]# systemctl restart smb

添加到開機啟動項:

[root@linuxprobe ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'

第4步:使用Windows主機嘗試訪問

讀者按照下表的IP地址規劃動手配置下Windows的網卡參數,應該都會吧~

編輯
主機名稱操作系統IP地址
Samba共享服務器紅帽RHEL7操作系統192.168.10.10
客戶端紅帽RHEL7操作系統192.168.10.20
客戶端微軟Windows7操作系統192.168.10.30

Windows運行框輸入遠程主機信息

在Windows主機的運行框中輸入遠程主機的信息
訪問Samba服務報錯

此時訪問Samba服務報錯

此時訪問Samba服務是報錯的,如果讀者已經看完Apache(httpd)服務程序的章節,應該還記得防火墻和SELinux規則吧。

第5步:清空防火墻規則鏈:

Windows訪問Samba主機提示報錯,我們懷疑是Iptables阻止了訪問操作,于是執行:

[root@linuxprobe ~]# Iptables -F
[root@linuxprobe ~]# service iptables save

因為Windows系統的緩存關系,可能需要先重啟Windows主機再嘗試訪問Samba共享。

Windows提示驗證密碼

Windows系統被要求驗證帳戶口令

那么這個問題就是出在Iptables防火墻的默認規則中了,所以請對SELinux多一點耐心,不要直接關閉SELinux。

第6步:創建SMB服務獨立的帳號。

現在Windows系統要求先驗證后才能訪問共享,而SMB服務配置文件中密碼數據庫后臺類型為"tdbsam",所以這個帳戶和口令是Samba服務的獨立帳號信息,我們需要使用pdbedit命令來創建SMB服務的用戶數據庫。

pdbedit命令用于管理SMB服務的帳戶信息數據庫,格式為:“pdbedit [選項] 帳戶”。

編輯
參數作用
-a 用戶名建立Samba用戶
-x 用戶名刪除Samba用戶
-L列出用戶列表
-Lv列出用戶詳細信息的列表

創建系統用戶:

[root@linuxprobe ~]# useradd smbuser

將此系統用戶提升為SMB用戶:

[root@linuxprobe ~]# pdbedit -a -u smbuser
new password:設置SMB服務獨立的密碼
retype new password:
Unix username: smbuser
NT username:
Account Flags: [U ]
User SID: S-1-5-21-4146456071-3435711857-2069708454-1000
Primary Group SID: S-1-5-21-4146456071-3435711857-2069708454-513
Full Name:
Home Directory: \\linuxprobe\smbuser
HomeDir Drive:
Logon Script:
Profile Path: \\linuxprobe\smbuser\profile
Domain: LINUXPROBE
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Sat, 11 Jul 2015 18:27:04 CST
Password can change: Sat, 11 Jul 2015 18:27:04 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
第7步:使用Windows主機驗證共享結果:
請您按照下面的幻燈片逐步操作,可點擊圖片兩側箭頭或下方小圓點“○”切換步驟。
  • Windows驗證SMB服務口令
  • Windows成功訪問SMB服務
  • Windows進入共享目錄失敗

第8步:允許SELinux規則

使用Windows主機訪問Samba共享果然可以使用smbuser用戶登入,但對于共享文件這么重要的事情,SELinux一定會強制管理,剛剛沒有妥當的配置好SELinux,現在果然又報錯了。

將共享目錄的所有者和所有組設置為smbuser用戶:

[root@linuxprobe ~]# chown -Rf smbuser:smbuser /database

允許SELinux對于SMB用戶共享家目錄的布爾值:

[root@linuxprobe ~]# setsebool -P samba_enable_home_dirs on

將共享目錄的SELinux安全上下文設置妥當:

[root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /database

使新的安全上下文立即生效:

[root@linuxprobe ~]# restorecon -Rv /database/
第9步:使用Windows主機驗證共享結果
我們配置好Samba服務后又陸續的調整好了Iptables防火墻與SELinux安全規則,現在終于可以正常的使用共享了。
使用SMB服務并創建文件
使用SMB服務并創建文件
第10步:使用Linux主機驗證共享結果
剛剛好像讓讀者產生了一些小誤解,Samba服務程序并不僅僅是能夠實現Linux與Windows系統間的文件共享,還可以實現Linux系統之間的文件共享哦,先動手配置下客戶端主機的IP地址吧:
編輯
主機名稱操作系統IP地址
Samba共享服務器紅帽RHEL7操作系統192.168.10.10
客戶端紅帽RHEL7操作系統192.168.10.20
客戶端微軟Windows7操作系統192.168.10.30

在客戶端安裝cifs-utils軟件包:

[root@linuxprobe ~]# yum install -y cifs-utils
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安裝過程………………
Installing:cifs-utils          x86_64          6.2-6.el7             rhel7           83 k
………………省略部分安裝過程………………
Complete!

創建掛載目錄:

[root@linuxprobe ~]# mkdir /database

在root家目錄創建認證文件(依次為SMB用戶名、SMB用戶密碼、SMB共享域):

[root@linuxprobe ~]# vim auth.smb
username=smbuser
password=redhat
domain=MYGROUP

此文件太重要了,權限應該給小一些:

[root@linuxprobe ~]# chmod -Rf 600 auth.smb

配置其掛載信息(內容依次為遠程共享信息、本地掛載目錄、文件系統類型、認證文件以及開機自檢選項):

[root@linuxprobe ~]# vim /etc/fstab
//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0

使用mount命令的-a參數掛載所有在fstab文件中定義的文件信息:

[root@linuxprobe ~]# mount -a

成功掛載Samba的共享目錄(能夠看到共享文件了):

[root@linuxprobe ~]# cat /database/Memo.txt
i can edit it .
Samba服務真的是太強大了,不僅能夠實現Linux系統之間分享數據還能與Windows主機進行文件共享。

出現問題?大膽提問!

因讀者們硬件不同或操作錯誤都可能導致實驗配置出錯,請耐心再仔細看看操作步驟吧,不要氣餒~

Linux技術交流請加A群:560843(滿),B群:340829(推薦),C群:463590(推薦),點此查看全國群。

*本群特色:通過口令驗證確保每一個群員都是《Linux就該這么學》的讀者,答疑更有針對性,不定期免費領取定制禮品。

12.3 NFS網絡文件系統

NFS(Network Files System)即網絡文件系統,NFS文件系統協議允許網絡中的主機通過TCP/IP協議進行資源共享,NFS客戶端可以像使用本地資源一樣讀寫遠端NFS服務端的資料,需要注意NFS服務依賴于RPC服務與外部通信,所以必需保證RPC服務能夠正常注冊服務的端口信息才能正常使用NFS服務。

有個學員問過NFS是不是need for speed的縮寫啊?哈哈,NFS配置和使用都是非常快捷,所以這么說也是有道理的。

紅帽RHEL7系統已經默認安裝NFS服務:

[root@linuxprobe ~]# yum install nfs-utils
Loaded plugins: langpacks, product-id, subscription-manager
(1/2): rhel7/group_gz | 134 kB 00:00
(2/2): rhel7/primary_db | 3.4 MB 00:00
Package 1:nfs-utils-1.3.0-0.el7.x86_64 already installed and latest version
Nothing to do

本次的實驗需要兩臺Linux主機,網絡配置情況:

編輯
主機名稱操作系統IP地址
NFS服務端紅帽RHEL7操作系統192.168.10.10
NFS客戶端紅帽RHEL7操作系統192.168.10.20

第1步:創建NFS服務端的共享目錄。
清空iptables默認的規則鏈:

[root@linuxprobe ~]# iptables -F

保存清空后的iptables規則:

[root@linuxprobe ~]# service iptables save

創建nfsfile共享目錄:

[root@linuxprobe ~]# mkdir /nfsfile

為共享目錄設置權限(讓其他人可以有寫入權限):

[root@linuxprobe ~]# chmod -Rf 777 /nfsfile

寫入一個文件,用于NFS客戶端讀取:

[root@linuxprobe ~]# echo "welcome to linuxprobe.com" > /nfsfile/readme

NFS服務端配置文件是"/etc/exports",用于定義要共享的目錄以及相應權限。

[root@linuxprobe ~]# vim /etc/exports
//格式為:共享目錄的絕對路徑 允許訪問NFS資源的客戶端(權限參數)
/nfsfile 192.168.10.* (rw,sync,root_squash)

NFS配置共享的參數有:

編輯
參數作用
ro只讀默認
rw讀寫模式
root_squash當NFS客戶端使用root用戶訪問時,映射為NFS服務端的匿名用戶。
no_root_squash當NFS客戶端使用root用戶訪問時,映射為NFS服務端的root用戶。
all_squash不論NFS客戶端使用任何帳戶,均映射為NFS服務端的匿名用戶。
sync同時將數據寫入到內存與硬盤中,保證不丟失數據。
async優先將數據保存到內存,然后再寫入硬盤,效率更高,但可能造成數據丟失。

看完后來分析下/etc/exports文件中參數作用吧“/nfsfile 192.168.10.* (rw,sync,no_root_squash)(答案模式)

答案:將/nfsfile目錄共享給192.168.10.0/24網段,運行NFS客戶端讀寫數據、同步數據并映射為NFS服務器的root用戶。

第2步:啟動NFS服務端

剛剛講到NFS服務是依賴于RPC服務的,但在紅帽RHEL7系統中RPC服務已經默認運行(active)了,所以無需再配置RPC服務啦。

[root@linuxprobe ~]# systemctl status rpcbind

啟動nfs-server程序:

[root@linuxprobe ~]# systemctl start nfs-server

設置NFS服務端為開機啟動:

[root@linuxprobe ~]# systemctl enable nfs-server

第3步:配置NFS客戶端
如果NFS客戶端也是紅帽RHEL7系統,那么軟件包nfs-utils一定也是已經默認安裝,直接掛載共享就可以了。
showmount命令用于查詢NFS服務端共享信息,格式為:“showmount [參數] [遠程主機]”。

編輯
參數作用
-e顯示NFS服務端的共享列表
-a顯示本機掛載NFS資源的情況
-v顯示版本號

查詢遠程NFS服務端中可用的共享資源:

[root@linuxprobe ~]# showmount -e 192.168.10.10
Export list for 192.168.10.10:
/nfsfile (everyone)

創建本地掛載目錄:

[root@linuxprobe ~]# mkdir /nfsfile
[root@linuxprobe ~]# mount -t nfs 192.168.10.10:/nfsfile /nfsfile

順利查看到剛剛寫入文件內容:

[root@linuxprobe ~]# cat /nfsfile/readme
welcome to linuxprobe.com

如果希望開機后自動將NFS資源掛載到本地,那么就可以通過修改fstab文件來實現:

[root@linuxprobe ~]# vim /etc/fstab
192.168.10.10:/nfsfile /nfsfile nfs defaults 0 0
12.4 AutoFs自動掛載服務

AutoFs服務與Mount/Umount命令不同之處在于它是一種守護進程,只有檢測到用戶試圖訪問一個尚未掛載的文件系統時才自動的檢測并掛載該文件系統,換句話說,將掛載信息填入/etc/fstab文件后系統將在每次開機時都自動將其掛載,而運行AutoFs后則是當用戶需要使用該文件系統了才會動態的掛載,節約網絡與系統資源。

模擬訓練:每次進入/media/iso目錄時都會自動掛載鏡像。

編輯
主機名稱操作系統IP地址
NFS服務端紅帽RHEL7操作系統192.168.10.10
NFS客戶端紅帽RHEL7操作系統192.168.10.20

安裝autofs服務:

[root@linuxprobe ~]# yum install autofs
………………省略部分安裝過程………………
Installing:
autofs x86_64 1:5.0.7-40.el7 rhel 550 k
Installing for dependencies:
hesiod x86_64 3.2.1-3.el7 rhel 30 k
………………省略部分安裝過程………………
Complete!

啟動autofs服務并加入到開機啟動項中:

[root@linuxprobe ~]# systemctl start autofs
[root@linuxprobe ~]# systemctl enable autofs
ln -s '/usr/lib/systemd/system/autofs.service' '/etc/systemd/system/multi-user.target.wants/autofs.service'

修改autofs主配置文件(格式為:掛載目錄 映射配置文件):

[root@linuxprobe ~]# vim /etc/auto.master
/media /etc/iso.misc

編輯掛載配置參數文件(映射文件):

[root@linuxprobe ~]# vim /etc/iso.misc
iso   -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

重新加載啟動autofs服務:

[root@linuxprobe ~]# systemctl restart autofs

進入自動掛載目錄中:

[root@linuxprobe ~]# cd /media/iso

查看當前目錄下的文件:

[root@linuxprobe iso]# ls
addons images Packages RPM-GPG-KEY-redhat-release
EFI isolinux release-notes TRANS.TBL
EULA LiveOS repodata
GPL media.repo RPM-GPG-KEY-redhat-beta

轉載于:https://www.cnblogs.com/linux130/p/5759612.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271138.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271138.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271138.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ExtClassLoader和AppClassLoader是Launcher類的兩個內部類

sun.misc.Launcher他是一個java虛擬機的入口應用 看下Launcher類 ExtClassLoader和AppClassLoader是Launcher類的兩個內部類

Java后端帶參跨域訪問_java后端解決請求跨域

跨域跨域:指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器對javascript施加的安全限制。例如:a頁面想獲取b頁面資源,如果a、b頁面的協議、域名、端口、子域名不同,所進行的訪問行動都是跨…

系統輸入輸入出設計相關知識介紹

1、輸出設計輸出設計主要包括:確定輸出內容、選擇輸出設備與介質、確定輸出格式三個方面的內容。確定輸出內容:輸出內容的設計首先要確定用戶在使用信息方面的需求,然后設計輸出信息的內容,包信息形式(括文字、圖形、表…

計算機知識:電腦系統盤文件夾詳解

今天給大家介紹一下電腦系統盤(C盤)的相關知識。C盤變紅,是存儲空間告急。C盤里通常都是安裝的系統文件,一般情況下不放其他文件,如果放了可以轉移到其他盤里去。還有一個就是電腦桌面,通常也是屬于C盤空間…

python json dumps utf8_Python2操作JSON出現亂碼的解決方案

其實剛剛寫過一整篇Python編碼問題的解決方案,由于JSON又是一種特殊案例(與庫相關,與語言本身無關)所以就單獨提出來說。我們來看一個從網上獲取json并又存到本地文件的例子import requests,jsonr requests.get(https://api.github.com/repos/solomonxi…

【代碼筆記】iOS-字體抖動動畫

一,效果圖。 二,代碼。 ViewController.m #import "ViewController.h"interface ViewController ()endimplementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typicall…

java for循環如何優化_java for循環及其優化

for循環1.首先知道,for循環的3個表達式的意思:表達式1: 一般為賦值表達式,給控制變量賦初值;表達式2: 關系表達式或邏輯表達式,循環控制條件;表達式3: 一般為賦值表達式&…

ElementUI+VUE 日期控件禁用用法

今天給大家整理一下ElementUIVUE 日期控件禁用用法&#xff0c;希望對大家有所幫助&#xff01;HTML文件<el-date-pickerv-model"value"type"date":editable"false"placeholder"開始日期"value-format"yyyy-MM-dd":picke…

利用rfcomm實現樹莓派與手機通信_工業物聯網 | 怎么用NodeRed實現樹莓派與阿里云物聯網平臺通信?虹科告訴你!...

想獲取更多IIOT干貨請點擊藍字&#xff0c;關注我們虹科工業樹莓派高性能多接口寬溫--適應惡劣環境★★★★★Node-RED是構建物聯網(IoT)應用程序的強大工具&#xff0c;它使用可視化的編程方法&#xff0c;允許開發人員將預定義的代碼塊(稱為“節點”)連接在一起以執行任務。當…

關于“using namespace std”

http://www.cnblogs.com/uniqueliu/archive/2011/07/10/2102238.html轉載于:https://www.cnblogs.com/prayer521/p/5762948.html

mysql的mtr是指什么_MySQL中MTR的概念

MTR全稱是Mini-Transaction&#xff0c;顧名思義&#xff0c;可以理解為"最小的事務"&#xff0c;MySQL中把對底層頁面的一次原子訪問的過程稱之為一個Mini-Transaction&#xff0c;這里的原子操作&#xff0c;指的是要么全部成功&#xff0c;要么全部失敗&#xff0…

前端:Element UI 多選框組用法筆記

今天給大家分享一下Element UI 多選框組用法筆記&#xff0c;直接上代碼&#xff01;<html><head></head><body><el-form> <el-form-item label"興趣愛好:"> <el-checkbox-group v-model"form.checkList"> <…

xiaocms 關于搜索功能 添加搜索字段

自己折磨了好幾天 就是沒研究個出像樣的的東西 看了一下 core/controller/index.php searchAction()方法 但是不知從何下手。查了sql語句&#xff0c;還是沒實現 請教了一位自學php的小弟 &#xff0c;人家三下五除二的功夫就做出來了 解決的思路是一樣的&#xff0c;可我就是…

python編程第四版_清華編程教授強力推薦《Python編程》,指導你如何學習python

Python編程真的那么容易嗎&#xff1f;僅僅是看理論就可以學以致用嗎&#xff1f;今天我給你介紹的這本書&#xff0c;也許會讓你開始改變這種想法&#xff0c;因為這本書上的練習和案例以及指導本身就足夠學好Python了。清華編程教授強力推薦《Python編程》&#xff0c;指導你…

java 構造 statict_java學習:構造方法、static、final

在了解了java的基本數據結構后&#xff0c;開始學習java的類。java中的類也是一種數據結構&#xff0c;我認為它和C中的結構體挺像。類中可以有屬性和方法。類的方法中比較特別的是構造方法。java中類的構造方法要和類名相同&#xff0c;且沒有返回值。構造方法主要用于為類的對…

微信終于可以發送大文件了!

來源丨擴展迷EXTFANS&#xff08;ID&#xff1a;infinitydaily&#xff09;https://mp.weixin.qq.com/s/EAwYnq7435oMQnz6JqkHYg微信作為一款國民級的通訊軟件&#xff0c;雖然用戶基數龐大&#xff0c;但在用戶體驗方面一直飽受詬病&#xff0c;尤其是在部分功能方面&#xff…

Iterable 超級接口

這是一個老祖宗,一代一代往下撥 collection 的方法如下,是一個跟接口方法如下,見API collection : add():添加一個元素     addAll():添加一組元素 clear();清空     remove(Object o) &#xff1a;移除     removeAll():移除一組元素     isEmpty();判斷集合…

pc寄存器or程序計數器

一&#xff1a;PC寄存器解釋 二&#xff1a;PC寄存器的作用

項目設計基礎:處理過程設計相關知識介紹?

處理過程設計關鍵是用一種適當的表示形式來描述每個模塊執行過程。常用的表示形式有圖形、語言、表格。比如傳統的框圖、判定表等。1、程序流程圖&#xff08;Program Flow Chart&#xff09;程序流程圖也成為程序框圖&#xff0c;是最早、流行最廣泛的一種圖形表示方法。程序流…