引言:mysql
你們好,我是一菲,在軟件測試當中linux 操做系統和Mysql數據庫的內容是十分的知識同時也是十分重要的。因此一菲這兩天經過查閱資料等其餘方式爲你們梳理了liunx和Mysql面試題大禮包,我想我真的很用心了,看完這篇文章可能須要10分鐘的樣子,你們要作好心理準備。linux
正文:面試
一. Linux面試題正則表達式
1.Linux的文件系統目錄配置sql
要遵循FHS規範,規範定義的兩級目錄規範以下:
/home 每一個帳號在該目錄下都有一個文件夾,進行數據的管理
/usr 有點像windows的program files和winNT結合的目錄,主要包括系統的主要程序、本機端額外安裝的軟件、圖形接口所須要的文檔、額外的函數庫、共享目錄與文件等
/bin /usr/bin /usr/local/bin 存放執行擋 如可執行的指令等
/boot 存放linux開機會用到的文件
/dev 存放linux的任何裝置和接口設備文檔
/etc 存放系統設定文檔 如帳號密碼文件、各類服務的起始檔等
/lib /usr/lib /usr/local/lib 系統使用的函數庫放置的目錄
/mnt /media 是軟盤和光盤預設掛載點的地方
/opt 主機額外安裝軟件所擺放的目錄
/proc 該目錄是一個虛擬檔案系統,他放置的數據都是在內存中,所 以自己不佔用任何的硬盤空間
/root 系統管理員的家目錄
/sbin /usr/sbin /usr/local/sbin 放置一些只有系統管理員才能動用 的執行指令
/srv 一些服務啓動以後,這些服務所須要取用的數據目錄
/tmp 讓通常使用者或者正在執行的程序暫時放置檔案的地方
/var 主要針對系統執行過程當中,常態性變更檔案放置的目錄
文檔的路徑有:絕對路徑 (absolute) 與相對路徑 (relative)。
絕對路徑爲:由根目錄 (/) 開始寫起的文件名或目錄名稱
相對路徑爲相對於目前路徑的文件名寫法。 ./表示相對當前路徑,…/表示相對於上一級目錄的路徑,表明home目錄,account表明當前帳號的home目錄)數據庫
2.文件系統命令windows
Linux的文件系統採用異步的方式,對文件的修改不會立刻寫入磁盤,通常能夠人爲的使用sync命令進行手動的數據同步到磁盤網絡
(1) linux能夠掛載不少文件系統,查看命令
cat /proc/filesystems併發
(2) 查看目錄的使用狀況命令
df -h //以G爲單位查看
df -m //以M爲單位查看less
3.查看文件或目錄大小
du -sh
4.目錄的切換命令
cd …
cd ~
cd /home
cd ./home
5.打印當前的路徑
pwd
mkdir (-m 參數能夠預設權限 -p參數能夠遞歸的建立目錄)
7.刪除目錄
rmdir(只能刪除空目錄)
若是連同內容都刪除採用 rm -rf 命令
ls -al
cp src des 若複製文件夾,加上-r參數
10.文件的刪除
rm -rf file
mv file desdir
12.文檔重命名
mv desdir desdir2
13.取文件名
basename
14.取得路徑名
dirname
15.文檔內容的查閱
cat -n :顯示文件全部內容,-n表示打印行號
16.文件內容的擷取
head tail
head [-n number] file //顯示file的前number行
tail [-n number] file //顯示ifle的後number行
linux的文檔有三個時間mtime(修改時間), atime(訪問時間),ctime(狀態修改時間)
touch命令能夠用於建立新文檔或者修改linux文檔的時間
18.linux文檔的搜索
whereis locate(這二者是直接搜索數據庫,速度快) find(搜索硬盤,速度較慢,但數據最齊全) which(用來搜索執行擋$Path設置的目錄)
which ls
whereis file //找出file的位置
locate file//查找全部目錄下的文件
find file//查看當前目錄下的全部文件
19.同時顯示兩個文件的差別
diff -c file1 file2
以並列的方式顯示兩個文件的差別
diff -y file1 file2
20.文檔連接
軟鏈接:源文件消失,目的文件也消失
硬鏈接: 其中一個修改,另外一個也修改,但刪除源文件時,目的文件不刪除
In file1 file2 //創建file1的連接,命名爲file2
In -s file1 file2 //創建file1的軟鏈接
絕對路徑: 如/etc/init.d
當前目錄和上層目錄: ./ …/
主目錄: ~/
切換目錄: cd
查看當前進程: ps 執行退出: exit 查看當前路徑: pwd
清屏: clear
退出當前命令: ctrl+c 完全退出
執行睡眠 : ctrl+z 掛起當前進程
fg 恢復後臺
查看當前用戶 id: 」id「:查看顯示目前登錄帳戶的 uid 和 gid 及所屬分
組及用戶名
查看指定幫助: 如 man adduser 這個很全 並且有例子; adduser --help 這個告
訴你一些經常使用參數; info adduesr;
ls 執行的功能: 列出指定目錄中的目錄,以及文件
哪些參數以及區別: a 全部文件
l 詳細信息,包括大小字節數,可讀可寫可執行的權限等
軟連接: ln -s slink source
硬連接: ln link source
26…目錄建立用什麼命令?建立文件用什麼命令?複製文件用什麼命令?
建立目錄: mkdir
建立文件:典型的如 touch,vi 也能夠建立文件,其實只要向一個不存在的文件輸出,都會建立文件
複製文件: cp 7. 文件權限修改用什麼命令?格式是怎麼樣的?
文件權限修改: chmod
格式以下:
chmod 751 file 給 file 的屬主分配讀、寫、執行(7)的
權限,給 file 的所在組分配讀、執行(5)的權限,給其餘用戶分配執行(1)的權限
chmod =r file 爲全部用戶分配讀權限
chmod a-wx,a+r file
同上例
$ chmod -R u+r directory 遞歸地給 directory 目錄下全部文件和子目錄的屬主分配讀的權限
vi 文件名 #編輯方式查看,可修改 cat 文件名 #顯示所有文件內容
more 文件名 #分頁顯示文件內容 less 文件名 #與 more 類似,更好的是能夠往前翻頁
tail 文件名 #僅查看尾部,還能夠指定行數 head 文件名 #僅查看頭部,還能夠指定行數
28.隨意寫文件命令?怎麼向屏幕輸出帶空格的字符串,好比」hello world」?
寫文件命令:vi
29.終端是哪一個文件夾下的哪一個文件?黑洞文件是哪一個文件夾下的哪一個命令?
/dev/tty /dev/null
mv mv
cp cp -r ????
rm rm -r rmdir
「?」可替代單個字符。 ·「*」可替代任意多個字符。 ·方括號「[charset]」可替代 charset 集中的任何單個字符,如[a-z],[abABC]
l 統計行數。 - w 統計字數。
35.Grep 命令有什麼用? 如何忽略大小寫? 如何查找不含該串的行?
是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行打印出來。
grep [stringSTRING] filename grep [^string] filename
36.Linux 中進程有哪幾種狀態?在 ps 顯示出來的信息中,分別用什麼符號表示的?
(1)、不可中斷狀態:進程處於睡眠狀態,可是此刻進程是不可中斷的。不可中斷, 指進程不響應異步信號。
(2)、暫停狀態/跟蹤狀態:向進程發送一個 SIGSTOP 信號,它就會因響應該信號 而進入 TASK_STOPPED 狀態;當進程正在被跟蹤時,它處於 TASK_TRACED 這個
特殊的狀態。「正在被跟蹤」指的是進程暫停下來,等待跟蹤它的進程對它進行操做。
(3)、就緒狀態:在 run_queue 隊列裏的狀態 (4)、運行狀態:在 run_queue 隊列裏的狀態
(5)、可中斷睡眠狀態:處於這個狀態的進程由於等待某某事件的發生(好比等待 socket 鏈接、等待信號量),而被掛起
(6)、zombie 狀態(殭屍):父親沒有經過 wait 系列的系統調用會順便將子進程的屍體(task_struct)也釋放掉
(7)、退出狀態
D 不可中斷 Uninterruptible(usually IO) R正在運行,或在隊列中的進程
S處於休眠狀態 T中止或被追蹤 Z 殭屍進程
W 進入內存交換(從內核 2.6 開始無效) X死掉的進程
38.利用 ps 怎麼顯示全部的進程? 怎麼利用 ps 查看指定進程的信息?
ps -ef (system v 輸出) ps -aux bsd 格式輸出
ps -ef | grep pid
39.哪一個命令專門用來查看後臺任務?
job -l
40.終止進程用什麼命令? 帶什麼參數?
kill -9 pid
41.怎麼查看系統支持的全部信號?
kill -l
42.搜索文件用什麼命令? 格式是怎麼樣的?
find dir -name 「string*」
43.查看當前誰在使用該主機用什麼命令? 查找本身所在的終端信息用什麼命令?
w 用戶名稱;用戶的機器名稱或 tty 號;遠程主機地址;用戶登陸系統的時間;空閒時間(做用不大);
附加到 tty(終端)的進程所用的時間(JCPU 時間);當前進程所用時間(PCPU時間);用戶當前正在使用的命令.
who 用戶名、tty 號、時間日期、主機地址
whoami,id -un 命令用於顯示登入的用戶名
last 命令可用於顯示特定用戶登陸系統的歷史記錄(last jason):用戶名稱;tty 設備號;歷史登陸時間日期;登出時間日期;總工做時間.
查找本身所在終端信息:who am i
44.使用什麼命令查看用過的命令列表?
history
45.使用什麼命令查看磁盤使用空間? 空閒空間呢?
df -hl
文件系統 容量 已用 可用 已用% 掛載點
Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot
46.使用什麼命令查看網絡是否連通?
netstat
47…使用什麼命令查看 ip 地址及接口信息?
ifconfig
48.查看各種環境變量用什麼命令?
查看全部 env 查看某個,如 home: env $HOME
在這裏推薦一個軟件測試交流羣,QQ:642830685,羣中會不按期的分享軟件測試資源,測試面試題以及測試行業資訊。你們能夠在羣中積極技術,還有大佬爲你答疑解惑。
二.Mysql面試題
service mysqld start
/init.d/mysqld start
safe_mysql &
關閉mysql****服務
service mysqld stop
/etc/init.d/mysqld stop
mysqladmin -uroot -p123456 shutdown
lsof -i:3306
netstat -tunlp|grep 3306
ss -tulnp|grep 3306
方法一
mysqladmin -u root -p123456 password ‘abc123’ #比較經常使用
方法二(sql語句修改)
update mysql.user set password=password(123456) where user=‘root’ and host=‘localhost’;
flush privileges;
方法三(sql語句修改)
set password=password(‘abc123’);
單實例登錄
mysql -uroot -p123456
多實例登錄
mysql -uroot -p123456 -S /data/3306/mysql.sock
5.查看當前數據庫的字符集
mysql> show variables like 「%charac%」;
6.查看當前數據庫版本
mysql -V
mysql> select version();
mysql> select user();
查看T1數據庫中有哪兒些表
mysql> use T1;
mysql> show tables;
8.建立GBK字符集的數據庫oldboy,並查看已建庫完整語句
mysql> create database oldboy default character set gbk;
mysql> show create database oldboy;
mysql> grant select,update,insert,delete,alter on oldboy.* to oldboy@‘localhost’ identified by ‘123456’;
10.查看建立的用戶oldboy擁有哪些權限
mysql> show grants for oldboy@‘localhost’;
mysql> select user,host from mysql.user;
mysql> use oldboy();
13… 查看建表結構及表結構的SQL語句
mysql> desc test;
mysql> show create table test\G
mysql> update test set name=‘oldgirl’ where id=1;
mysql> alter table test add age tinyint(2) after id;
15… 不退出數據庫,完成備份oldboy數據庫
mysql> system mysqldump -uroot -p123456 -B -x -F --events oldboy >/opt/bak.sql
16.刪除test表中的全部數據,並查看
mysql> delete from test;
mysql> drop table test;
mysql> drop database oldboy;
18. 不退出數據庫恢復以上刪除的數據
mysql> system mysql -uroot -p123456 </opt/bak.sql
19.把庫表的GBK字符集修改成UTF8
mysql> alter database oldboy default character set utf8;
mysql> alter table test default character set utf8;
mysql> alter table test add primary key(id);
方法一:
mysql> alter table test add index index_name(name);
方法二:
mysql> create index index_name on test(name);
mysql> alter table test add shouji char(11) after name;
mysql> insert into test (id,age,name,shouji) values (‘4’,‘27’,‘wangning’,‘13833573773’);
mysql> insert into test (id,age,name,shouji) values (‘5’,‘30’,‘litao’,‘13833573773’);
方法一:
mysql> alter table test add index index_shouji(shouji(8));
方法二:
mysql> create index index_shouji on test(shouji(8));
24.1 添加主鍵索引
mysql> alter table test add primary key id_name(id)
25. 查看建立的索引及索引類型等信息。
mysql> show index from test\G
mysql> alter table test drop index index_name;
mysql> alter table test drop index index_shouji;
27對Name列的前6個字符以及手機列的前8個字符組建聯合索引。
mysql> create index index_name_shouji on test(name(6),shouji(8));
mysql> select * from test where name=‘oldboy’ and shouji like 「135%」;
29. 查詢上述語句的執行計劃(是否使用聯合索引等)。
mysql> explain select * from test where name=「oldboy」 and shouji like 「135%」\G
mysql> alter table test engine=myisam; #myisam不區分大小寫
mysql> revoke select on oldboy.* from oldboy@‘localhost’;
mysql> drop user oldboy@‘localhost’;
mysql> drop database oldboy;
mysqladmin -uroot -p123456 shutdown
pkill mysql #先關閉mysql服務
使用–skip-grant-tables啓動mysql,忽略受權登錄驗證
mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables &
mysql #此時再登錄,已經不須要密碼了
mysql> update mysql.user set password=password(‘abc123’) where user=‘root’ and host=「localhost」; #設置新的密碼
mysql> flush privileges;
mysql -uroot -pabc123 #再次用新設置的密碼登錄便可
MySQL運維基礎知識面試問答題
36.請解釋關係型數據庫概念及主要特色?
概念:
關係型數據庫是支持採用了關係模型的數據庫,簡單來講,關係模型就是指二維表模型,而一個關係數據庫就是由二維表及其之間的聯繫所組成的一個數據組織。
特色:
最大的特色就是事務的一致性。
優勢:容易理解、使用方便、易於維護、支持SQL。
缺點:
高併發讀寫需求:網站的用戶併發很是高,每每達到每秒上萬次讀寫請求,對於傳統關係型數據庫來講,硬盤I/O是一個很大的瓶頸。
海量數據的高效讀寫:對於數據量巨大的網站來講,關係型數據庫的查詢效率很是低。
三.寫在最後:
在這裏推薦一個我本身建立的軟件測試交流羣,QQ:642830685,羣中會不按期的分享軟件測試資源,測試面試題以及行業資訊,你們能夠在羣中積極交流技術,還有行業大佬爲你答疑解惑。