中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪(fǎng)問(wèn)手機(jī)版  

Linux常用命令|Linux培訓(xùn)學(xué)習(xí)|考試認(rèn)證|工資待遇與招聘,認(rèn)準(zhǔn)超級(jí)網(wǎng)工!

招聘|合作 登陸|注冊(cè)

網(wǎng)絡(luò)工程師培訓(xùn)

當(dāng)前位置:網(wǎng)絡(luò)工程師 > 技術(shù)課程 > linux > 熱點(diǎn)關(guān)注 > linux常用命令

Linux 常用命令如何使用?

時(shí)間:2019-06-17

常用dos命令大全_linux常用命令_linux關(guān)機(jī)命令重啟命令

640?wx_fmt=gif

640?wx_fmt=jpeg

作者 |守望

責(zé)編 | 郭芮

Linux常用命令中有一些命令可以在開(kāi)發(fā)或調(diào)試過(guò)程中起到很好的幫助作用,有些可以幫助了解或優(yōu)化我們的程序,有些可以幫我們定位疑難問(wèn)題。

本文將簡(jiǎn)單介紹一下這些命令。

640?wx_fmt=png

示例程序

我們用一個(gè)小程序,來(lái)幫助后面我們對(duì)這些命令的描述,程序清單cmdTest.c如下:

#include<stdio.h>
int?test(int?a,int?b)
{
????return?a/b;
}
int?main(int?argc,char?*argv[])
{
????int?a?=?10;
????int?b?=?0;
????printf("a=%d,b=%d\n",a,b);
????test(a,b);
????return?0;
}

編譯獲得elf文件cmdTest并運(yùn)行:

gcc?-g?-o?cmdTest?cmdTest.c
./cmdTest
a=10,b=0
Floating?point?exception?(core?dumped)

程序內(nèi)容是在main函數(shù)中調(diào)用test,計(jì)算a/b的值,其中b的值為0,因此程序由于除0錯(cuò)誤異常終止。

640?wx_fmt=png

查看文件基本信息——file

file?cmdTest
cmdTest:?ELF?64-bit?LSB??executable,?x86-64,?version?1?(SYSV),?dynamically?linked?(uses?shared?libs),?for?GNU/Linux?2.6.24,?BuildID[sha1]=448e1c34b4c548120e2c04f6a2bfce4e6d2281a3,?not?stripped

常用dos命令大全_linux關(guān)機(jī)命令重啟命令_linux常用命令

通過(guò)file命令可以看到cmdTest的類(lèi)型為elf,是64位、運(yùn)行于x86-64的程序,not striped表明elf文件中還保留著符號(hào)信息以及調(diào)試信息等不影響程序運(yùn)行的內(nèi)容。

640?wx_fmt=png

查看程序依賴(lài)庫(kù)——ldd

ldd?cmdTest
???????linux-vdso.so.1?=>??(0x00007ffc8e548000)
???????libc.so.6?=>?/lib/x86_64-linux-gnu/libc.so.6?(0x00007f0621931000)
???????/lib64/ld-linux-x86-64.so.2?(0x00007f0621cf6000)

我們可以看到cmdTest依賴(lài)了libc.so等庫(kù)。

640?wx_fmt=png

查看函數(shù)或者全局變量是否存在于elf文件中——nm

nm命令用于查看elf文件的符號(hào)信息。文件編譯出來(lái)之后,我們可能不知道新增加的函數(shù)或者全局變量是否已經(jīng)成功編譯進(jìn)去。這時(shí)候,我們可以使用nm命令來(lái)查看。

例如,查看前面所提到的elf文件有沒(méi)有test函數(shù),可以用命令:

nm?cmdTest|grep?test
000000000040052d?T?test??#打印結(jié)果

按照地址順序列出符號(hào)信息:

nm?-n?cmdTest
?????????????????w?_ITM_deregisterTMCloneTable
?????????????????w?_ITM_registerTMCloneTable
?????????????????w?_Jv_RegisterClasses
?????????????????w?__gmon_start__
?????????????????U?__libc_start_main@@GLIBC_2.2.5
?????????????????U?printf@@GLIBC_2.2.5
00000000004003e0?T?_init
0000000000400440?T?_start
0000000000400470?t?deregister_tm_clones
00000000004004a0?t?register_tm_clones
00000000004004e0?t?__do_global_dtors_aux
0000000000400500?t?frame_dummy
000000000040052d?T?test
0000000000400540?T?main
0000000000400590?T?__libc_csu_init
0000000000400600?T?__libc_csu_fini
(列出部分內(nèi)容)