Linux易混名词整理和相关操作
? ? 做Linux操作時對于不太熟悉的人有些名詞易混;下載的安裝包里面會夾雜一些 .tar、.gz、.glibc之類的名詞,看上去跟Windows不太相同;下面來理一下;
目前本機在Hyper-V安裝了Linux;用 CentOS-7.0-1406-x86_64-DVD.iso 這個文件安裝的;
一 Linux的GNU是什么意思
GNU是一個技術組織,發起者是一個叫Richard Stallman的人。
這個組織中黑客云集,而且多是掌握核心技術的真正高手,他們的作品多是編譯器、詞法/語法分析器、底層函數庫等。
他們發布了一種版權許可協議——GPL。
Linux的發展非常快,他本身遵循GPL版權可協議,同時又把GNU的很多軟件集成了進去(注意,Linux僅僅是一個內核,不包含外圍的應用程序),所以現在我們使用的Linux系統,應該完整地稱之為GNU/Linux才對。?
GNU是一個自由軟件工程項目,其目標是創建一套完全自由的操作系統。
到1991年Linux內核發布的時候,GNU已經幾乎完成了除了系統內核之外的各種必備軟件的開發。
(在Linus Torvalds和其他開發人員的努力下,GNU組件可以運行于Linux內核之上,實現了GNU與Linux內核的完美結合)
GPL:GNU通用公共許可證
為保證GNU軟件可以自由地“使用、復制、修改和發布”,所有GNU軟件都在一份在禁止其他人添加任何限制的情況下授權所有權利給任何人的協議條款,即GPL。
GNU是一個項目,它是GNU's not Unix的“遞歸縮寫”。
GNU倡導所謂的“free software”,翻譯過來就是自由軟件,自由軟件的意思是說每個人都有使用、傳播、修改軟件的自由,它有自己的版權申明(copyright)。
?
二 Linux中的libc和glibc
?
現在centos6.8-x64系統里的c標準庫已經成了glibc,glibc取代了libc,c標準庫的位置在/lib64/libc.so.6
Linux平臺提供的C標準庫包括:
? ? 一組頭文件,定義了很多類型和宏,聲明了很多庫函數。這些頭文件放在哪些目錄下取決于不同的編譯器,stdarg.h和stddef.h位于/usr/lib/gcc/i486-linux-gnu/4.3.2/include目錄下,stdio.h、stdlib.h、time.h、math.h、assert.h位于/usr/include目錄下。C99標準定義的頭文件有24個。
? ? 一組庫文件,提供了庫函數的實現。大多數庫函數在libc共享庫中,有些庫函數在另外的共享庫中,例如數學函數在libm中。
? ? ? ?ANSI C 函數庫是基本的 C 語言函數庫,包含了 C 語言最基本的庫函數。
? ? 上述庫函數在其各種支持 C 語言的 IDE 中都是有的。 你要是使用fopen/memcpy等等這樣標準C的函數,當然在鏈接時使用到標準C庫(ANSI C),如果你使用了read/write這些glibc庫實現的函數,肯定就在鏈接時使用到glibc庫。
? ? ? ?GNU C 函數庫是一種類似于第三方插件的東西。由于 Linux 是用 C 語言寫的,所以 Linux 的一些操作是用 C 語言實現的,因此,GUN 組織開發了一個 C 語言的庫 以便讓我們更好的利用 C 語言開發基于 Linux 操作系統的程序。不過現在的不同的 Linux 的發行版本對這兩個函數庫有不同的處理方法,有的可能已經集成在同一個庫里了。?
? ? glibc下載地址:http://mirror.hust.edu.cn/gnu/
? ? glibc是linux下面c標準庫的實現,即GNU C Library。glibc本身是GNU旗下的C標準庫,后來逐漸成為了Linux的標準c庫,而Linux下原來的標準c庫Linux libc逐漸不再被維護。
? ? glibc是gnu發布的libc庫,即c運行庫。glibc是linux系統中最底層的api,幾乎其它任何運行庫都會依賴于glibc。glibc除了封裝linux操作系統所提供的系統服務外,它本身也提供了許多其它一些必要功能服務的實現。
Linux系統glibc庫版本信息查看
有時我們經常需要查看當前系統的glibc版本,可以這樣查看:
/lib/libc.so.6
有時:/lib/x86-64-linux/libc.so.6
把這個文件當命令執行一下
或者:
因為ldd命令也是glibc提供的,所以也能查看
ldd ?--version
glibc是什么,以及與gcc的關系?
glibc是gnu發布的libc庫,也即c運行庫。glibc是linux 系統中最底層的api(應用程序開發接口),幾乎其它任何的運行庫都會倚賴于glibc。glibc除了封裝linux操作系統所提供的系統服務外,它本 身也提供了許多其它一些必要功能服務的實現,
gcc 是編譯器,基本上 Linux 下所有的程序(包括內核)都是 gcc 編譯的,libc 當然也是。
gcc 和 libc 是互相依賴的兩個軟件,它們合作的方式類似 Linux 系統的 "自舉"。先在一個可以運行的帶有老 libc 和 gcc 的系統上,用老 gcc 編譯出一個新版本的 gcc + 老 libc,再用這個新 gcc 編譯出一個新 gcc + 新 libc,再用這套東東編譯整個新系統。
看一下本機的glibc庫版本;此命令要打兩個橫線,version之前;2.17版本;
找一下glibc的頭文件的位置;
cd /,回到根目錄;
cls,Linux無此命令;
按前文;
stdarg.h和stddef.h位于/usr/lib/gcc/i486-linux-gnu/4.3.2/include目錄下;
stdio.h、stdlib.h、time.h、math.h、assert.h位于/usr/include目錄下;
usr目錄下面有lib和lib64目錄;lib目錄下沒發現gcc目錄;下回再搞;
Linux沒有 cd.. 命令;
看一下usr目錄下的include目錄;都是頭文件;
?
三 Linux下文件(文件夾)的壓縮和解壓
?
1.zip命令
例如:zip -r mysql.zip mysql 該句命令的含義是:將mysql文件夾壓縮成mysql.zip
zip -r abcdef.zip abc def.txt 這句命令的意思是將文件夾abc和文件def.txt壓縮成一個壓縮包abcdef.zip
2.unzip命令
與zip命令相反,這是解壓命令,用起來很簡單。 如:unzip mysql.zip 在當前目錄下直接解壓mysql.zip。
壓縮和解壓命令還有很多可配置的參數,如解壓縮時要不要覆蓋原有的文件等;
下面來操作一下;
把test4文件夾壓縮為test4.zip;
zip -r test4.zip test
新建一個test1.txt;
把test1文件夾和test1.txt壓縮為test1.zip;
zip test1.zip test1 test1.txt
?
四 tar
?
Linux tar命令用于備份文件。
tar是用來建立,還原備份文件的工具程序,它可以加入,解開備份文件內的文件。
實例
壓縮文件 非打包
# touch a.c ? ? ??
# tar -czvf test.tar.gz a.c ? //壓縮 a.c文件為test.tar.gz
a.c
列出壓縮文件內容
# tar -tzvf test.tar.gz?
-rw-r--r-- root/root ? ? 0 2010-05-24 16:51:59 a.c
解壓文件
# tar -xzvf test.tar.gz?
a.c
下面來操作一下;
新建一個demo1.cpp文件;
把demo1.cpp壓縮為demo1.tar.gz;
tar -czvf demo1.tar.gz demo1.cpp
查看壓縮文件內容;
tar -tzvf demo1.tar.gz
?
五 Linux中apt與apt-get的區別以及詳細使用方法
?
Ubuntu 16.04 發布時,一個引人注目的新特性便是 apt 命令的引入。
隨著 apt install package 命令的使用頻率和普遍性逐步超過 apt-get install package,越來越多的其它 Linux 發行版也開始遵循 Ubuntu 的腳步,開始鼓勵用戶使用 apt 而不是 apt-get。
那么,apt-get 與 apt 命令之間到底有什么區別呢?
apt與apt-get
apt 命令的引入就是為了解決命令過于分散的問題,它包括了 apt-get 命令出現以來使用最廣泛的功能選項,以及 apt-cache 和 apt-config 命令中很少用到的功能。
在使用 apt 命令時,用戶不必再由 apt-get 轉到 apt-cache 或 apt-config,而且 apt 更加結構化,并為用戶提供了管理軟件包所需的必要選項。
簡單來說就是:apt = apt-get、apt-cache 和 apt-config 中最常用命令選項的集合。
通過 apt 命令,用戶可以在同一地方集中得到所有必要的工具,apt 的主要目的是提供一種以「讓終端用戶滿意」的方式來處理 Linux 軟件包的有效方式。
apt 具有更精減但足夠的命令選項,而且參數選項的組織方式更為有效。除此之外,它默認啟用的幾個特性對最終用戶也非常有幫助。例如,可以在使用 apt 命令安裝或刪除程序時看到進度條。
apt 還會在更新存儲庫數據庫時提示用戶可升級的軟件包個數。
如果你使用 apt 的其它命令選項,也可以實現與使用 apt-get 時相同的操作。
雖然 apt 與 apt-get 有一些類似的命令選項,但它并不能完全向下兼容 apt-get 命令。
apt-get已棄用?
? ? 目前還沒有任何 Linux 發行版官方放出 apt-get 將被停用的消息,至少它還有比 apt 更多、更細化的操作功能。對于低級操作,仍然需要 apt-get。
apt-get install
? ? apt-get install是下載命令,下載的軟件都會存到/var/cache/apt/archives下。
? ? apt還會檢查Linux系統的包依賴關系,簡化了用戶安裝和卸載包的過程。
? ? 要下載一個軟件包時,大概需要4步:
? ? ? ? 1.掃描本地存放的軟件包更新列表,找到最新版本的軟件包。
? ? ? ? 2.進行軟件包依賴關系檢查,找到支持該軟件的所有軟件包。
? ? ? ? 3.從鏡像站點中下載相關軟件包(包含所依賴的軟件包),并存放在/var/cache/apt/archive
? ? ? ? 4.解壓軟件包,并自動完成應用程序的安裝和配置。
?
六 gzip
?
? ? 這個也是壓縮的;
Linux壓縮保留源文件的方法:gzip –c filename > filename.gz
Linux解壓縮保留源文件的方法:gunzip –c filename.gz > filename
把demo1.cpp壓縮為demo1.cpp.gz;
總結
以上是生活随笔為你收集整理的Linux易混名词整理和相关操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Matlab数据类型学习图解
- 下一篇: 安装了超图、oracle、eclipse