Time of Update: 2018-12-04
文章目錄 Linux Crontab Format1. Scheduling a Job For a Specific Time2. Schedule a Job For More Than One Instance (e.g. Twice a Day)3. Schedule a Job for Specific Range of Time (e.g. Only on Weekdays)4. How to View Crontab Entries?5. How
Time of Update: 2018-12-04
為了將進程以一種安全的方式進入休眠,我們需要牢記兩條規則:一、永遠不要在原子上下文中進入休眠。二、進程休眠後,對環境一無所知。喚醒後,必須再次檢查以確保我們等待的條件真正為真測試例子只是針對休眠的幾個函數,例子本身沒什麼意義。測試例子在讀的時候休眠直到條件滿足後喚醒,再寫的時候喚醒一個等待讀的進程如果有進程在讀的話。static DECLARE_WAIT_QUEUE_HEAD(hwait);static unsigned state=0;ssize_t fileops_read(struct
Time of Update: 2018-12-04
作為一個開發人員,尤其是 服務端應用開發人員, 掌握適量的 Linux 常用命令是非常有助於工作的。很多日常任務,比如查看伺服器日誌,資料檔案處理、批量修改,不再需要使用主開發語言實現,而只需要掌握和使用一些命令和工具就可以了。不過,作為開發人員和作為系統管理員, 學習 linux 命令工具的程度也顯然是有差異的。 作為開發人員, 應該掌握如下使用頻繁的 linux 命令工具: 1. 檔案目錄相關: ls, cp, rm , mv, cat
Time of Update: 2018-12-04
緣由: 雖然最初是因為免費,不想再背負使用盜版軟體的恥辱感而使用linux, 但經過一段時間的熟悉,也越來越習慣這個系統了。沒有傳說中的那麼可怕。 問題: 作業系統到底是什嗎? 能夠提供給使用者什嗎? 什麼樣的系統才是最適合我們的? 通俗地講,作業系統是應用軟體或工具 + 生產力與電腦的介面, 而使用者通過應用軟體與工具 + 生產力來使用電腦。 實際上,作業系統只是提供了一個大環境,與使用者直接互動的是應用軟體和工具 +
Time of Update: 2018-12-04
掌握一些 Linux 命令列及標準工具 + 生產力, 可以大大加強日常任務的處理效率,作為開發的有力輔佐。這篇文章將專註於有用的命令及組合, 記錄我在日常生活與工作中遇到的問題及解法。 1. Linux 強力工具: find : 提供 N 多搜尋選項, 在目錄結構中尋找滿足各種條件的檔案集合; grep : 依靠強大的Regex, 在給定檔案集合中搜尋匹配模式的文本字串;
Time of Update: 2018-12-04
在博文 《如何學習 Linux 命令和工具》 中,簡要地談了下學習 linux 命令的一些基本方法和注意事項。 本文將以一些命令為例, 來談談如何具體地學習某個 linux 命令。注意,本文的重點不在命令本身,而在於命令的學習方法上。收穫幾條魚不如學會一套行之有效捕魚之法。 樣本一: tr (1) 先查看協助資訊, tr --help 或 man tr :用法:tr [選項]...
Time of Update: 2018-12-04
如何學習 Linux 命令和工具呢? 相信這是一個令許多Linux 初學者和愛好者欲前又止的頗為頭疼的一件事,也是我目前一直在思考的問題。因為我也期望能夠更輕鬆地學好用好 Linux 命令和工具。 以下是我的一些思考結果。 0. 安裝一個 Linux 版本 雖然 Windows 下提供了像 cygwin 類似的工具來類比 Unix 環境和工具 + 生產力,不過,品嘗原滋原味的口味不是更好嗎? 最重要的是有真實的氛圍。 1.
Time of Update: 2018-12-04
終於開始看 The C 的第八章 The UNIX System Interface 了!這是比較激動人心的一章,學過之後就可以開始寫 Unix 程式了,比如列印目錄,查看檔案大小、檔案屬性等,也就是說可以寫一些比較實用的小程式了。而且一些系統函數,例如 read(),write()等,是 unix 編程的基礎。另外,也講解了 malloc 的一種實現方法,我想這將會加深我對記憶體的理解。然而,第一個例子就讓我傻眼了。#include "syscalls.h"main(){ char
Time of Update: 2018-12-04
Linux檔案系統連結有兩種:永久連結和符號連結,可以使用ln命令建立,預設情況下產生永久連結。ln命令具體使用可以參考man手冊。 硬串連直接指向檔案的i節點(Index
Time of Update: 2018-12-04
參考:《鳥哥的linux私房菜》1、BIOS階段主板上的BIOS為塊flash或EEPROM程式,他會從主板上的CMOS硬體資訊,這些硬體資訊是可以通過BIOS程式修改。、、BIOS進行啟動自我測試(Power-on self test,POST),然後開始運行硬體偵測的初始化,並配置PnP裝置,之後定義出可啟動裝置。即根據BIOS中設定的啟動目標裝置(硬碟還是隨身碟還是光碟片),進入階段22、boot loader階段讀取並回合組態的第一個啟動裝置中MBR去的的Boot
Time of Update: 2018-12-04
先看懂ext2系統的格式:鳥哥的linux私房菜,尤其是superblock i-node
Time of Update: 2018-12-04
我們經常會遇到這樣的情況,從一個linux伺服器ssh另外一台linux伺服器,或者使用scp或rsync從一台linux伺服器傳資料到另外一台linux伺服器。每次操作的時候都需要輸入密碼進行驗證。如果我們在伺服器之間建立信任關係的話則不需要每次都輸入密碼了。 建立信任關係如下:(1) 切換到需要建立信任關係的使用者根目錄(2) 執行命令:ssh-keygen -d提示Enter file in which to save the key
Time of Update: 2018-12-04
可能有很多同學遇到在學院公用機房用linux作業系統無法上網,或者是自己的本本的linux作業系統在機房無法上網的情況,我在這邊分享一下解決方案; 1.ubuntu下用bras上網: 1.1.首先確保內網連通,能夠訪問小百合等內網。 1.2.接著是更新源(建議使用cn99的源): 開啟“系統->系統管理->軟體源” 在“下載自”選項中選擇“其他”->“中國”->"ubuntu.cn99.com" 開啟終端,輸入sudo apt-get
Time of Update: 2018-12-04
一、Linux下清空DNS緩衝Linux下DNS緩衝實現通常有兩種方式:一種是用DNS緩衝程式NSCD(name service cache daemon)負責管理DNS緩衝。一種實現DNS緩衝則是用Bind來架設Caching Name Server來實現。如果是清除NSCD上的Cache,可重新啟動NSCD服務來達成清除DNS Cache的效果。用這個命令:# service nscd restart或是#/etc/init.d/nscd
Time of Update: 2018-12-04
在有2.6系列版本中支援udev管理裝置檔案可以方便的建立裝置節點,不必使用mknod來建立,本文使用最小編碼來說明建立的幾個方法。//主要用到的四個方法在linux/device.h定義://建立類和釋放類的函數 建立成後將建立/sys/class/name檔案夾extern struct class *class_create(struct module *owner, const char *name);extern void class_destroy(struct class
Time of Update: 2018-12-04
Linux下select和poll的用法轉載自:http://blog.csdn.net/dingyuanpu/article/details/5572352select()函數的作用 系統調用select和poll的後端實現,用這兩個系統調用來查詢裝置是否可讀寫,或是否處於某種狀態。如果poll為空白,則驅動裝置會被認為即可讀又可寫,傳回值是一個狀態掩碼如何使用select()函數? select()函數的介面主要是建立在一種叫'fd_set'類型的基礎上。它('fd_set')
Time of Update: 2018-12-04
Iptables L7應用程式層過濾好的,上次我們簡單的討論了下iptales的用法,其中有很多的用法我們都還沒說,例如非常重要的SNAT
Time of Update: 2018-12-04
構建linux核心樹轉載自:http://hi.baidu.com/wdr_cloud/item/a101178d02f5d6934514cf57以下內容僅供個人學習之用,切勿挪用他途。先查看自己OS使用的核心版本shana@shana:~$ uname -r2.6.22-14-generic /* 這是我顯示的結果 */如果安裝系統時,自動安裝了源碼。在 /usr/src 目錄下有對應的使用的版本目錄。例如下(我是自己下的)shana@shana:/usr/src$
Time of Update: 2018-12-04
下面簡單介紹一下旗標的使用,介紹如何在任何時間只有一個執行線程可以操作一個共用資源,首先介紹一下模型,首先用c寫一個測試應用建立5個進程去開啟一個裝置,沒加旗幟時5個進程同時開啟使用完後關閉,加了旗幟後每次只能開啟一個,其他進程等待裝置使用完後才能操作,模板使用上次介紹的模板。測試c代碼,建立5個進程開啟同時開啟裝置#include <stdio.h>#include <fcntl.h>#include <sys/types.h>#include &
Time of Update: 2018-12-04
這裡先用例子介紹一下ioctrl介面的使用, 應用程式層的ioctl函數傳入的cmd和arg參數會直接傳入驅動層的ioctl介面,ioctl介面的命令有一定規範詳細查看ioctl-number.txt檔案,這裡命令的定義不在規範內,先看下面測試的例子,驅動只實現ioctrl介面並使用ioctl修改和讀取核心中的一個整型參數為例,使用兩個不同方式讀取(值傳遞和地址傳遞)。 應用程式測試代碼main.c#include <stdio.h>#include