當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式分享
[導(dǎo)讀]1.每天都可以學(xué)一點(diǎn)linux應(yīng)用技巧,來(lái)跟小編看下今天的。

1.每天都可以學(xué)一點(diǎn)linux應(yīng)用技巧,來(lái)跟小編看下今天的。

2. grep命令

剛剛參加工作的時(shí)候,對(duì)grep了解很少,但是工作中需要用的地方很多,所以就先來(lái)總結(jié)一下。

grep的功能有非常多,但是看代碼卻用不到那么多的高級(jí)功能,所以只列出對(duì)工作有幫助的幾個(gè)參數(shù),其他的以后如果需要,再繼續(xù)添加

grep “字符串” * 如果要搜索的目錄下沒(méi)有目錄的話,完全不用加參數(shù)

grep -r “字符串” * 如果有目錄,-r可以遞歸搜索,好像-R也可以,而且man手冊(cè)還區(qū)分了,可能在符號(hào)鏈接上有什么區(qū)別,但是沒(méi)有試驗(yàn)過(guò)

grep -i “字符串” * 忽略字符串中的大小寫

grep -n "字符串" * 列出字符串所在文件的行號(hào),結(jié)合vim 文件 +行號(hào) 打開(kāi)文件很有用

在grep實(shí)際使用中,可能還會(huì)結(jié)合轉(zhuǎn)義字符\,比如帶“->“的,就需要搜索時(shí)加轉(zhuǎn)義”\->“不然搜不到的。反正有時(shí)候搜索帶通用匹配符而又搜不到結(jié)果時(shí),

就加個(gè)轉(zhuǎn)義試試,說(shuō)不定有驚喜歐

其他的參數(shù)以及結(jié)合正則表達(dá)式的方法,只是了解過(guò),平時(shí)工作中并不常用,就不列舉了。

以后需要再繼續(xù)增加。

3. rpm命令

在平時(shí)工作中,rpm命令用的非常多,總結(jié)下他的基本用法

rpm -ivh + 包名 安裝包,雖然-i 參數(shù)就可以了,但是還是習(xí)慣ivh,看起來(lái)舒服點(diǎn)吧

rpm -Uvh +包名 升級(jí)包,很多時(shí)候包已經(jīng)存在了,這時(shí)需要用升級(jí)選項(xiàng)

--nodeps 、 --force 這兩個(gè)參數(shù)平時(shí)都會(huì)用到,而且結(jié)合上面要用好,其實(shí)并不容易,剛開(kāi)始工作一直不敢用這兩個(gè)參數(shù),而且就現(xiàn)在還經(jīng)常忽略他們的使用。而且有時(shí)候是必須用的,比如用低版本的包替換高版本等等

rpm -qi +包名 可以查看rpm包的信息,工作時(shí)候有時(shí)候要修改上層的應(yīng)用,但是卻不知道這個(gè)上層應(yīng)用屬于那個(gè)src.rpm包,此時(shí)這個(gè)命令真是超級(jí)有用啊q

rpm -qf +文件 安裝rpm包會(huì)在系統(tǒng)中產(chǎn)生很多文件,用這個(gè)命令可以找到這個(gè)文件屬于那個(gè)rpm包。Linux上層應(yīng)用很多時(shí)候有很多rpm包,你打開(kāi)源碼完全不知道這 個(gè)函數(shù)調(diào)用是怎么實(shí)現(xiàn)的。這個(gè)時(shí)候到/usr/include下grep下,找到對(duì)應(yīng)的.h,之后結(jié)合rpm -qf 和rpm -qi參數(shù),非常有效。

rpm -qa 可以查看linux系統(tǒng)中共安裝了哪些rpm包,當(dāng)然如果是某些不是rpm包維護(hù)的系統(tǒng)可能查不到,比如ubuntu。

rpm -qpl 可以不用安裝或解壓縮就可以看到一個(gè)rpm包中有哪些文件,很有用

--ignorearch 這個(gè)參數(shù)雖然不常用,但是需要的時(shí)候不知道真是要命啊。忽略平臺(tái)參數(shù)安裝,建議慎用。我也只是在mips64el架構(gòu)的內(nèi)核包拿來(lái)在mips架構(gòu)上有時(shí)候用的。

rpm命令工作中差不多基本就用到這些,其他的以后需要再來(lái)補(bǔ)。

4. qemu命令

昨天研究了快一天的qemu虛擬機(jī),大體上得到了下面比較靠譜的命令

1:?jiǎn)?dòng)一個(gè)安裝鏡像

qemu-img -create -f qcow2 fedora.img 10G

qemu-system-x86_64 -m 2048 -enable-kvm fedora.img -cdrom /path/yours.iso

上面的方法可以啟安裝光盤鏡像

2:至于啟一個(gè)文件系統(tǒng)

qemu-system-x86_64 -m 1024 -kernel /boot/vmlinuz-3.10.52-200.nk.6.zy.1.x86_64 -initrd /boot/initramfs-3.10.52-200.nk.6.zy.1.x86_64.img

這個(gè)有點(diǎn)反應(yīng),但是后面再加參數(shù)都沒(méi)法啟動(dòng)顯示界面

3:還有就是fedora的arm版的一個(gè)qemu,是師傅交代我要做的,當(dāng)時(shí)不知從哪里弄了一個(gè)qemu中壓縮出來(lái)的aarch64編譯機(jī),解壓打開(kāi)就是一個(gè)跟文件系統(tǒng)。結(jié)果用qemu-system-arm啟動(dòng)一直報(bào)錯(cuò)。

至于把華為提供給我們公司的內(nèi)核和initrd更換掉,更是一點(diǎn)輸出都沒(méi)有。感覺(jué)好無(wú)奈。

最后還是他詢問(wèn)了相關(guān)人員,才知道

To use Fedora 23 on QEMU you will need to use a build of UEFI that is not hosted by Fedora for licensing reasons. For convenience a dnf|yum repository had been created

相關(guān)詳細(xì)鏈接:http://fedoraproject.org/wiki/Architectures/AArch64/F23/Installation

由于這個(gè)事情暫時(shí)繞開(kāi)了,目前是沒(méi)時(shí)間搞了,以后有機(jī)會(huì)會(huì)驗(yàn)證下,畢竟讓我糾結(jié)了一天。

希望以后誰(shuí)再需要可以有點(diǎn)幫助

5. rpmbuild命令

rpmbuild命令是一個(gè)通過(guò)src.rpm反過(guò)來(lái)編譯rpm包的命令。

先用rpm -ivh 命令安裝src.rpm包,然后在家目錄下就會(huì)有一個(gè)rpmbuild的目錄

目錄下面會(huì)有兩個(gè)文件夾,SOURCES和SPEC

其中SPEC文件夾下面是spec文件,通過(guò)rpmbuild命令編譯這個(gè)文件就可以得到想要的一些東西

rpmbuild -bp *.spec 編譯后發(fā)現(xiàn)在rpmbuild/BUILD目錄下生成了源碼,其實(shí)很多時(shí)候有人會(huì)直接用rpm2cpio命令

解壓縮得到里面的源碼tar包或者到SOURCES下面得到源碼tar包。這種做法會(huì)有隱患的,因?yàn)榭赡苡行﹑atch是通過(guò)rpmbuild

編譯的過(guò)程中打進(jìn)去的,可能會(huì)產(chǎn)生不利的影響

rpmbuild -ba *.spec 編譯得到rpm和src.rpm包,如果成功,會(huì)在rpmbuild/RPM和rpmbuild/SRPM下面生成rpm包和src.rpm包

rpmbuild -bb *.spec 只編譯RPM包,不編譯SRPM包

rpmbuild -bs *.spec 只編譯出SRPM包,有時(shí)候changelog忘改了或者修改了一些和代碼無(wú)關(guān)的地方,可以只生成SRPM包,節(jié)省時(shí)間。

其中有兩個(gè)參數(shù)。

--nodeps 忽略依賴,有時(shí)候我們只想得到源碼,可以考慮在缺依賴的時(shí)候使用這個(gè)參數(shù)

--target 這個(gè)參數(shù)真是要命啊,用交叉編譯其他平臺(tái)的包時(shí),這個(gè)參數(shù)沒(méi)加的情況下解報(bào)錯(cuò)真是淚流滿面啊。我之前弄了一周實(shí)在搞不

定了,然后我?guī)煾蹈嬖V了我這個(gè)參數(shù),當(dāng)時(shí)真是要瘋了啊。。。

其他的參數(shù)暫時(shí)想不起來(lái)了,不太常用吧,以后有需要再補(bǔ)充

6. find命令

對(duì)于find命令,很尷尬的是我基本用的只有一條,那就是

find . | grep "文件名"

額,雖然粗暴,但是真是基本解決了找文件的需求。如果以后碰到高級(jí)點(diǎn)的,再補(bǔ)充

7.vim

對(duì)于vim,里面的技巧真是太多了,我只是學(xué)會(huì)了其中一些,應(yīng)付工作暫時(shí)是夠了

esc鍵 沒(méi)事的時(shí)候多按幾下,讓文件處于一般模式,這個(gè)模式可以用hjkl來(lái)進(jìn)行上下左右移動(dòng)

i和a鍵 一個(gè)是在當(dāng)前光標(biāo)前插入一個(gè)是在當(dāng)前光標(biāo)后插入,按了以后就可以從一般模式進(jìn)入插入模式,進(jìn)行文本編輯了

x 刪除一個(gè)字符---》一般模式下啊

r 替換一個(gè)字符---》一般模式下啊

dd 刪除一行,其實(shí)說(shuō)是剪切更恰當(dāng),因?yàn)榘磒又可以粘貼出來(lái)了

yy 復(fù)制一行

p 粘貼“剪貼板“里的內(nèi)容

u 是撤銷命令

home 和end 快速到一行的行頭和行尾 其實(shí)shift+“$“也可以快速到行尾,好像好像有個(gè)組合鍵快速到行頭,但是忘了

shift+"*"或shift+"#" 在當(dāng)前單詞上按上面兩個(gè)組合,可以向下或向上搜索單詞。然后按n或N上下找

/ 在一般模式下按"/"然后輸入要搜索的單詞或字符串,也可以定位,然后按n或N上下找。這個(gè)方法的優(yōu)勢(shì)在于可以搜索帶空格的字符串,很實(shí)用

v 按v進(jìn)入可視模式,上下移動(dòng)可以選中整行,一般用來(lái)大面積的刪除(d)或復(fù)制(y)。

ctrl+v 塊選中,可以結(jié)合上面的刪除,復(fù)制等命令。另外有時(shí)候我們寫代碼的時(shí)候需要連續(xù)注釋多行,塊選中每行代碼的最前面部分,然后按大寫的"I",之后就進(jìn)入了插入模式。輸入注釋符號(hào)"http://"或“#”,然后按加下esc鍵就可以注釋多行啦,很實(shí)用。如果要?jiǎng)h除這些注釋,塊選中后點(diǎn)擊“d“就可以了。

還有就是vim的跳轉(zhuǎn)問(wèn)題,用ctags命令生成tags文件,然后修改配置項(xiàng)~/.vimrc。如果以前沒(méi)有也沒(méi)關(guān)系,直接新建一個(gè)就好了。然后在最下面寫上

set tags=/路徑/tags

一定要注意這個(gè)只在當(dāng)前用戶下有效,可能切換到root或者其他用戶,就會(huì)失效。他生效的原理很重要,因?yàn)橛袝r(shí)候可能你在其他用戶下編輯,其他用戶也配置了ctags。然后跳轉(zhuǎn)的地方可能就不是你想要的地方,這會(huì)造成很大的困擾。以前我在root用戶和user下都配置了內(nèi)核源碼,關(guān)鍵是路徑不一樣,然后改來(lái)改去發(fā)現(xiàn)一團(tuán)遭,所以一定要去了解配置文件才是跳轉(zhuǎn)的關(guān)鍵。

vim用法很多,一時(shí)也想不出其他常用的方法了,暫時(shí)先寫到這里。

8 yum

yum庫(kù)有些系統(tǒng)可能用不到,對(duì)于創(chuàng)建本地倉(cāng)庫(kù)那一塊我以后用到再寫,暫時(shí)記不清楚了

由于公司的系統(tǒng)有自己的Yum源,所以裝系統(tǒng)以后就需要自己配置一下。

在/etc/yum.repo/yous.repo中寫入yum庫(kù),配置好了后就可以用Yum來(lái)裝軟件包了,非常方便

yum install +包名 可以自動(dòng)檢索依賴,作為有時(shí)候需要手動(dòng)去網(wǎng)上解依賴的人來(lái)說(shuō),yum真是很方便。特別是編包的時(shí)候發(fā)現(xiàn)yum里都有,真是幸福啊

這里貼一個(gè)rpm下載網(wǎng)址,http://rpm.pbone.net/

基本少的rpm包我會(huì)現(xiàn)在這里找,輸入欄右邊有一個(gè)高級(jí)選項(xiàng),可以選擇包的來(lái)源哪個(gè)系統(tǒng)。

輸入欄下面有分類,有時(shí)候可能編譯應(yīng)用或安裝驅(qū)動(dòng)的時(shí)候,發(fā)現(xiàn)少的是動(dòng)態(tài)庫(kù),或者就是你就是想看看我這個(gè)頭文件哪個(gè)rpm包里有,就可以勾選第一個(gè)選項(xiàng)。如果只是找rpm包,就選第三個(gè)。另外兩個(gè)沒(méi)試過(guò)。

9 ssh scp

ssh 遠(yuǎn)處登陸一個(gè)主機(jī),比如ssh test@10.3.3.66。然后輸入密碼就可以登陸別人的電腦了。有時(shí)候報(bào)一個(gè)錯(cuò),好像和安全有關(guān),需要?jiǎng)h掉一個(gè)配置文件,具體忘了。

scp 拷貝遠(yuǎn)處主機(jī)的東西到本地或拷貝本地的東西到遠(yuǎn)處主機(jī)。非常使用,而且速度快。

scp yous.txt test@10.3.3.66:/home/test

scp test@10.3.3.66:/home/test/test .

加上-R參數(shù)可以拷貝目錄

上面具體意思不知道可以去百度,我寫也沒(méi)法太詳細(xì)。

10 手動(dòng)改內(nèi)核

有時(shí)候內(nèi)核作了修改后,就會(huì)手動(dòng)換一些內(nèi)核。一般情況下,操作系統(tǒng)的引導(dǎo)文件在sda1分區(qū)的/boot下面。把要換的內(nèi)核放到這個(gè)目錄下,然后修改grub.cfg或boot.cfg。反正復(fù)制一下那些大括號(hào)里面的東西,然后改下名字。如果想啟動(dòng)時(shí)進(jìn)入字符界面,就在后面加個(gè)3,但是要

刪掉一些參數(shù),比如rhgb,其實(shí)內(nèi)核參數(shù)基本可以刪掉,不確定就多刪掉點(diǎn)。

如果系統(tǒng)壞了或者其他什么原因,沒(méi)法進(jìn)系統(tǒng)了,但是又不甘心。可以試試在手動(dòng)啟動(dòng)內(nèi)核。我目前熟悉的有pmon和grub引導(dǎo)。順便譴責(zé)下pmon,經(jīng)常

出一些我無(wú)法理解的事情,比如同樣是我做的系統(tǒng)盤,我的u盤無(wú)法識(shí)別,我?guī)煾档膮s可以。以及有些機(jī)器沒(méi)法顯示引導(dǎo)界面啊,真是不喜歡。

手動(dòng)引導(dǎo)命令分為grub和pmon

grub 舉一個(gè)啟動(dòng)本地磁盤的例子

linux (hd0,msdos1)/boot/vmlinux

boot

hd0和msdos1表示第一塊硬盤和第幾分區(qū)

ls可以查看分區(qū)

pmon 舉一個(gè)usb的例子。pmon下devls命令可以查看當(dāng)前的設(shè)備,然后@后面的設(shè)備就是這么來(lái)的,0是第一個(gè)。再有(好像)是按照abcd排的。比如0a什么的,可能不對(duì),畢竟塊2個(gè)月沒(méi)弄了。

load /dev/fs/ext2@usb0/boot/vmlinux-uni

initrd /dev/fs/exit2@usb0/boot/initrd.gz

g console=tty

有不清楚的,可以點(diǎn)開(kāi)文中的鏈接查看哦。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉