linux常見的問題
① linux中 幾個常見 問題 求教
修改許可權是chom命令
grep是篩選,例如ls是列出制定目錄下的文件和目錄,如果和grep結合使用 "ls | grep .c"至顯示帶 .c 的文件。
其他的就不是很清楚了,可以直接網路啊!
② 關於linux的問題
鏈接缺乏目標文件
set_msq這個函數在哪個.o文件裡面?編譯的時候加上這個
否則就報錯
總結經驗如下:
undefined reference error錯誤的原因是:
1. 沒有指定對應的庫(.o/.a/.so) 使用了庫中定義的實體,但沒有指定庫(-lXXX)或者沒有指定庫路徑(-LYYY),會導致該錯誤,
2. 連接庫參數的順序不對 在默認情況下,對於-l 使用庫的要求是越是基礎的庫越要寫在後面,無論是靜態還動態
3. gcc/ld 版本不匹配 gcc/ld的版本的兼容性問題,由於gcc2 到 gcc3大版本的兼容性存在問題(其實gcc3.2到3.4也一定程度上存在這樣的問題) 當在高版本機器上使用低版本的機器就會導致這樣的錯誤, 這個問題比較常見在32位的環境上, 另外就在32位環境不小心使用了64位的庫或者反過來64位環境使用了32位的庫.
4. C/C++相互依賴和鏈接 gcc和g++編譯結果的混用需要保證能夠extern "C" 兩邊都可以使用的介面,在我們的64位環境中gcc鏈接g++的庫還需要加上 -lstdc++,具體見前文對於混合編譯的說明
5. 運行期報錯 這個問題基本上是由於程序使用了dlopen方式載入.so, 但.so沒有把所有需要的庫都鏈接上,具體參加上文中對於靜態庫和動態庫混合使用的說明
③ linux 編譯內核幾個常見問題解決方法
第一次把自己編譯的驅動模塊載入進開發板,就出現問題,還好沒花費多長時間,下面列舉出現的問題及解決方案
1:出現insmod: error inserting 'hello.ko': -1 Invalid mole format
法一(網上的):是因為內核模塊生成的環境與運行的環境不一致,用linux-2.6.27內核源代碼生成的模塊,可能就不能在linux-2.6.32.2內核的linux環境下載入,需要在linux-2.6.27內核的linux環境下載入。
a.執行 uname -r //查看內核版本
b.一般出錯信息被記錄在文件/var/log/messages中,執行下面命令看錯誤信息
# cat /var/log/messages |tail
若出現類似下面:
Jun 4 22:07:54 localhost kernel:hello: version magic '2.6.35.6-45.fc14.i686.PAE
' should be '2.6.35.13-92.fc14.i686.PAE'
則把 Makefile里的KDIR :=/lib/moles/2.6.35.6-45.fc14.i686.PAE/build1 改為
KDIR :=/lib/moles/2.6.35.13-92.fc14.i686.PAE/build1 //改成自己內核源碼路徑
(這里的build1是一個文件鏈接,鏈接到/usr/src/kernels/2.6.35.6-45.fc14.i686.PAE和13-92的)
然並卵,我的fedora 14 /usr/src/kernels下並沒有2.6.35.13-92.fc14.i686.PAE,只有2.6.35.13-92.fc14.i686,雖然不知道兩者有什麼區別,但改成2.6.35.13-92.fc14.i686還是不行,照樣這個問題,還好後來在看教學視頻的到啟發
法二:改的還是那個位置
KDIR :=/opt/FriendlyARM/linux-2.6.32.2 //把這里改成你編譯生成kernel的那個路徑
all:
$ (MAKE) -C $ (KDIR) M = $ (PWD) moles ARCH=arm CROSS_COMPILE=arm-linux- //加這句
2. [70685.298483] hello: mole license 'unspecified' taints kernel.
[70685.298673] Disabling lock debugging e to kernel taint
方法:在模塊程序中加入: MODULE_LICENSE("GPL");
3. rmmod: chdir(2.6.32.2-FriendlyARM): No such file or directory 錯誤解決
方法:lsmod 可查看模塊信息
即無法刪除對應的模塊。
就是必須在/lib/moles下建立錯誤提示的對應的目錄((2.6.32.2)即可。
必須創建/lib/moles/2.6.32.2這樣一個空目錄,否則不能卸載ko模塊.
# rmmod nls_cp936
rmmod: chdir(/lib/moles): No such file or directory
但是這樣倒是可以卸載nls_cp936,不過會一直有這樣一個提示:
rmmod: mole 'nls_cp936' not found
初步發現,原來這是編譯kernel時使用make moles_install生成的一個目錄,
但是經測試得知,rmmod: mole 'nls_cp936' not found來自於busybox,並不是來自kernel
1).創建/lib/moles/2.6.32.2空目錄
2).使用如下源碼生成rmmod命令,就可以沒有任何提示的卸載ko模塊了[luther.gliethttp]
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>
int main(int argc, char *argv[])
{
const char *modname = argv[1];
int ret = -1;
int maxtry = 10;
while (maxtry-- > 0) {
ret = delete_mole(modname, O_NONBLOCK | O_EXCL);//系統調用sys_delete_mole
if (ret < 0 && errno == EAGAIN)
usleep(500000);
else
break;
}
if (ret != 0)
printf("Unable to unload driver mole \"%s\": %s\n",
modname, strerror(errno));
}
3).把生成的命令復制到文件系統
# arm-linux-gcc -static -o rmmod rmmod.c
# arm-linux-strip -s rmmod
# cp rmmod /nfs/
cp /nfs/rmmod /sbin
代碼如下:
proc.c
[html] view plain
<span style="font-size:18px;">#include <linux/mole.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/proc_fs.h> /* Necessary because we use the proc fs */
#define procfs_name "proctest"
MODULE_LICENSE("GPL");
struct proc_dir_entry *Our_Proc_File;
int procfile_read(char *buffer,char **buffer_location,off_t offset, int buffer_length, int *eof, void *data)
{ int ret;
ret = sprintf(buffer, "HelloWorld!\n");
return ret;
}
int proc_init()
{ Our_Proc_File = create_proc_entry(procfs_name, 0644, NULL);
if (Our_Proc_File == NULL) {
remove_proc_entry(procfs_name, NULL);
printk(KERN_ALERT "Error: Could not initialize /proc/%s\n",procfs_name);
return -ENOMEM; }
Our_Proc_File->read_proc = procfile_read;//
// Our_Proc_File->owner = THIS_MODULE;
Our_Proc_File->mode = S_IFREG | S_IRUGO;
Our_Proc_File->uid = 0;
Our_Proc_File->gid = 0;
Our_Proc_File->size = 37;
printk("/proc/%s created\n", procfs_name);
return 0;
}
void proc_exit()
{ remove_proc_entry(procfs_name, NULL);
printk(KERN_INFO "/proc/%s removed\n", procfs_name);
}
mole_init(proc_init);
mole_exit(proc_exit);</span></span></span></span></span>
[html] view plain
<span style="font-size:18px;">
ifneq ($(KERNELRELEASE),)
obj-m :=proc.o
else
KDIR :=/opt/FriendlyARM/linux-2.6.32.2
#KDIR :=/lib/moles/2.6.35.13-92.fc14.i686.PAE/build1
PWD :=$(shell pwd)
all:
$(MAKE) -C $(KDIR) M=$(PWD) moles ARCH=arm CROSS_COMPILE=arm-linux-
clean:
rm -f *.ko *.o *.mod.o *.mod.c *.symvers
endif</span></span></span></span></span>
make後生成proc.ko,再在開發板上insmod proc.ko即可
執行 dmesg 就可以看到 產生的內核信息啦
④ linux運維面試常見問題
linux運維面試常見問題
這里給大家整理了一些Linux系統運維相關的面試題,有些問題沒有標准答案,如下是我給大家整理的linux運維面試常見問題,希望對大家有所作用。
一、Linux操作系統知識
1.常見的Linux發行版本都有什麼?你最擅長哪一個?它的官網網站是什麼?說明你擅長哪一塊?
2.Linux開機啟動流程詳細步驟是什麼?系統安裝完,忘記密碼如何破解?
3.企業中Linux伺服器系統分區標準是什麼?(以硬碟為300G,內存16G為例)
4.某一天突然發現Linux系統文件只讀,該怎麼辦呢?完整操作步驟。
5.安裝一台系統使用DVD光碟安裝,如何安裝50台Linux系統如何安裝呢?思考一下。
6.用虛擬機安裝了一台Linux系統,突然想克隆一台伺服器,克隆後發現無法上網,如何解決?
7.Linux網卡配置文件路徑是什麼?要使伺服器上外網,必須滿足的條件有哪些?需要配置什麼?
8.一般可以使用什麼軟體遠程linux伺服器?通過什麼上傳文件和下載文件?
9./mnt目錄主要用於什麼?/root目錄跟root用戶有什麼關系?/根目錄與/boot目錄有什麼聯系?
10.某一天誤操作,執行了rm -rf * ,會有哪些情況發生?請舉例。
二、Linux命令及文件操作
1.在/tmp/目錄下創建test.txt文件,內容為: Hello,World! ,用一個命令寫出來。
2.給test.txt文件除所有者之外增加執行許可權,最終以數字寫出文件的許可權。
3.用vi命令編輯test.txt,如何跳轉到末行,首行,行首、行末,如何在游標行下一行插入,如何復制5行,刪除10行,查找jingfeng的字元、把jingfeng替換為jfe.net
4.查找linux系統下以txt結尾,30天沒有修改的文件大小大於20K同時具有執行許可權的文件並備份到/data/backup/目錄下。
5.當前test.txt所屬的用戶為root,組為abc,請將test.txt使擁有者為abc,組為root,寫出命令。
6.如何修改Linux啟動級別為字元模式並永久生效,如何臨時、永久關閉selinux及防火牆,請分別寫出操作方法。
7.每次開機在/tmp目錄下創建一個當天的日期文件夾(提示:當前日期表示的方法為:`date +%Y%m%d`)
8.如何查看文件內容,命令有哪些?查看文件第1行到3行,查看文件最後一行。
9.查看linux伺服器IP的命令,同時只顯示包含ip所在的行列印出來。
10.將普通用戶test加入root組的命令是?
三、Linux磁碟及軟體管理操作
1.如何添加一塊新的50G硬碟到linux伺服器系統作為單獨的分區,並正在使用?需要哪些操作步驟?
2.有個金士頓U盤,需要往伺服器/var/www/html/目錄下上傳一個index.html文件,如何操作並完成。
3.有一塊移動硬碟,上面有300G數據,如何快速cp到linux伺服器?
4.光碟裡面有一個httpd-2.2.15.xx.rpm包,如何掛載並安裝呢?
5.使用rpm命令安裝、卸載、刪除、更新ntp-0.7.12.x86_64.rpm這個軟包。
6./var/www/html/是網站的發布目錄,如何每天凌晨0點30對其進行自動備份,寫出操作步驟?
7.使用tar命令打包並壓縮/root目錄,然後移動到/tmp下,將其許可權設置其他人只讀。
8.Yum命令與rpm命令的區別?如何使用rpm安裝一個有依賴的包?
9.在這個月內,每天的早上 6 點到 12 點中,每隔 2 小時創建一個test.txt文件,內容為ok,如何實現?
10.將/usr/local/test目錄下大於100K 的文件轉移到/tmp 目錄下。
11.簡述 raid0 raid1 raid5三種工作模式的工作原理及特點。
12.如何查看佔用埠 8080 的進程。
四、Linux服務配置及管理
1.請寫出 apache2.X 版本的兩種工作模式,以及各自工作原理。如何查看apache 當前所支持的'模塊,並且查看是工作在哪種模式下?
2.Linux下nfs在客戶端無法掛載,請寫出排查步驟?
3.Linux下已經部署了dhcp伺服器,客戶端無法獲取的IP,如何解決?
4.常見的ftp軟體有哪些?Linux最常用的是?如何共享一個資源讓他人使用用戶名和密碼訪問?
5.如何禁止FTP使用匿名用戶登錄?命令行如何訪問ftp伺服器?
6.ApacheWEB伺服器的發布目錄在哪裡?
7.ApacheWEB伺服器有幾種工作模式,每種模式的簡單區別?
8.Mysql伺服器的用途是?Apache和mysql可以安裝在一台機器嗎?如何查看apache和mysql埠和進程?
9.如何在虛擬機上面部署4個網站,訪問的域名分別為www.a1.com test.a1.com www.a2.com test.a2.com?
10.假設 Apache 產生的日誌文件名為access_log,在 apache 正在運行時,執行命令 mv access_log access_log.bak,執行完後,請問新的 apache的日誌會列印到哪裡,為什麼?
11.我們都知道 FTP 協議有兩種工作模式,說說它們的大概的一個工作流程?
12.Linux內核引導時,從哪個文件中讀取要載入的文件系統。
13.寫出下面服務的常用埠ftp http dns snmp pop3、dhcp、nfs、mysql、samba等服務。
14.Mysql創建資料庫的命令,創建表的命令,插入語句的命令?
15.Mysql備份命令?Mysql如何給root用戶對jfe授權訪問,密碼為jfe.net,請寫出命令?
16.Mysql忘記密碼該如何操作呢?
17.Linux運維工程師都需要具備哪些技能和職業品質?
;⑤ Linux 的幾個問題
1、shell用來負責接收使用者輸入的指令,然後將指令解譯成核心能夠了解的方式,傳給核心去執行,核心執行後,再將結果傳回至默認的輸出。
2、執行echo $PATH就知道shell的搜索路徑了。
3、清除整個屏幕就用命令:clear。
清除前兩行就不知道嘍。
不知是否完全正確,樓主還需自己理解理解。
⑥ linux的問題
一、 如何建立多用戶
提醒大家一句,別一直使用root用戶,因為root用戶在系統中有著至高無上的權力,一不小心就可能破壞系統。比如我們想刪除/temp目錄下的文件卻將命令不小心輸成「rm
/
temp(在『/』後多了一個空格)」,那麼就極可能刪去根目錄下的所有文件。再者,「Linux是一個真正意義上的多任務、多用戶系統」,不體會一下Linux的特色豈不可惜。為了方便自己和別人使用,就在Linux系統下多建幾個用戶吧。
輸入「adser newuser」,回車,屏幕對命令沒有一點兒反應,錯啦?不,實際上,系統已接受了新用戶。你應該接著輸入命令 「passwd
newuser」,屏幕將提示輸入口令,再次輸入確認, 一個新的用戶就增加成功,真簡單。馬上登錄試一試吧。
Linux提供了六個虛擬控制台,用ALT+F1~F6切換(在X-window下用CRTL+ALT+F1~F6切換),每個控制台均可以用不同的用戶登錄,運行不同的程序。趕快為家人和朋友建個用戶吧。
二、在Linx命令行下依次運行:
cd/
tar xzvf rmp-2.3.11.tar.gz
cd rpm-2.3.11
./configure
make
make install
mkdir /var/local /var/local/lib /var/local/lib/rpm /var/lib/rpm
這樣,你就完成了RPM的安裝,以後便可以在網上或光碟上尋找軟體的RPM安裝版。然後使用RPM進行安裝,RPM的使用方法很簡單:
1. 用RPM安裝軟體包 :rpm -ivh 軟體文件名
例如 rpm -ivh fvwm95-2.0.43a.chinese-1.i386.rpm 屏幕上就會輸出該軟體包的名稱和安裝的進度條:
fvwm95 ###############
當進度條走到底,中文fvwm95(一種X-Window的界面)就安裝完了,再運行X-Window,啊,全中文的fvwm95就在我的眼前。
2. 用RPM反安裝軟體包:rpm -e 軟體名
例如:rpm -e fvwm95
3. 用RPM升級軟體包:rpm -Uvh 軟體升級版文件名
例如:rpm -Uvh
fvwm95-2.1.0a.chinese-1.i386.rpm,RPM自動反安裝原來的老版本,將升級版的軟體安裝入系統。怎麼樣,不難吧!
三、如何安裝Linux的應用軟體
對於普通用戶,安裝或升級軟體可以用Red
Hat公司的軟體包安裝與管理工具RPM。使用後你就可以輕松安裝軟體、升級軟體和卸載軟體並查詢軟體信息。
如果你安裝的是Red Hat Linux,那麼你就可以使用RPM了,如果不是,你可以先安裝RPM。方法如下:
1. 下載RPM軟體包: ftp://ftp.redhat.com/pub/code/rpm/rpm-2.3.11.tar.gz
四 、如何在Windows系統中查看Linux的文件
通過使用裝載命令mount,我們能夠在Linux中輕松地查閱、使用Windows的文件。俗話說有來有往嘛,我們當然也希望在Windows中能看到Linux的文件。可是Windows可不像Linux那麼友好,並未備有與Linux溝通的工具,怎麼辦呢?別急,網路上有個小工具叫Linuxdos,不到500K,運行在Windows下,專用於查看Linux的文件。運行之後,你可以選擇驅動器,然後它就像資源管理器一樣列出Linux的文件系統。
五、如何漢化Linux
Linux的母語是英文,所以滿屏幕都是「英國老鼠」,用起來特不方便,如果想輸入中文更沒轍。不過現在的中國軟體人員可謂人才輩出,已經為Linux的漢化提供了全面的解決方案。
1.中文模擬終端chdrv
首先,總得讓Linux能顯示中文吧!chdrv是在命令行下的中文模擬終端,也就是說,只要你裝上了它,你就可以在Linux的命令行狀態下顯示和輸入漢字了。chdrv啟動後在tty7(用Ctrl+Alt+F7)建立一個虛擬終端,用戶在tty7上登錄後就可以使用它提供的中文支持。tty1到tty6不會受到它的影響。
如果你能找到RPM格式的安裝包,就可以輕松地使用RPM安裝程序安裝它。否則你可以到ftp://ftp.ihep.ac.cn/pub/chinese/system分別取得
chdrv 的已編譯的chdrvbin-0.23.gb.tar.gz和字體文件chdrvfont.tar.gz。然後用root登錄,依次執行以下命令:
tar xvzf chdrvbin-0.23.gb.tar.gz 將編譯好的chdrv解壓到chdrv-0.23.gb目錄
mv chdrvfont.tar.gz chdrv-0.23.gb/ 將字體文件移到chdrv-0.23.gb目錄
cd chdrv-0.23.gb 進入此目錄
./installbin 運行安裝文件
2.中文輸入伺服器xcin
如果你常在X-Window中使用Linux,一定試試用XCIN來解決中文輸入的問題。XCIN 是Xwindow Chinese
INput的縮寫,是一個在X-Window模式下運行的中文輸入系統,安裝它後,X-Window的所有終端都將提供中文服務。
你可從ftp://ftp.ihep.ac.cn/pub/chinese/system/xcingb-2.2.tar.gz取得GB碼版的XCIN文件包。然後
用root登錄,依次執行以下命令:
tar xzvf xcingb-2.2.tar.gz 解壓縮
cd xcingb-2.2 進入目錄
./configure 修改安裝選項
make 編譯
make install 安裝
同樣,如果你能找到該軟體的RPM安裝版,可以用RPM來安裝。
到此為止,我們已經介紹了在命令行下和X-Window中使用中文的方法。可是在文本編輯軟體中依然只能顯示中文,卻無法輸入漢字。要解決這個問題必須自己動手修改兩個地方:
1) 為不同shell設置
若使用Bash Shell:在 /etc/profile 增加下面的內容:
stty cs8 -istrip
stty pass8
export LANG=C
export LC_CTYPE=iso-8859-1
若使用Tcsh Shell:在 /etc/csh.login 或 /etc/csh.cshrc 增加設定如下:
stty cs8 -istrip
stty pass8
setenv LANG C
setenv LC_CTYPE iso-8859-1
2) 在自己主目錄下的.inputrc文件中增加下面的內容:
set convert-meta off
set output-meta on
3.中文的窗口管理器 C-fvwm95
fvwm95就像是Linux英文Win95,中國的Linux用戶一直期望有一天能在中文的窗口下使用Linux。這一願望現在終於成為現實。中國科學院高能物理研究所計算中心的於明儉先生將fvwm95作了漢化,我們終於可以將fvwm95上那些討厭的英文換成漢字了!大家可以到ftp.ihep.ac.cn/pub/chinese/packages/中下載漢化了的fvwm95的源代碼。它所用的字型檔也可以在ftp.ihep.ac.cn/pub/chinese/fonts/pcf/中取得。下載文件中附帶了安裝說明。
4.下載BluePoint Linux Star Preview(藍點預覽版)
藍點預覽版基於Red Hat,內含:中文內核(kernel);控制台中文顯示/輸入;中文Xserver(CXWIN
0.6),X的中文顯示/輸入;漢化Message和相應庫文件,經過中文化和本地化處理的NLS message和庫文件。
a. 中文內核
1. 性能卓越, 內核實現中文支持,佔用資源極少,速度極快.
2. 多語言支持, 同屏顯示多內碼(GB/BIG5).
3. 兼容性極好,內核兼容上層應用程序,最徹底的解決辦法.
4. 支持高解析度, 完全取決與用戶自己的硬體限制.
5. 支持各種字體,支持簡繁字體共14種.
6. 熱鍵切換語言環境(GB/BIG5/EN).
b. 中文Xserver
1. 兼容性好,至少95%的純西文應用軟體可以支持中文處理.
2. 內置輸入和顯示支持,使用非常方便,無須另外安裝輸入模塊.
3. TTF字型檔支持.
4. 支持GB/BIG5內碼.
c. 漢化Message和相應庫文件
1. 提示中文化,開機、關機和常用軟體的消息提示全部中文顯示。
如果需要安裝中文xwindow和輸入法,則需要下載star-cxwin.tar.gz. 如果需要安裝中文控制台及語言環境,
則需要下載star-zhcon.tar.gz 如果需要在控制台上使用24點陣漢字型檔, 請下載star-font24.tar.gz
注意:別忘了下載Install安裝腳本! 在安裝前請仔細閱讀README和 常見問題問答!
安裝方法
1) 創建一個目錄, 將所有下載來的文件放在裡面.
2) 以root身份執行安裝腳本: # bash Install
3) 安裝腳本會先檢查系統的配置,還會自動搜索TTF字型檔, 接下來就是對舊配置文件 進行備份, 最後
開始安裝.
4) 完成安裝, 如果安裝了中文控制台環境, 則需要重新啟動.
六、如何設置音效卡
不用我說,這可是十分要緊的工作!不過如果你安裝了RED HAT Linux,則這項工作就簡單了!
用root登錄系統,運行/usr/sbin/sndconfig。出現選擇音效卡類型的畫面。一般音效卡可以選取Sound Blaster 。
選完音效卡後再設置有關的資源。用TAB鍵結合方向鍵作出選擇後,按OK,如果聽到Linus(Linux的創始人)說話的聲音,就說明音效卡設置成功了。真像老式DOS游戲的音效卡設置……
⑦ 虛擬機linux安裝常見問題
1、是
2、否
3、是(虛擬機中的linux只是windows中的一個磁碟文件,卸載虛擬機軟體不會刪除此文件,以後重裝虛擬機,設置後,還能用源來的linux)
建議:虛擬機跑不出linux的優勢,裝雙系統是最好的了。