1. ar的描述
ar命令是linux的一個備份壓縮命令,可以創建、修改備存文件(archive),或從備存文件中抽取成員文件。備存文件以一定的結構打包一個至多個其它文件(即成員文件),且成員文件的內容、模式、時間戳等信息將被保存在備存文件中。
常見的應用是,使用ar命令將多個目標文件(*.o)打包為靜態鏈接庫文件(*.a)。
2. Linux makefile&shell的一個問題
ar 命令是用來將若干 .o 文件打包成(靜態)庫文件。 按照習慣,庫文件後綴名都是 .a
crv 分別是 ar 命令的三個參數,cr的意思是創建指定.a文件(如果不存在),並將.o文件加入到這個.a文件中。 v 的意思是讓 ar 命令在執行的時候列印更多的提示信息。
ar crv abc.a $(OBJ) 就是將 abc.o 打包到庫文件 abc.a 中的意思。
更多信息可以 man ar 來看到。
3. Linux命令大全哪裡有
你好,
linux命令大全
1. 啟動,關機,登入,登出相關命令
<login> 登錄
<logout> 登出
<exit> 登出
<shutdown> 停止系統
<halt> 停止系統
<reboot> 重啟動
<poweroff> 切斷電源
<sync> 把內存里的內容寫入磁碟
<lilo> 安裝lilo啟動管理程序
<grub> 安裝lilo啟動管理程序
2. Shell相關命令
<chsh> 切換Shell
<history> 顯示命令履歷
<alias> 設置命令別名
<unalias> 取消命令別名
<which> 顯示命令所在位置
<type> 查詢命令種類
<echo> 顯示字元串或者變數內容
<set> 設置/顯示Shell變數
<printenv> 顯示環境變數
<export> 設置環境變數
<env> 設置臨時環境變數
<unset> 釋放環境變數
<setenv> 設置環境變數
<unsetenv> 釋放環境變數
<source> 執行文件當中的命令
<man> 查詢命令手冊
<info> 查詢超文本命令手冊
<whatis> 顯示命令簡介
<apropos> 通過關鍵字查詢手冊
3. 用戶管理相關命令
<su> 切換到其他用戶
<useradd> 追加用戶
<adser> 追加用戶
<userdel> 刪除用戶
<usermod> 修改用戶設置
<chfn> 修改用戶私人信息
<groupadd> 追加組
<groupdel> 刪除組
<groupmod> 修改組設置
<passwd> 更改密碼
<whoami> 顯示用戶名
<logname> 顯示登錄用戶帳號
<users> 顯示所有登錄用戶信息
<who> 查詢登錄用戶信息
<w> 查詢登錄用戶信息
<id> 顯示指定用戶的ID信息
<groups> 顯示指定用戶的所屬組
<finger> 顯示指定用戶的個人信息
<mesg> 開關與他人收發消息
<write> 給其他用戶發消息
<wall> 給所有用戶發消息
<talk> 和其他用戶聊天
4. 系統消息相關命令
<date> 顯示/設置當前時間
<uptime> 顯示系統運行時間
<arch> 顯示機器的核心構架(如i386)
<uname> 顯示操作系統信息
<tty> 顯示終端名
<last> 顯示登錄/登出在履歷
<lastb> 顯示非法登錄信息
<mpkeys> 顯示當前鍵盤配置
<loadkeys> 變更鍵盤配置
<df> 查詢磁碟使用信息
<> 查詢磁碟使用信息
<dmesg> 顯示系統啟動消息
<script> 保存輸入輸出到文件
5. 文件操作相關命令
<ls> 顯示文件列表
<tree> 顯示目錄樹
<pwd> 顯示當前路徑
<cd> 更改當前路徑
<pushd> 追加路徑到目錄堆棧
<popd> 從目錄堆棧刪除路徑
<dirs> 顯示目錄堆棧的內容
<mkdir> 創建路徑
<rmdir> 刪除路徑
<cp> 復制文件/目錄
<rm> 刪除文件/目錄
<mv> 移動文件/目錄,修改文件名
<chown> 更改文件/目錄的所有者
<chgrp> 修改文件/目錄的所有組
<chmod> 修改文件/目錄的許可權
<touch> 更改文件時間
<ln> 建立文件/目錄鏈接
<find> 查找文件
<whereis> 顯示文件存在的路徑名
<file> 查詢文件種類
<size> 查詢文件大小
6. 文件編輯相關命令
<cat> 顯示文件內容
<tee> 輸出到文件和屏幕
<more> 分屏顯示文件內容
<less> 分屏顯示文件內容
<head> 顯示文件頭部內容
<tail> 顯示文件尾部內容
<fold> 折疊顯示長行
<sort> 排列文件的行
<cmp> 比較文件內容
<diff> 顯示文件差異
<nkf> 更改日語文件編碼
<dd> 變更文件之後復制
<wc> 統計文本單詞數,文件大小等
<split> 分割文件
<paste> 以行連接文件
<join> 以欄位連接文件
<grep> 查詢文字
<uniq> 過濾重復部分顯示文件內容
<tr> 替換文字
<sed> 替換文字
7. 壓縮/解壓縮相關命令
<ar> 壓縮/解壓縮文件
<tar> 壓縮/解壓縮文件
<compress> 壓縮/解壓縮文件
<uncompress> 解壓縮
<gzip> 壓縮/解壓縮文件
<gunzip> 解壓縮
<zcat> 顯示壓縮文件的內容
<lha> 壓縮/解壓縮文件
<uuencode> 把二進制文件編碼為文本文件
<uudecode> 把經過編碼的文本文件還原為二進制文件
8. MS-DOS工具集[mtools]命令
<mdir> 顯示文件列表
<mcd> 改變當前目錄
<mmd> 新建目錄
<mrd> 刪除目錄
<mdeltree> 刪除目錄樹
<m> 復制文件
<mdel> 刪除文件
<mmove> 移動文件
<mren> 更改文件或目錄名
<mattrib> 修改文件屬性
<mtype> 顯示文件內容
<m> 查詢文件或目錄大小
<minfo> 顯示磁碟信息
<mformat> 以MS-DOS方式格式化磁碟
<mlabel> 設置磁碟標簽
9. 控制外部設備相關命令
<mount> mount上設備
<umount> 解除已經mount上的設備
<eject> 彈出(CD/DVD等)
<fdformat> 格式化軟盤
<fdisk> 配置/顯示硬碟分區
<mkfs> 格式化磁碟分區
<fsck> 檢查/修復磁碟錯誤
<lpr> 列印到列印機
<lprm> 中斷列印任務
<lpq> 顯示列印任務的狀態
<lpc> 管理/控制列印任務
<ifconfig> 顯示/設定NIC配置
10. 進程及任務管理相關命令
<ps> 顯示正在運行的進程
<jobs> 顯示後台運行任務
<fg> 把任務切換到前台
<bg> 把任務切換到後台
<kill> 中止進程或任務
<killall> 中止進程或任務
<wait> 等待進程或任務的結束
<at> 設置定時執行任務
<atq> 顯示尚未執行的任務
<atrm> 刪除定時執行任務
<batch> 在系統負荷減輕的時候執行任務
<nice> 改變優先度並執行任務
<nohup> 在後台執行任務,Logout之後也不退出
<sleep> 休眠一定的時間
11. 網路管理相關命令
<netstat> 顯示當前網路連接狀況
<route> 顯示/設置路由
<host> 顯示網路主機情況
<hostname> 顯示/設置當前主機的名字
<ping> 確認和遠程機器的連接情況
<traceroute> 顯示路由信息
<rwho> 查詢網上機器的登陸用戶
<ruptime> 查詢網上機器的系統運行時間
<rlogin> 登陸到遠程機器
<telnet> 用telnet登陸到遠程機器
<rsh> 給遠程機器發送命令
<rcp> 在遠程機器之間復制文件
<mail> 收取郵件
<sendmail> 發送郵件
<mailq> 確認郵件隊列
<ftp> 用ftp傳輸文件
12. 其他命令
<cal> 顯示日歷
<clear> 清屏
<gcc> 編譯C語言代碼
<as> 匯編
<bc> 計算
<rpm> Redhat的包管理
<dpkg> Debian的包管理
<installpkg> Slackware的包安裝(刪除命令則是removepkg)
<XF86Setup,turboxfg,Xconfigurator> 配置 X 伺服器
<startx> 啟動 X-Window 系統
4. 怎樣用ar命令將庫文件釋放到指定路徑下
用途說明
創建靜態庫。a文件。用C/C++開發程序時經常用到,但我很少單獨在命令行中使用ar命令,一般寫在makefile中,有時也會在shell腳 本中用到。關於Linux下的庫文件、靜態庫、動態庫以及怎樣創建和使用等相關知識,參見本文後面的相關資料【3】《關於Linux靜態庫和動態庫的分析》。
常用參數
格式:ar rcs libxxx.a xx1.o xx2.o
參數r:在庫中插入模塊(替換)。當插入的模塊名已經在庫中存在,則替換同名的模塊。如果若干模塊中有一個模塊在庫中不存在,ar顯示一個錯誤消息,並不替換其他同名模塊。默認的情況下,新的成員增加在庫的結尾處,可以使用其他任選項來改變增加的位置。【1】
參數c:創建一個庫。不管庫是否存在,都將創建。
參數s:創建目標文件索引,這在創建較大的庫時能加快時間。(補充:如果不需要創建索引,可改成大寫S參數;如果。a文件缺少索引,可以使用ranlib命令添加)
格式:ar t libxxx.a
顯示庫文件中有哪些目標文件,只顯示名稱。
格式:ar tv libxxx.a
顯示庫文件中有哪些目標文件,顯示文件名、時間、大小等詳細信息。
格式:nm -s libxxx.a
顯示庫文件中的索引表。
格式:ranlib libxxx.a
為庫文件創建索引表。
使用示例
示例一 在shell腳本中使用
Bash代碼
OS=`uname -r`
ar rcs libhycu.a.$OS *.o
示例二 在makefile中使用
Makefile代碼
$(BIN1): $(BIN1_OBJS)
ar rcs $@ $^
示例三 創建並使用靜態庫
第一步:編輯源文件,test.h test.c main.c。其中main.c文件中包含main函數,作為程序入口;test.c中包含main函數中需要用到的函數。
vi test.h test.c main.c
第二步:將test.c編譯成目標文件。
gcc -c test.c
如果test.c無誤,就會得到test.o這個目標文件。
第三步:由。o文件創建靜態庫。
ar rcs libtest.a test.o
第四步:在程序中使用靜態庫。
gcc -o main main.c -L. -ltest
因為是靜態編譯,生成的執行文件可以獨立於。a文件運行。
第五步:執行。
./main
示例四 創建並使用動態庫
第一步:編輯源文件,test.h test.c main.c。其中main.c文件中包含main函數,作為程序入口;test.c中包含main函數中需要用到的函數。
vi test.h test.c main.c
第二步:將test.c編譯成目標文件。
gcc -c test.c
前面兩步與創建靜態庫一致。
第三步:由。o文件創建動態庫文件。
gcc -shared -fPIC -o libtest.so test.o
第四步:在程序中使用動態庫。
gcc -o main main.c -L. -ltest
當靜態庫和動態庫同名時,gcc命令將優先使用動態庫。
第五步:執行。
LD_LIBRARY_PATH=. ./main
示例五 查看靜態庫中的文件
[root@node56 lib]# ar -t libhycu.a
base64.c.o
binbuf.c.o
cache.c.o
chunk.c.o
codec_a.c.o
…
xort.c.o
[root@node56 lib]#
[root@node56 lib]# ar -tv libhycu.a
rw-r--r-- 0/0 7220 Jul 29 19:18 2011 base64.c.o
rw-r--r-- 0/0 2752 Jul 29 19:18 2011 binbuf.c.o
rw-r--r-- 0/0 19768 Jul 29 19:18 2011 cache.c.o
…
rw-r--r-- 0/0 4580 Jul 29 19:18 2011 xort.c.o
[root@node56 lib]#
[root@node56 lib]# nm -s libhycu.a | less
Archive index:
Base64Enc in base64.c.o
GetBase64Value in base64.c.o
Base64Dec in base64.c.o
encode64 in base64.c.o
decode64 in base64.c.o
check64 in base64.c.o
test64 in base64.c.o
…
chunk_alloc in chunk.c.o
[root@node56 lib]#
5. 關於linux的ar命令中的c參數問題
man標准文檔中
c Create the archive. The specified archive is always created if it did not exist, when you request an update. But a warning is issued unless you
specify in advance that you expect to create it, by using this modifier.
說明-c只是在不存在的時候創建。 如果已經存在 則-c沒什麼作用。
6. linux命令主要有哪幾種
文件管理命令
cat chattr chgrp chmod chown cksum cmp
diff diffstat file find git gitview indent
cut ln less locate isattr mattrib mc
mdel mdir mktemp more mmove mread mren
mtools mtoolstest mv od paste patch rcp
rm slocate split tee tmpwatch touch umask
which cp in m mshowfat rhmask whereis
目錄磁碟管理命令
cd df dirs edquota eject
mcd mdeltree m mkdir mlabel mmd
mrd mzip pwd quota mount mmount
rmdir rmt stat tree umount ls
quotacheck quotaoff lndir repquota quotaon
文檔編輯命令
col colrm comm csplit ed egrep ex fgrep
fmt fold grep ispell jed joe join look
mtype pico rgrep sed sort spell tr expr
uniq wc
文件傳輸列印命令
lprm lpr lpq lpd bye ftp
uuto uupick uucp uucico tftp ncftp
ftpshut ftpwho ftpcount
磁碟維護命令
badblocks cfdisk dd e2fsck ext2ed
fsck fsck fsconf fdformat hdparm
mformat mkbootdisk mkdosfs mke2fs mkfs.ext2
mkfs.msdos mkinitrd mkisofts mkswap mpartition
swapon symlinks sync mbadblocks mkfs
fsck.ext2 fdisk losetup mkfs sfdisk
swapoff
網路通信命令
apachectl arpwatch dip getty mingetty uux
telnet uulog uustat ppp-off netconfig nc
httpd ifconfig minicom mesg dnsconf wall
netstat ping pppstats samba setserial talk
traceroute tty newaliases uuname netconf write
statserial efax pppsetup tcpmp ytalk cu
smbd testparm smbd smbclient shapecfg
系統管理命令
adser chfn useradd date exit finger
fwhois sleep suspend groupdel groupmod halt
kill last lastb login logname logout
ps nice procinfo top pstree reboot
rlogin rsh sliplogin screen shutdown rwho
sudo gitps swatch tload logrotate kill
uname chsh userconf userdel usermod vlock
who whoami whois newgrp renice su
skill w id free
系統設置命令
reset clear alias dircolors aumix bind
chroot clock crontab declare depmod dmesg
enable eval export pwunconv grpconv rpm
insmod kbdconfig lilo liloconfig lsmod minfo
set modprobe ntsysv moouseconfig passwd pwconv
rdate resize rmmod grpunconv modinfo time
setup sndconfig setenv setconsole timeconfig ulimit
unset chkconfig apmd hwclock mkkickstart fbset
unalias SVGAText Mode
備份壓縮命令
ar bunzip2 bzip2 bzip2recover gunzip unarj
compress cpio mp uuencode gzexe gzip
lha restore tar uudecode unzip zip
zipinfo
設備管理命令
setleds loadkeys rdev mpkeys MAKEDEV
7. linux什麼命令可以顯示和隱藏文件夾
1.首先展示如何隱藏文件夾。(文件和文件夾的操作方法完全一致,後面就略掉了。)假如在你的Home目錄下有個Pythonar目錄,裡面有個文件夾叫「看不見」。
8. 求linux中ar命令的使用實例,要各個參數使用的實例,
下面給了你一片文章,很實用,不知道你是否處於這個階段,如果是簡單的ar命令的使用,在網上還是很好找的。
《linux ar 添加庫到另一個庫中》
http://hi..com/20065562/blog/item/1f91882553bf73084c088db7.html
9. linux靜態庫怎麼編譯
linux庫有動態與靜態兩種,動態通常用.so為後綴,靜態用.a為後綴。例如:libhello.so
libhello.a
為了在同一系統中使用不同版本的庫,可以在庫文件名後加上版本號為後綴,例如:
libhello.so.1.0,由於程序連接默認以.so為文件後綴名。所以為了使用這些庫,通常使用建立符號連接的方式。
ln
-s
libhello.so.1.0
libhello.so.1
ln
-s
libhello.so.1
libhello.so
動態庫和靜態庫的區別:
當要使用靜態的程序庫時,連接器會找出程序所需的函數,然後將它們拷貝到執行文件,由於這種拷貝是完整的,所以一旦連接成功,靜態程序庫也就不再需要了。然而,對動態庫而言,就不是這樣。動態庫會在執行程序內留下一個標記『指明當程序執行時,首先必須載入這個庫。由於動態庫節省空間,linux下進行連接的預設操作是首先連接動態庫,也就是說,如果同時存在靜態和動態庫,不特別指定的話,將與動態庫相連接。
兩種庫的編譯產生方法:
第一步要把源代碼編繹成目標代碼。以下面的代碼hello.c為例,生成hello庫:
/*
hello.c
*/
#include
void
sayhello()
{
printf("hello,world\n");
}
用gcc編繹該文件,在編繹時可以使用任何全法的編繹參數,例如-g加入調試代碼等:
gcc
-c
hello.c
-o
hello.o
1.連接成靜態庫
連接成靜態庫使用ar命令,其實ar是archive的意思
$ar
cqs
libhello.a
hello.o
2.連接成動態庫
生成動態庫用gcc來完成,由於可能存在多個版本,因此通常指定版本號:
$gcc
-shared
-wl,-soname,libhello.so.1
-o
libhello.so.1.0
hello.o
另外再建立兩個符號連接:
$ln
-s
libhello.so.1.0
libhello.so.1
$ln
-s
libhello.so.1
libhello.so
這樣一個libhello的動態連接庫就生成了。最重要的是傳gcc
-shared
參數使其生成是動態庫而不是普通執行程序。
-wl
表示後面的參數也就是-soname,libhello.so.1直接傳給連接器ld進行處理。實際上,每一個庫都有一個soname,當連接器發現它正在查找的程序庫中有這樣一個名稱,連接器便會將soname嵌入連結中的二進制文件內,而不是它正在運行的實際文件名,在程序執行期間,程序會查找擁有
soname名字的文件,%b
10. Redhat linux常用的命令有哪些
<1>ls:列目錄。
用法:ls或ls
dirName,參數:-a顯示所有文件,-l詳悉列出文件。
<2>mkdir:建目錄。
用法:mkdir
dirName,參數:-p建多級目錄,如:mkdir
a/b/c/d/e/f
-p
<3>mount:掛載分區或鏡像文件(.iso,.img)文件。
用法:
a.磁碟分區:mount
deviceName
mountPoint
-o
options,其中deviceName是磁碟分區的設備名,比如/dev/hda1,/dev/cdrom,/dev/fd0,mountPoint是掛載點,它是一個目錄,options是參數,如果分區是linux分區,一般不用-o
options,如果是windows分區那options可以是iocharset=cp936,這樣windows分區里的中文文件名就能顯示出來了。用例:比如/dev/hda5是linux分區,我要把它掛到目錄a上(如沒目錄a那就先mkdir
a),mount
/dev/hda5
a,這樣目錄a里的東西就是分區hda5里的東西了,比如hda1是windows分區,要把它掛到b上,mount
/dev/hda1
b
-o
iocharset=cp936。
b.鏡像文件:mount
fileName
mountPoint
-o
loop,fileName是鏡像文件名(*.iso,*.img),其它的不用說了,跟上面一樣。用例:如我有一個a.iso光碟鏡像文件,mount
a.iso
a
-o
loop,這樣進入目錄a你就能瀏覽a.iso的內容了,*.img文件的用法一樣。
<4>find:查找文件。
用法:find
inDir
-name
filename,inDir是你要在哪個目錄找,filename是你要找的文件名(可以用通配符),用通配符時filename做好用單引號引起來,否則有時會出錯,用例:find
.
-name
test*,在當前目錄查找以test開頭的文件。
<5>grep:在文件里查找指定的字元串。
用法:grep
string
filename,在filename(可用通配符)里查找string(最好用雙引號引起來)。參數:-r在所有子目錄里的filename里找。用例:grep
hello
*.c
-r在當前目錄下(包括子目錄)的所有.c文件里查找hello。
<5>vi:編輯器。不用說,用linux的話,這個東西一定要會用。
用法:(只能簡單說一下),vi
filename。filename就是你要編輯的文本文件。用了執行vi
filename後,你可能會發現你無法編輯文本內容,不要著急,這是因為vi還沒進入編輯狀態,按a或i就可以進入編輯狀態了,進入編輯狀態後你就可以編輯文本了。要退出編輯狀態按Esc鍵就可以了。以下操作均要在非編輯狀態下。查找文本:輸入/和你要查找的文本並回車。退出:
輸入:
和q並回車,如果你修改了文本,那麼你要用:q!回車才能退出。保存:輸入:
w回車,如果是只讀文件要用:
w!。保存退出:輸入:
wq回車,如果是只讀就:
wq!回車。取消:
按u就可以了,按一次就取消一步,可按多次取消多步。復制粘貼一行文本:把游標移到要復制的行上的任何地方,按yy(就是連按兩次y),把游標移到要粘貼地方的上一行,按p,剛才那行文本就會被插入到游標所在行的下一行,原來游標所在行後面所有行會自動下移一行。復制粘貼多行文本:跟復制一行差不多,只是yy改成先輸入要復制的行數緊接著按yy,後面的操作一樣。把游標移到指定行:輸入:和行號並回車,比如移到123行:123回車,移到結尾回車。