Linux伺服器開發一(基礎)
Linux
- 1、Linux介紹
- Linux是類Unix計算機作業系統的統稱。
- Linux作業系統的核心的名字也是“Linux”。
- Linux這個詞本身只表示Linux核心,但在實際上人們已經習慣了用Linux來形容整個基於Linux核心的系統。
- Linux是由芬蘭大學Linus Torvalds於1991年編寫的。
- 2、Linux發行版組成
- Linux核心
- 應用軟體
- 一些GNU程式庫和工具
- emacs
- GCC
- GNOME
- 命令列shell
- 圖形桌面環境
- KDE(qt編寫)
- GNOME(GTK編寫)
- Unity
- 一些辦公軟體
- OpenOffice
- 編譯器
- gcc
- g++
- 文字編輯器到科學工具的應用軟體
- vi
- gedit
- 一些GNU程式庫和工具
- 3、Linux版本
- 商業公司維護的發行版本
- RedHat(REHL)包管理方式採用基於RPM包的YUM包管理方式
- 社群組織維護的發行版本
- Debian 包管理方式採用的是:apt-get/dpkg xxx.deb
- RedHat系列
- RHEL(RedHat Enterprice Linux, 也就是所謂的RedHat Advance Server收費版本),穩定。
- CentOS(RHEL的社群克隆版本,免費),穩定。
- FedoraCore(由原來的RedHat桌面版本發展而來,免費版本),穩定性差,最好只用於桌面應用。
- Debian系列
- Debian
- Ubuntu
- 命名規則
- 前兩位數字:發行時的年份的最後兩位數字
- 後兩位數字:發行的月份
- 版本
- 桌面版(Desktop):至少三年的技術支援
- 伺服器版(Server):至少五年的技術支援
- LTS版本(Long Term Support)
- 版本釋出頻率,一年兩次
- 主版本號(年份)
- 單數年:短期支援版
- 雙數年:長期支援版(LTS)
- 副版本號(月份)
- 四月份(xx.04):該年度的穩定版
- 十月份(xx.10):該年度的測試版
- 主版本號(年份)
- 命名規則
- 商業公司維護的發行版本
學習方法
- 要求
- 記好課堂筆記
- 只聽不練學不會Linux,多動手實踐
- 課上跟上思路,簡單的命令跟著敲,多思考
- 分清主次,重點記憶重要命令
- 資料
- Linux自帶幫助文件 - man
- 鳥哥和私房菜
一、檔案和目錄操作
- 1、基本的shell操作
-
shell命令列快捷鍵
-
編輯命令
Ctrl + a 移到命令列首, ahead,與home鍵功能相同 Ctrl + e 移到命令列尾, end, 與end鍵功能相同 Ctrl + f 按字元前移(右向), forward, 與方向鍵left功能相同 Ctrl + b 按字元後移(左向), back, 與方向鍵right功能相同 Alt + f 按單詞前移(右向) Alt + b 按單詞後移(左向) Ctrl + xx 在命令列首和游標之間移動 Ctrl + u 從游標處刪除至命令列首 Ctrl + k 從游標處刪除至命令列尾 Ctrl + w 從游標處刪除至字首 Alt + d 從游標處刪除至字尾 Ctrl + d 刪除游標處的字元, 與delete鍵功能相同 Ctrl + h 刪除游標前的字元, 與backspace鍵功能相同 Ctrl + y 貼上至游標後, yank Alt + c 從游標處更改為首字母大寫的單詞 Alt + u 從游標處更改為全部大寫的單詞, uppercase Alt + l 從游標處更改為全部小寫的單詞, lowercase Ctrl + t 交換游標處和之前的字元 Alt + t 交換游標處和之前的單詞 Alt + Backspace 與 Ctrl + w 類似,分隔符有些差別
-
重新執行命令
Ctrl + r 逆向搜尋命令歷史 Ctrl + g 從歷史搜尋模式退出 Ctrl + p 歷史中的上一條命令, previous,與方向鍵up功能相同 Ctrl + n 歷史中的下一條命令, next, 與方向鍵down功能相同 Alt + . 使用上一條命令的最後一個引數
-
控制命令
Ctrl + l 清屏, clear Ctrl + o 執行當前命令,並選擇上一條命令 Ctrl + s 阻止螢幕輸出 Ctrl + q 允許螢幕輸出 Ctrl + c 終止命令 Ctrl + z 掛起命令
-
Bang (!) 命令
!! 執行上一條命令 !blah 執行最近的以 blah 開頭的命令,如 !ls !blah:p 僅列印輸出,而不執行 !$ 上一條命令的最後一個引數,與 Alt + . 相同 !$:p 列印輸出 !$ 的內容 !* 上一條命令的所有引數 !*:p 列印輸出 !* 的內容 ^blah 刪除上一條命令中的 blah ^blah^foo 將上一條命令中的 blah 替換為 foo ^blah^foo^ 將上一條命令中所有的 blah 都替換為 foo
-
- 虛擬終端(VT)
-
簡介
英文:Virtual Terminal 解釋:連線在遠地的分時共用計算機系統的遠端終端,它具有使使用者感到是在計算機旁使用終端的功能。
-
常用工具
XManager Putty SecureCRT
-
-
命令和路徑補齊
tab鍵按一次 當只有一個匹配時,自動補全命令或路徑 tab鍵按兩次 當有多個匹配時,顯示命令或路徑列表
-
-
2、Linux 標準目錄結構
初學Linux,首先需要弄清Linux 標準目錄結構:
/ root --- 啟動Linux時使用的一些核心檔案。如作業系統核心、載入程式Grub等。 home --- 儲存普通使用者的個人檔案 ftp --- 使用者所有服務 httpd samba user1 user2 bin --- 系統啟動時需要的執行檔案(二進位制) sbin --- 可執行程式的目錄,但大多存放涉及系統管理的命令。只有root許可權才能執行 proc --- 虛擬,存在linux核心映象;儲存所有核心引數以及系統配置資訊 1 --- 程序編號 usr --- 使用者目錄,存放使用者級的檔案 bin --- 幾乎所有使用者所用命令,另外存在與/bin,/usr/local/bin sbin --- 系統管理員命令,與使用者相關,例如,大部分伺服器程式 include --- 存放C/C++標頭檔案的目錄 lib --- 固定的程式資料 local --- 本地安裝軟體儲存位置 man --- 手工生成的目錄 info --- 資訊文件 doc --- 不同包文件資訊 tmp X11R6 --- 該目錄用於儲存執行X-Window所需的所有檔案。該目錄中還包含用於執行GUI要的配置檔案和二進位制檔案。 X386 --- 功能同X11R6,X11 發行版5 的系統檔案 boot --- 引導載入器所需檔案,系統所需圖片保存於此 lib --- 根檔案系統目錄下程式和核心模組的公共庫 modules --- 可載入模組,系統崩潰後重啟所需模組 dev --- 裝置檔案目錄 etc --- 配置檔案 skel --- home目錄建立,該目錄初始化 sysconfig --- 網路,時間,鍵盤等配置目錄 var file lib --- 該目錄下的檔案在系統執行時,會改變 local --- 安裝在/usr/local的程式資料,變化的 lock --- 檔案使用特定外設或檔案,為其上鎖,其他檔案暫時不能訪問 log --- 記錄日誌 run --- 系統執行合法資訊 spool --- 印表機、郵件、代理伺服器等假離線目錄 tmp catman --- 快取目錄 mnt --- 臨時用於掛載檔案系統的地方。一般情況下這個目錄是空的。 在我們將要掛載分割槽時在這個目錄下建立目錄,再將我們將要訪問的裝置掛載在這個目錄上,這樣我們就可訪問檔案了。 tmp --- 臨時檔案目錄,系統啟動後的臨時檔案存放在/var/tmp lost+found --- 在檔案系統修復時恢復的檔案
/
根目錄,一般根目錄下只存放目錄,不要存放檔案。 /etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分割槽中。
/bin, /usr/bin
可執行二進位制檔案的目錄,如常用的命令ls、tar、mv、cat等。
/boot
放置linux系統啟動時用到的一些檔案。/boot/vmlinuz為linux的核心檔案,以及/boot/gurb。建議單獨分割槽,分割槽大小100M即可。
/dev
存放linux系統下的裝置檔案,訪問該目錄下某個檔案,相當於訪問某個裝置,常用的是掛載光碟機mount: /dev/cdrom、/mnt
/etc
系統配置檔案存放的目錄,不建議在此目錄下存放可執行檔案。 重要的配置檔案有:/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。 修改配置檔案之前記得備份。 注:/etc/X11存放與x windows有關的設定。
/home
系統預設的使用者家目錄,新增使用者賬號時,使用者的家目錄都存放在此目錄下。 ~表示當前使用者的家目錄,~test表示使用者test的家目錄。 建議單獨分割槽,並設定較大的磁碟空間,方便使用者存放資料。
/lib,/usr/lib,/usr/local/lib
系統使用的函式庫的目錄,程式在執行過程中,需要呼叫一些額外的引數時需要函式庫的協助,比較重要的目錄為/lib/modules。
/lost+fount
系統異常產生錯誤時,會將一些遺失的片段放置於此目錄下,通常這個目錄會自動出現在裝置目錄下。 如載入硬碟於/disk 中,此目錄下就會自動產生目錄/disk/lost+found
/mnt,/media
光碟預設掛載點,通常光碟掛載於/mnt/cdrom下,也不一定,可以選擇任意位置進行掛載。
/opt
給主機額外安裝軟體所擺放的目錄。 如:FC4使用的Fedora 社群開發軟體,如果想要自行安裝新的KDE 桌面軟體,可以將該軟體安裝在該目錄下。 以前的 Linux 系統中,習慣放置在 /usr/local 目錄下。
/proc
此目錄的資料都在記憶體中,如系統核心,外部裝置,網路狀態,由於資料都存放於記憶體中,所以不佔用磁碟空間。 比較重要的目錄有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等。
/root
系統管理員root的家目錄,系統第一個啟動的分割槽為/,所以最好將/root和/放置在一個分割槽下。
/sbin,/usr/sbin,/usr/local/sbin
放置系統管理員使用的可執行命令,如fdisk、shutdown、mount等。 與/bin不同的是,這幾個目錄是給系統管理員root使用的命令,一般使用者只能"檢視"而不能設定和使用。
/tmp
一般使用者或正在執行的程式臨時存放檔案的目錄,任何人都可以訪問,重要資料不可放置在此目錄下。
/srv
服務啟動之後需要訪問的資料目錄,如www服務需要訪問的網頁資料存放在/srv/www內。
/usr
應用程式存放目錄。 /usr/bin 存放應用程式。 /usr/share 存放共享資料。 /usr/lib 存放不能直接執行的,卻是許多程式執行所必需的一些函式庫檔案。 /usr/local 存放軟體升級包。 /usr/share/doc 系統說明檔案存放目錄。 /usr/share/man 程式說明檔案存放目錄。 使用 man ls時會查詢/usr/share/man/man1/ls.1.gz的內容。 建議單獨分割槽,設定較大的磁碟空間。
/var
放置系統執行過程中經常變化的檔案。 /var/log 隨時更改的日誌檔案。 /var/log/message 所有的登入檔案存放目錄。 /var/spool/mail 郵件存放的目錄。 /var/run 程式或服務啟動後,其PID存放在該目錄下。 建議單獨分割槽,設定較大的磁碟空間。
- 3、檔案和目錄操作相關命令
- 使用者目錄
- 絕對路徑:從根目錄開始寫,如/usr/bin
- 相對路徑:相對於當前的工作目錄而言
- . 當前目錄
- .. 當前目錄的上一級目錄
- - 在臨近的兩個目錄直接切換
- [email protected]:~#
- root: 當前使用者名稱
- @:at, 在
- ubuntu:主機名
- ~ : 當前使用者home目錄
- #:超級使用者
- $:普通使用者
-
ls
ls -al -a, --all 不隱藏任何以. 開始的專案 -l 使用較長格式列出資訊 -rw-r--r-- 1 super root 3771 6月 7 2016 .bashrc drwx------ 22 super root 4096 12月 15 08:02 .cache lrwxrwxrwx 1 super root 31 11月 23 07:42 .vimrc -> /home/super/.spf13-vim-3/.vimrc 以最後一個為例: lrwxrwxrwx 第1個字元:表示檔案型別 - 普通檔案 d 目錄 l 連結符號 b 塊裝置 c 字元裝置 s socket檔案 p 管道 第2-4個字元:文件所有者許可權 第5-7個字元:同組使用者許可權 第8-10個字元:其他人許可權 r: read 4 w: write 2 x: execute 1 1 檔案的硬連結數 super 該檔案或目錄的所有者 root 該檔案或目錄所屬的組 31 佔用的儲存空間 11月 23 07:42 檔案最後建立或修改的時間 .vimrc 檔名
-
cd
cd ~ 切換到使用者home目錄 cd / 切換到根目錄 cd 切換到使用者home目錄 cd.. 切換到上一級目錄
-
tree
tree path 顯示指定路徑的目錄樹結構
-
檔案或目錄顏色一般情況
白色 普通檔案 藍色 目錄 綠色 可執行檔案 紅色 壓縮檔案 青色 連結檔案 黃色 裝置檔案 灰色 其他檔案
-
mkdir
mkdir dirname 建立目錄。 mkdir dir1/dir2/dir3 -p 按層次建立目錄。
-
rmdir
rmdir dirname 目錄必須為空才能刪除,所以實際使用時不常用。
-
rm
rm -rf dirname 遞迴強制刪除資料夾下的目錄和檔案,實際使用中常用。 rm -ri dirname 遞迴刪除並提示使用者刪除了哪些目錄或檔案。
-
touch
touch test.txt 建立檔案。
-
cp
cp hello.c temp 在當前目錄下生成一個temp檔案,並把hello.c的內容寫入檔案。 如果temp不存在,則建立檔案;如果存在,則覆蓋已有檔案。 cp mydir newdir -r 在當前目錄下生成一個newdir目錄,並把mydir目錄裡面的目錄或檔案拷貝過去。 如果目錄不存在,則建立;如果存在,則mydir目錄本身也拷貝到newdir目錄下。
-
cat
cat test.txt 檢視檔案的內容,缺點內容太多時檢視困難。
-
more
more stdio.h 分屏檢視檔案,Enter下翻一行,Space下翻一頁,缺點不能往回看。
-
less
less stdio.h 分屏檢視檔案。比more更實用,可以來回翻頁。 ctrl + p 上翻一行 ctrl + n 下翻一行 ctrl + b 上翻一頁 ctrl + f 下翻一頁 q 退出
-
head
head -5 stdio.h 檢視前五行內容,不加引數預設是10行。
-
tail
tail -5 stdio.h 檢視後5行內容, 不加引數預設是10行。
-
mv
mv test.c hello.c 移動到。多用於重新命名目錄或檔案。
-
ln
ln -s ~/.vim/.vimrc .vimrc 建立軟連結,相當於windows下的快捷方式,可用於目錄或檔案。 路徑要用絕對路徑,這樣軟連結拷貝到哪裡都是有效的。 如果刪除原檔案,則軟連結失效。 ln .vimrc .vimrc.hard 建立硬連結,只能用於檔案。不必使用絕對路徑。 建立後生成的硬連結與原檔案引用同一個inode,硬連結本身不佔硬碟空間。 如果刪除原檔案,硬連結仍然有效。
-
wc
相關推薦
Linux伺服器開發一(基礎)
Linux 1、Linux介紹 Linux是類Unix計算機作業系統的統稱。Linux作業系統的核心的名字也是“Linux”。Linux這個詞本身只表示Linux核心,但在實際上人們已經習慣了用Linux來形容整個基於Linux核心的系統。Linux是由芬蘭大學Linus Torvalds
ssh連線上騰訊雲、華為雲Linux伺服器,一會就自動斷開
客戶端向服務端傳送心跳 依賴 ssh 客戶端定時傳送心跳,putty、SecureCRT、XShell 都有這個功能。 Linux / Unix 下,編輯 ssh 配置檔案: # vim /etc/ssh/ssh_config 新增 ServerAliveInterval 20ServerAliveC
Linux防火牆--iptables(一)基礎篇
一.iptables 簡介 iptables防火牆是由Netfilter專案開發的,iptables提供了全面的協議狀態跟蹤、資料包的應用層檢查、速率限制、指定策略過濾等。而iptables使用Netfilter框架進行過濾。Netfilter本身不
C++ Linux伺服器開發(1)——極速入門必備命令
1.shell簡介 shell是運維和系統管理員操作Linux系統的首選,是一個命令直譯器 命令列---------------->解釋執行 命令列相關: 行首“$”或"#“---------------
java伺服器開發(一)
從零開始java伺服器開發之環境配置 1、安裝jdk並配置環境變數 - - -java執行環境 見:https://blog.csdn.net/u012934325/article/details/73441617 2、myeclipse安裝配置 - - -開發環境 見:
Linux bash總結(一) 基礎部分(適合初學者學習和非初學者參考)
歡迎使用Markdown編輯器 你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。 新的改變 我們對Markdown編輯器進行了一些功能
Linux伺服器開發/測試環境搭建流程
1、MariaDB yum 安裝/初始化/授遠端許可權 yum安裝 進入目錄/etc/yum.repos.d/,建立MariaDB.repo,將以上內容Copy進去 執行以下命令 sudo yum install MariaDB-server MariaDB-clie
動腦學院Linux伺服器開發學習資料
Linux伺服器開發-深入理解檔案系統IO機制連結:https://pan.baidu.com/s/1zRja-YIrCwIB1WWU0iAV8w 密碼:ac3k老師帶你深入理解去中心化網路 連結:https://pan.baidu.com/s/1pMM0Swb 密碼:52n
linux伺服器開發二(系統程式設計)--程序相關
程序相關的概念 程式與程序 程式,是指編譯好的二進位制檔案,在磁碟上,不佔用系統資源(CPU、記憶體、開啟的檔案、裝置、鎖等等)。 程序,是一個抽象的概念,與作業系統原理聯絡緊密。程序是活躍的程式,佔用系統資源。在記憶體中執行(程式執行起來,產生一個程序)。 程式 --&g
Linux伺服器分割槽一鍵自動掛載硬碟工具
最近發現很多使用者反饋的一些問題與磁碟掛載有關,1、安裝完面板後發現磁碟容量與實際購買容量不符2、重啟伺服器後面板無法訪問,網站、資料庫檔案丟失以上都是因為未掛載磁碟,或掛載操作不當引起的,為解決這個問題,我們製作了磁碟自動掛載工具,支援Centos、Ubuntu、Debia
遠端ssh連線Linux伺服器,隔一段時間就斷了
有三種情況 1、server端 你修改/etc/ssh/sshd_config,增加ServerAliveInterval 60 2、client端,不修改伺服器或防火牆在客戶端自動發訊息最簡單 如果用SecureCRT可以在Options/SessionOptions/Terminal/Anti-idel
linux伺服器開發需要掌握多少門語言
今天看到一個話題,程式設計師需要掌握多少門語言為佳,這裡我以自身的經歷來談談這個問題, 首先,我們先定義伺服器開發:大部分時間都在寫伺服器程式碼,而大部分伺服器都是在linux下執行shell:li
CLion 遠端Linux伺服器 開發除錯
Linux 配置 為了使用CLion 進行開發除錯Linux相關的軟體版本推薦如下 Cmake 3.x 以上 gdb 7.8.x
嵌入式Linux應用開發完全手冊(一)嵌入式Linux基礎知識
嵌入式Linux應用開發完全手冊 3 嵌入式Linux基礎知識 3.1 交叉編譯工具 編譯工具鏈,編譯工作由幾個步驟完成,分別用到了不同的工具 PC端應用 gcc ld objcopy
Java開發伺服器環境一:Linux系統
一:安裝VMware 14,下載安裝包按指示順序下載安裝即可,安裝完成後百度搜索啟用碼啟用就可以免費使用。 硬體:因為是在宿主機上執行虛擬化軟體安裝centos,所以對宿主機的配置有一定的要求。最起碼I5CPU雙核、硬碟500G、記憶體4G以上。 2.虛擬機器
linux下 c++ 伺服器開發(一)
苦逼的c++程式設計師還沒找到工作,所以順便開始寫伺服器練手。。 對內容不滿意不要噴我我是寫給自己看的(把自己犯得錯誤記下來) 1.我的電腦是win10的,所以先去網上下虛擬機器,我下載了 ,然後安裝了。 2.新建了一個ubuntu 32位的虛擬電腦。(我劃分的
伺服器開發之linux網路程式設計---學習章節(一)
前言: 近期學習了伺服器相關的開發,平常主要擼c的程式,所以就下定決心研究了c的伺服器開發,目的也在與鞏固c的基本知識。詳細分享如下,若有錯誤請指正,希望與大家探討,共同學習進步。
嵌入式Linux開發——(一)開發環境基礎知識
一、交叉編譯工具(編譯出能在ARM平臺上執行的程式) 1)檔案生成過程: ①預處理:事先將“#”開頭的檔案加入進去 ②編譯:C/C++ ----->彙編程式碼 ③彙編:彙編程式碼----->機器程式碼 ④連線:將生成的目標檔案(OBJ)和系統的OBJ檔案
linux驅動開發之蜂鳴器驅動源碼分析(一)
linux 蜂鳴器 驅動 蜂鳴器的驅動源碼在/driver/char/buzzer/x210-buzzer.c文件中,源碼如下#include <linux/module.h> #include <linux/kernel.h> #include <linux
linux驅動開發之framebuffer應用編程實踐(一)
linux驅動開發之framebuffer驅動 1、framebuffer應用編程 (1)打開設備文件 (2)獲取設備信息 宏定義的命令在/linux/fb.h中 不可變信息FSCREENINFO,使用ioctl參數有FBIOGET_FSCREENINFO宏名,表示用ioctl從
- 使用者目錄