linux常用小知識點

答案linux考試題
1.在登錄Linux時,一個具有唯一進程ID號的shell將被調用,這個ID是什麼(b)
A.NID B.PID C.UID C.CID
答:
w命令查看用戶tty終端信息
ps -ef|grep pts/0

2.下面那個用戶存放用戶密碼信息(b)
A./boot B./etc C./var D./dev

3.用於自動補全功能時,輸入命令或文件的前1個或後幾個字母按什麼鍵(b)
A.ctrl B.tab C.alt D.esc

4.vim退出不保存的命令是(a)
A.:q B.q C.:wq D.:q!

5.文件權限讀、寫、執行三種符號的標誌依次是(a)
A.rwx B.xrw C.rdx D.rws

6.某文件的組外成員的權限是隻讀、屬主是全部權限、組內權限是可讀可寫、該文件權限爲(d)
A.467 B.674 C.476 D.764

7.改變文件的屬主的命令是©
A.chmod B.touch C.chown D.cat

8.解壓縮文件mydjango.tar.gz,我們可以用(a)
A.tar -zxvf mydjango.tar.gz
B.tar -xvz mydjango.tar.gz
C.tar -czf mydjango.tar.gz
D.tar - xvf mydjango.tar.gz

9.檢查linux是否安裝了,可用哪些命令(b) #注意rpm -qi只能查詢用yum安裝的軟件,編譯的查不到
A.rpm -ivh nginx
B.rpm -q nginx
C.rpm -U nginx
D.rpm -x nginx

10.Linux配置文件一般放在什麼目錄(a)
A.etc B.bin C.lib D.dev

11.linux中查看內存,交換內存的情況命令是© #free -m
A.top B.last c.free D.lastcomm

12.觀察系統動態進程的命令是(b)
A.free B.top C.lastcomm D.df

13.如果執行命令,chmod 746 file.txt ,那麼該文件的權限是(a)
A.rwxr—rw-
B.rw-r—r—
C.—xr—rwx
D.rwxr—r—

14.找出當前目錄以及其子目錄所有擴展名爲”.txt”的文件,那麼命令是(d)
A.ls .txt
B.find /opt -name “.txt”
C.ls -d .txt
d.find -name “*.txt”

15.什麼命令常用於檢測網絡主機是否可達? c
A.ssh B.netstat C.ping D.exit

16.退出交互式shell,應該輸入什麼? d
A:q! B.quit C.; D.exit

17.在父目錄不存在的時候,添加的參數是? d
A.-P B.-d C.-f D.-p

18.下列文件中,包含了主機名到IP地址映射關係的文件是? b
A./etc/hostname
B./etc/hosts
C./etc/resolv.conf
D./etc/networks

19.請問你使用的linux發行版是什麼?如何查看linux發行版信息?
centos7
cat /etc/os-release

20.請問你公司的服務器環境是物理機還是虛擬化?
500人企:
26臺dell power r720服務器,託管在世紀互聯
通過vmware esxi虛擬化的280+linux服務器,有100+centos 100+redhat
分爲三個環境
測試服務器、預生產服務器、生產服務器
技術棧:
svn 、java、apache、tomcat、oracle、nagios、redhat、centos、weblogic
初創企業:
5臺阿里雲

21.vim有幾種工作模式
命令模式
編輯模式
底線命令模式

22.nginx的主配置文件是?如何實現多虛擬主機?nginx反向代理參數是?
nginx.conf
多個server{}
proxy_pass http://ip

23.如何解壓縮後綴是.gz文件?
gipz -d *.gz

24.如何解壓縮後綴是.tar文件?
tar -xf .tar

25.如何解壓縮後綴是.xz文件?
xz -d .xz

26.www服務在internet最爲廣泛,採用的結構是?
Browser/Server

27.如何給linux添加dns服務器記錄?
/etc/resolv.conf
添加2條主備dns記錄
nameserver dns服務器ip

28.每月的5,15,25的晚上5點50重啓nginx
ctontab -e
50 17 5,15,25 /usr/bin/systemctl restart nginx
50 17 5,15,25 /opt/nginx112/sbin/nginx -s reload

29.每分鐘清空/tmp/內容

/usr/bin/rm -rf /tmp/*
30.每天早上6.30清空/tmp/的內容
30 6 /usr/bin/rm -rf /tmp/

31.每個星期三的下午6點和8點的第5到15分鐘之間備份mysql數據到/opt/
5-15 18,20 3 /usr/bin/cp -r /var/lib/mysql /opt/

32.某文件權限是drw-r—rw-,請解讀該權限?
d:目錄文件
rw- 屬主:可讀可寫
r— 屬組:可讀
rw- other:可讀可寫

33.centos版本系統服務管理命令是?
service
systemctl

34.如何遠程登錄阿里雲123.206.16.61?
ssh [email protected]

35.備份mariadb的命令是?
mysqldump -uroot -p

36.簡述特殊符號的含義?

root用戶的身份提示符
重啓定向覆蓋寫

重定向追加寫
$PATH 取值符
. 當前目錄
.. 上級目錄
37.如果你發現在公司無法使用rm,使用提示’禁止你使用rm’,是爲什麼?
別名alias

38.如何修改test.py屬組爲alex?
chgrp alex test.py

39.如何在windows和linux傳輸文件?有哪些方法?
xftp lrzsz scp

40.如何殺死mariad進程?
pkill mariadb

ps -ef|grep mysql
kill pid

killall mariadb

41.簡述dns解析流程?訪問www.pythonav.cn的解析流程
自上而下的順序
1.優先查找本地dns緩存
2.查找本地/etc/hosts文件,是否有強制解析
3.如果沒有去/etc/resolv.conf指定的dns服務器中查找記錄(需聯網
4.在dns服務器中找到解析記錄後,在本地dns中添加緩存
5.完成一次dns解析

42.linux如何安裝軟件?有幾種方式?
yum
rpm
源碼包

43.出於安全角度,簡述如何安裝啓動redis服務端?
更改端口
開啓protomode yes安全模式
設置redis密碼
redis-server redis.conf

44.如何保證本地測試環境和線上開發環境一致性?思路?
1.docker打包鏡像
2.手動解決環境問題 pip3 freeze導出依賴

45.virtualenv是什麼?簡述如何使用
在開發Python應用程序的時候,系統安裝的Python3只有一個版本:3.4。所有第三方的包都會被pip安裝到Python3的site-packages目錄下。

如果我們要同時開發多個應用程序,那這些應用程序都會共用一個Python,就是安裝在系統的Python 3。如果應用A需要jinja 2.7,而應用B需要jinja 2.6怎麼辦?

這種情況下,每個應用可能需要各自擁有一套“獨立”的Python運行環境。virtualenv就是用來爲一個應用創建一套“隔離”的Python運行環境。

1.安裝 pip3 install virtualenv
2.創建虛擬環境 virtualenv —no-site-packages —python=python3 env1
3.激活虛擬環境 sourcce /opt/MyVirtualenv/venvDjango1/bin/activate
4.測試 python3 或者 pip3 list

46.virtulevnwrapper是什麼?簡述使用
virtualenv 的一個最大的缺點就是,每次開啓虛擬環境之前要去虛擬環境所在目錄下的 bin 目錄下 source 一下 activate,這就需要我們記住每個虛擬環境所在的目錄。
Virtaulenvwrapper是virtualenv的擴展包,用於更方便管理虛擬環
1.安裝虛擬環境 pip3 install virtualenvwrapper
2.創建並進入虛擬環境 mkvirtualenv env1
3.切換虛擬環境 workon 虛擬環境名

redis是什麼?
Redis是一個開源的基於內存的,key-value數據結構的緩存數據庫,支持數據持久化,m-s複製,常用數據類型有string set hash list,
最佳應用場景:適用於數據變化快且數據庫大小可遇見(適合內存容量)的應用程序。
例如:股票價格、數據分析、實時數據蒐集、實時通訊。
Redis只能使用單線程,性能受限於CPU性能,故單實例CPU最高才可能達到5-6wQPS每秒(取決於數據結構,數據大小以及服務器硬件性能,日常環境中QPS高峯大約在1-2w左右)

其他nosql數據庫?
Memcached可以利用多核優勢,單實例吞吐量極高,可以達到幾十萬QPS(取決於key、value的字節大小以及服務器硬件性能,日常環境中QPS高峯大約在4-6w左右)。適用於最大程度扛量。
只支持簡單的key/value數據結構,不像Redis可以支持豐富的數據類型。
無法進行持久化,數據不能備份,只能用於緩存使用,且重啓後數據全部丟失。

MongoDB
更高的寫負載,MongoDB擁有更高的插入速度,支持高可用性,支持索引高速查詢,佔用磁盤空間較大,支持持久化

47.redis哨兵是什麼?作用是
Redis-Sentinel是Redis官方推薦的高可用性(HA)解決方案
redis哨兵是監控redis主從服務,不存儲數據的,作用是用於自動切換reidis服務主從關係,即當主庫服務停止後,會將其中一個從庫變爲主庫

48.redis-cluster是什麼?
即使使用哨兵,redis每個實例也是全量數據存儲,每個redis存儲的內容都是完整的數據。
爲了最大化利用內存,可以採用cluster羣集,就是分佈式存儲。即每臺redis存儲不同的內容。
採用redis-cluster架構正是滿足這種分佈式存儲要求的集羣的一種體現。redis-cluster架構中,被設計成共有16384個hash slot。每個master分得一部分slot,其算法爲:hash_slot = crc16(key) mod 16384 ,這就找到對應slot。採用hash slot的算法,實際上是解決了redis-cluster架構下,有多個master節點的時候,數據如何分佈到這些節點上去。key是可用key,如果有{}則取{}內的作爲可用key,否則整個可以是可用key。羣集至少需要3主3從,且每個實例使用不同的配置文件。

49.什麼是靜態資源,什麼是動態資源?
靜態資源指定的是網站的CSS/JS/HTML文件
動態資源一般指的是數據,即後端給前端提供的數據

50.配置linux軟連接的命令?
ln -s 目標文件名 軟連接名

51.如何永久添加/opt/python36/的環境變量?
vim /etc/profile
添加PATH = /opt/python36/bin:
source /etc/profile

52.給如下代碼添加註釋
server{ # 一個虛擬主機
listen 80; # 監聽的端口,訪問的端口80
server_name 192.168.11.11; # 訪問的域名192.168.11.11
location / { # 訪問的路徑 /
root html; # 指定頁面的目錄,訪問/會找到html目錄
index index.html # 指定網頁,訪問/就是訪問index.html
}
}

server{ #虛擬主機
listen 8080; #nginx監聽端口
server_name 192.168.11.11; #nginx訪問域名
location / { #location匹配url
include uwsgi_params; #將uwsgi參數添加進nginx
uwsgi_pass 0.0.0.0:8000; #反向代理轉發請求給uwsgi
}
}

53.supervisor是什麼?如何使用?
使用:
1.安裝 easy_install supervisor
2.生成配置文件 echo_supervisord_conf > /etc/supervisor.conf
3.寫入自定義的配置
[program:crm] ; 項目名稱
command=/root/Envs/knight/bin/uwsgi —ini /opt/knight/uwsgi.ini ;啓動項目的命令
stopasgroup=true ;默認爲false,進程被殺死時,是否向這個進程組發送stop信號,包括子進程
killasgroup=true ;默認爲false,向進程組發送kill信號,包括子進程
4.啓動supervisor服務
supervisord -c /etc/supervisor.conf
5.啓動所有項目
supervisorctl -c /etc/supervisor.conf start all

54.簡述項目部署流程?如何部署路飛,uwsgi+nginx+supervisor+nginx
部署路飛:
1.安裝python3 環境
2.安裝 mysql,redis,nginx
3.部署前端
1.安裝node.js的環境
2.安裝依賴包
3.修改axios的發送的端口接口
4.打包
4.部署後端
1.安裝virtualenv
2.創建虛擬環境
3.安裝django和uwsgi,以及項目的依賴包
4.修改uwsgi的配置文件
5.通過uwsgi -ini 配置文件啓動django項目
5.配置nginx
1.創建兩個虛擬主機,分別監聽80和8000端口
2.訪問80端口是訪問呢vue
3.訪問8000端口是vue發起的8000端口請求,反向代理到9000的uwsgi
6.啓動nginx,mysql,redis
7.通過supervisor來管理
55.docker是什麼?簡述docker優勢
linux容器軟件
docker應用於快速構建應用

56.你常用的docker常用命令有哪些?操作鏡像、容器、倉庫的命令
docker images # 查看本地鏡像
docker serach 鏡像 # 通過docker hub搜索鏡像
docker rmi 鏡像 # 刪除鏡像
docker save 鏡像 > 路徑 # 導出鏡像
docker load < 路徑 # 導入鏡像
docker build -t . # 打包生成鏡像

操作容器命令:
docker run -d 鏡像 解釋器 # 根據鏡像生成容器,後臺允許
docker run -it 鏡像 解釋器 # 根據鏡像生成並進入容器
docker start/stop 容器id # 啓動/停止容器
docker ps # 查看當前運行的容器
docker rm 容器id # 刪除容器
docker exec 容器id # 進入當前正在運行的容器
docker commit 容器id 鏡像名 # 將容器提交爲鏡像
docker contain ls # 查看當前運行的容器
操作倉庫的命令:
docker pull 鏡像 # 下載鏡像
docker push 鏡像 # 推送鏡像

57.哪個命令無法查看linux文件內容? d
A.tac B.more C.head D.man

58.使用rm -i 系統會提示什麼信息? b
A.命令所有參數
B.是否真的刪除
C.是否有寫的權限
D.文件的路徑

59.爲何說rm -rf 慎用? -r遞歸刪除 -f強制刪除

a60.python操作linux的模塊是? os

61.如果端口8080被佔用,如何查看是什麼進程? netstat -tunlp | grep 8080

62.redis是如何做持久化的?
rdb
Redis會定期保存數據快照至一個rbd文件中,並在啓動時自動加載rdb文件,恢復之前保存的數據,通過save指令觸發持久化,redis單獨開啓一個子進程進行數據持久化。
rdb缺點,定期執行,可能會丟失數據,並且數據量特別大時候,如果服務器cpu性能較低,rdb開啓子進程持久化性能影響很大,影響redis對外提供服務的能力。

aof
Redis會把每一個寫請求都記錄在一個日誌文件裏。在Redis重啓時,會把AOF文件中記錄的所有寫操作順序執行一遍,確保數據恢復到最新。
隨着AOF不斷地記錄寫操作日誌,因爲所有的操作都會記錄,所以必定會出現一些無用的日誌。大量無用的日誌會讓AOF文件過大,也會讓數據恢復的時間過長。
優先:數據安全,不怕數據損壞,如斷電燈問題,還可以用redis-check-aof修復數據,AOF文件人爲可讀
缺點:佔磁盤,性能損耗高,數據恢復慢

怎麼用rdb和aof
如果既配置了RDB,又配置了AOF,則在進行數據持久化的時候,都會進行,但是在根據文件恢復數據的時候,以AOF文件爲準,RDB文件作廢

63.簡述mysql主從複製原理?
(1) master將改變記錄到二進制日誌(binary log)中(這些記錄叫做二進制日誌事件,binary log events);
(2) slave將master的binary log events拷貝到它的中繼日誌(relay log);
(3) slave重做中繼日誌中的事件,將改變反映它自己的數據。

64.創建mysql用戶alex,並且授予權限select權限,命令是什麼?
grant select on . to alex@’%’;
65.nginx如何實現負載均衡?
upstream {}

66.nginx的負載均衡調度算法有幾種?是什麼?

調度算法    概述
輪詢     按時間順序逐一分配到不同的後端服務器(默認)
weight    加權輪詢,weight值越大,分配到的訪問機率越高
ip_hash    每個請求按訪問IP的hash結果分配,這樣來自同一IP的固定訪問一個後端服務器
url_hash   按照訪問URL的hash結果來分配請求,是每個URL定向到同一個後端服務器
least_conn 最少鏈接數,那個機器鏈接數少就分發

67.linux下載軟件包的方法有?
wget curl
68.windows和linux常用遠程連接工具有哪些?
xshell
putty
securecrt

69.如何給與一個腳本可執行權限
chmod u+x file

70.過濾出settings.py中所有的空白和註釋行
grep -v “^#” file |grep -v “^$”

71.過濾出file1中以abc結尾的行
grep “abc$” file1
72.容器退出後,通過docker ps查看不到,數據會丟嗎?
不會丟,因爲容器停止了,並沒有被刪除 docker ps -a可以看到
73.如何批量清理後臺停止的容器
docker rm docker ps -aq

74.如何查看容器日誌?
docker logs -f

75.wsgi是什麼?
WSGI是Web服務器網關接口。它是一個協議,描述了Web服務器如何與Web應用程序通信。

76.Django中使用的是?
答:Django中實現wsgi的是:wsgiref和uwsgi,wsgiref是開發測試用的,uwsgi是線上用的。
Flask中實現wsgi的是:werkzurg
Tornado中實現wsgi的是:tornado和gevent

77.消息隊列的作用?
1)程序解耦
2)數據冗餘,例如rabbitmq的ack機制,消息確認機制
3)削峯能力
4)可恢復性,就算系統中部分組件掛掉,消息在隊列也不丟失,待組件恢復後繼續處理消息。
5)異步通信,如發紅包,短信等流程丟入隊列,可以優先級很低的去處理。

78.服務器被攻擊,喫光了所有的CPU資源,怎麼辦?禁止重裝系統

79.zabbix nagios是什麼?

80.shell腳本啓停crm

81.keepalived實現高可用

82.redis分佈式鎖

83.rabbitmq和kafka的區別

84.rpc是什麼

85.git如何代碼review

86.git如何貢獻開源項目代碼

git常用命令
1:git init—————————初始化
2:git add .————————-從工作區,添加到版本庫
3:git commit -m”xxx”————從暫存區,添加到分支
4:git status————————查看狀態
5:git log —————————查看版本庫的日誌
6:git reflog————————查看所有日誌
7:git reset —head 版本號—-切換
8:git stash————————-保存
9:git stash————————-將第一個記錄從“某個地方”重新拿到工作區(可能有衝突)
git stash list——————————————————————————查看“某個地方”存儲的所有記錄
git stash clear—————————————————————————-清空“某個地方”
git stash pop——————————————————————————-將第一個記錄從“某個地方”重新拿到工作區(可能有衝突)
git stash apply —————————————————————————編號,將指定編號記錄從“某個地方”重新拿到工作區(可能有衝突)
git stash drop —————————————————————————編號 ,刪除指定編號的記錄
10:git branch dev—————創建分支
11:git branch -d dev———-刪除分支
12:git checkout dev————切換分支
13:git merge dev—————-合併分支
14:git branch———————查看所有分支
15:git clone https:xxx——-克隆
16:git add origin https:xxx-起個別名
17:git push origin dev ——添加到dev分支
18:git pull origin master—拉代碼
19:git fetch origin master-去倉庫獲取
20:git merge origin/master-和網上下的master分支合併
協同開發:
默認是master分支——————————master
開發的分支—————————————dev
做代碼review————————————reciew
程序員自己的分支——————————…….
1:每個員工創建自己的分支
2:將自己的代碼提交的到自己的分支—————xxx,sss,wwww…….
3:由組長或老大做代碼的review,——————-代碼提交的review分支
4:再提交到dev.
5: 再合併到master分支

熟悉 Linux常用操作。
1:man rm———————————————查看命令幫助
2:mkdir———————————————-創建目錄
3:touch———————————————-創建文件
4:cd—————————————————切換。
5:ls—————————————————查看目錄
6:ls -lh————————————————查看目錄詳細
7:pwd————————————————-查看當前目錄
8:vim————————————————-添加內容
9:echo————————————————追加內容
10:cat————————————————查看文件內容
11:mv————————————————-移動
12:cp————————————————-拷貝
13:mv————————————————重命名
15:find———————————————-搜索
16:rm————————————————-刪除數據
17:ping———————————————-查看能不能上網
19:tar cf ————————————————打壓縮
20:tar xf——————————————-解壓縮
安裝:
yum install
rpm包安裝
編譯安裝
快捷鍵:
1:Tab鍵—————————————-自動補全命令或路勁。
2:ctrl+l—————————————清屏
3: ctrl+c—————————————取消當前操作
4:vi/vim 快捷鍵:
複製當前行 ——————————yy
粘貼—————————————-p
剪切—————————————-dd
撤銷—————————————-u
恢復—————————————-ctrl + r

【常見目錄說明】

 

目錄

 

/bin

存放二進制可執行文件(ls,cat,mkdir等),常用命令一般都在這裏。

/etc

存放系統管理和配置文件

/home

存放所有用戶文件的根目錄,是用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示

 

/usr

用於存放系統應用程序,比較重要的目錄/usr/local 本地系統管理員軟件安裝目錄(安裝系統級的應用)。這是最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。

/usr/x11r6 存放x window的目錄

/usr/bin 衆多的應用程序  

/usr/sbin 超級用戶的一些管理程序  

/usr/doc Linux文檔  

/usr/include linux下開發和編譯應用程序所需要的頭文件  

/usr/lib 常用的動態鏈接庫和軟件包的配置文件  

/usr/man 幫助文檔  

/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux裏  

/usr/local/bin 本地增加的命令  

/usr/local/lib 本地增加的庫

/opt

額外安裝的可選應用程序包所放置的位置。一般情況下,我們可以把tomcat等都安裝到這裏。

/proc

虛擬文件系統目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。

/root

超級用戶(系統管理員)的主目錄(特權階級^o^)

/sbin

存放二進制可執行文件,只有root才能訪問。這裏存放的是系統管理員使用的系統級別的管理命令和程序。如ifconfig等。

/dev

用於存放設備文件。

/mnt

系統管理員安裝臨時文件系統的安裝點,系統提供這個目錄是讓用戶臨時掛載其他的文件系統。

/boot

存放用於系統引導時使用的各種文件

/lib

存放跟文件系統中的程序運行所需要的共享庫及內核模塊。共享庫又叫動態鏈接共享庫,作用類似windows裏的.dll文件,存放了根文件系統程序運行所需的共享文件。

/tmp

用於存放各種臨時文件,是公用的臨時文件存儲點。

/var

用於存放運行時需要改變數據的文件,也是某些大文件的溢出區,比方說各種服務的日誌文件(系統啓動日誌等。)等。

/lost+found

這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什麼.chk)就在這裏

 

 

 

Linux目錄和Windows目錄有着很大的不同,Linux目錄類似一個樹,最頂層是其根目錄,如下圖:

 

 

 

 

/bin 二進制可執行命令

/dev 設備特殊文件
/etc 系統管理和配置文件
/etc/rc.d 啓動的配置文件和腳本
/home 用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
/lib 標準程序設計庫,又叫動態鏈接共享庫,作用類似windows裏的.dll文件
/sbin 超級管理命令,這裏存放的是系統管理員使用的管理程序
/tmp 公共的臨時文件存儲點
/root 系統管理員的主目錄
/mnt 系統提供這個目錄是讓用戶臨時掛載其他的文件系統
/lost+found這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什麼.chk)就在這裏
/proc 虛擬的目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。
/var 某些大文件的溢出區,比方說各種服務的日誌文件
/usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄,其中包含:

/usr/x11R6 存放x window的目錄
/usr/bin 衆多的應用程序
/usr/sbin 超級用戶的一些管理程序
/usr/doc linux文檔
/usr/include linux下開發和編譯應用程序所需要的頭文件
/usr/lib 常用的動態鏈接庫和軟件包的配置文件
/usr/man 幫助文檔
/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux裏
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的庫根文件系統

 

通常情況下,根文件系統所佔空間一般應該比較小,因爲其中的絕大部分文件都不需要經常改動,而且包括嚴格的文件和一個小的不經常改變的文件系統不容易損壞。
除了可能的一個叫/ vmlinuz標準的系統引導映像之外,根目錄一般不含任何文件。所有其他文件在根文件系統的子目錄中。
1. /bin目錄
/ b i n目錄包含了引導啓動所需的命令或普通用戶可能用的命令(可能在引導啓動後)。這些命令都是二進制文件的可執行程序( b i n是b i n a r y - -二進制的簡稱),多是系統中重要的系統文件。
2. /sbin目錄
/ s b i n目錄類似/bin ,也用於存儲二進制文件。因爲其中的大部分文件多是系統管理員使用的基本的系統程序,所以雖然普通用戶必要且允許時可以使用,但一般不給普通用戶使用。
3. /etc目錄
/ e t c目錄存放着各種系統配置文件,其中包括了用戶信息文件/ e t c / p a s s w d,系統初始化文件/ e t c / r c等。l i n u x正是*這些文件才得以正常地運行。
4. /root目錄
/root 目錄是超級用戶的目錄。
5. /lib目錄
/ l i b目錄是根文件系統上的程序所需的共享庫,存放了根文件系統程序運行所需的共享文件。這些文件包含了可被許多程序共享的代碼,以避免每個程序都包含有相同的子程序的副本,故可以使得可執行文件變得更小,節省空間。
6. /lib/modules 目錄
/lib/modules 目錄包含系統核心可加載各種模塊,尤其是那些在恢復損壞的系統時重新引導系統所需的模塊(例如網絡和文件系統驅動)。
7. /dev目錄
/ d e v目錄存放了設備文件,即設備驅動程序,用戶通過這些文件訪問外部設備。比如,用戶可以通過訪問/ d e v / m o u s e來訪問鼠標的輸入,就像訪問其他文件一樣。
8. /tmp目錄
/tmp 目錄存放程序在運行時產生的信息和數據。但在引導啓動後,運行的程序最好使用/ v a r / t m p來代替/tmp ,因爲前者可能擁有一個更大的磁盤空間。
9. /boot目錄
/ b o o t目錄存放引導加載器(bootstrap loader)使用的文件,如l i lo,核心映像也經常放在這裏,而不是放在根目錄中。但是如果有許多核心映像,這個目錄就可能變得很大,這時使用單獨的文件系統會更好一些。還有一點要注意的是,要確保核心映像必須在i d e硬盤的前1 0 2 4柱面內。
10. /mnt目錄
/ m n t目錄是系統管理員臨時安裝( m o u n t )文件系統的安裝點。程序並不自動支持安裝到/mnt 。/mnt 下面可以分爲許多子目錄,例如/mnt/dosa 可能是使用m s d o s文件系統的軟驅,而/mnt/exta 可能是使用e x t 2文件系統的軟驅,/mnt/cdrom 光驅等等。
11. /proc, /usr,/var,/home目錄
其他文件系統的安裝點。

 

下面詳細介紹;

/etc文件系統

/etc 目錄包含各種系統配置文件,下面說明其中的一些。其他的你應該知道它們屬於哪個程序,並閱讀該程序的m a n頁。許多網絡配置文件也在/etc 中。
1. /etc/rc或/etc/rc.d或/etc/rc?.d
啓動、或改變運行級時運行的腳本或腳本的目錄。
2. /etc/passwd
用戶數據庫,其中的域給出了用戶名、真實姓名、用戶起始目錄、加密口令和用戶的其
他信息。
3. /etc/fdprm
軟盤參數表,用以說明不同的軟盤格式。可用setfdprm 進行設置。更多的信息見s e t f d p r m
的幫助頁。
4. /etc/fstab
指定啓動時需要自動安裝的文件系統列表。也包括用swapon -a啓用的s w a p區的信息。
5. /etc/group
類似/etc/passwd ,但說明的不是用戶信息而是組的信息。包括組的各種數據。
6. /etc/inittab
init 的配置文件。
7. /etc/issue
包括用戶在登錄提示符前的輸出信息。通常包括系統的一段短說明或歡迎信息。具體內容由系統管理員確定。
8. /etc/magic
“f i l e”的配置文件。包含不同文件格式的說明,“f i l e”基於它猜測文件類型。
9. /etc/motd
m o t d是message of the day的縮寫,用戶成功登錄後自動輸出。內容由系統管理員確定。常用於通告信息,如計劃關機時間的警告等。
10. /etc/mtab
當前安裝的文件系統列表。由腳本( s c r i t p )初始化,並由mount 命令自動更新。當需要一個當前安裝的文件系統的列表時使用(例如df 命令)。
11. /etc/shadow
在安裝了影子( s h a d o w )口令軟件的系統上的影子口令文件。影子口令文件將/ e t c / p a s s wd文件中的加密口令移動到/ e t c / s h a d o w中,而後者只對超級用戶( r o o t)可讀。這使破譯口令更困難,以此增加系統的安全性。
12. /etc/login.defs
l o g i n命令的配置文件。
13. /etc/printcap
類似/etc/termcap ,但針對打印機。語法不同。
14. /etc/profile 、/ e t c / c s h . l o g i n、/etc/csh.cshrc
登錄或啓動時b o u r n e或c shells執行的文件。這允許系統管理員爲所有用戶建立全局缺省環境。
15. /etc/securetty
確認安全終端,即哪個終端允許超級用戶( r o o t )登錄。一般只列出虛擬控制檯,這樣就不可能(至少很困難)通過調制解調器( m o d e m )或網絡闖入系統並得到超級用戶特權。
16. /etc/shells
列出可以使用的s h e l l。chsh 命令允許用戶在本文件指定範圍內改變登錄的s h e l l。提供一臺機器f t p服務的服務進程ftpd 檢查用戶s h e l l是否列在/etc/shells 文件中,如果不是,將不允許該用戶登錄。
17. /etc/termcap
終端性能數據庫。說明不同的終端用什麼“轉義序列”控制。寫程序時不直接輸出轉義序列(這樣只能工作於特定品牌的終端),而是從/etc/termcap 中查找要做的工作的正確序列。
這樣,多數的程序可以在多數終端上運行。

 

/dev文件系統

/dev 目錄包括所有設備的設備文件。設備文件用特定的約定命名,這在設備列表中說明。
設備文件在安裝時由系統產生,以後可以用/dev/makedev 描述。/ d e v / m a k e d e v.local是
系統管理員爲本地設備文件(或連接)寫的描述文稿(即如一些非標準設備驅動不是標準
makedev 的一部分)。下面簡要介紹/ d e v下一些常用文件。
1. /dev/console
系統控制檯,也就是直接和系統連接的監視器。
2. /dev/hd
i d e硬盤驅動程序接口。如: / d e v / h d a指的是第一個硬盤, h a d 1則是指/ d e v / h da的第一個
分區。如系統中有其他的硬盤,則依次爲/ d e v / h d b、/ d e v / h d c、. . . . ..;如有多個分區則依次爲
h d a 1、h d a 2 . . . . . .
3. /dev/sd
s c s i磁盤驅動程序接口。如有系統有s c s i硬盤,就不會訪問/ d e v / h a d,而會訪問/ d e v / sd a。
4. /dev/fd
軟驅設備驅動程序。如: / d e v / f d 0指系統的第一個軟盤,也就是通常所說的a:盤,
/ d e v / f d 1指第二個軟盤,. . . . . .而/ d e v / f d 1 h 1 4 40則表示訪問驅動器1中的4 . 5高密盤。
5. /dev/st
s c s i磁帶驅動器驅動程序。
6. /dev/tty
提供虛擬控制檯支持。如: / d e v / t t y 1指的是系統的第一個虛擬控制檯, / d e v / t t y2則是系統
的第二個虛擬控制檯。
7. /dev/pty
提供遠程登陸僞終端支持。在進行te l n e t登錄時就要用到/ d e v / p t y設備。
8. /dev/ttys
計算機串行接口,對於d o s來說就是“ c o m 1”口。
9. /dev/cua
計算機串行接口,與調制解調器一起使用的設備。
10. /dev/null
“黑洞”,所有寫入該設備的信息都將消失。例如:當想要將屏幕上的輸出信息隱藏起來時,只要將輸出信息輸入到/ d e v / n u l l中即可。

 

/usr文件系統

/usr 是個很重要的目錄,通常這一文件系統很大,因爲所有程序安裝在這裏。/usr 裏的
所有文件一般來自l i n u x發行版( d i s t r i b u t i o n);本地安裝的程序和其他東西在/usr/local 下,因爲這樣可以在升級新版系統或新發行版時無須重新安裝全部程序。/usr目錄下的許多內容是可選的,但這些功能會使用戶使用系統更加有效。/ u s r可容納許多大型的軟件包和它們的配置文件。下面列出一些重要的目錄(一些不太重要的目錄被省略了)。
1. /usr/x11r6
包含x wi n d o w系統的所有可執行程序、配置文件和支持文件。爲簡化x的開發和安裝,x的文件沒有集成到系統中。x wi n d o w系統是一個功能強大的圖形環境,提供了大量的圖形工具程序。用戶如果對microsoft wi n d o w s或m a c h i n t o s h比較熟悉的話,就不會對x win d o w系統感到束手無策了。
2. /usr/x386
類似/ u s r / x 11r6 ,但是是專門給x 11 release 5的。
3. /usr/bin
集中了幾乎所有用戶命令,是系統的軟件庫。另有些命令在/bin 或/usr/local/bin 中。
4. /usr/sbin
包括了根文件系統不必要的系統管理命令,例如多數服務程序。
5. /usr/man、/ u s r / i n f o、/ u s r / d o c
這些目錄包含所有手冊頁、g n u信息文檔和各種其他文檔文件。每個聯機手冊的“節”都有兩個子目錄。例如: / u s r / m a n / m a n 1中包含聯機手冊第一節的源碼(沒有格式化的原始文件),/ u s r / m a n / c a t 1包含第一節已格式化的內容。l聯機手冊分爲以下九節:內部命令、系統調用、庫函數、設備、文件格式、遊戲、宏軟件包、系統管理和核心程序。
6. /usr/include
包含了c語言的頭文件,這些文件多以. h結尾,用來描述c語言程序中用到的數據結構、子過程和常量。爲了保持一致性,這實際上應該放在/usr/lib 下,但習慣上一直沿用了這個名字。
7. /usr/lib
包含了程序或子系統的不變的數據文件,包括一些s i t e - w i d e配置文件。名字l i b來源於庫(library); 編程的原始庫也存在/usr/lib 裏。當編譯程序時,程序便會和其中的庫進行連接。也有許多程序把配置文件存入其中。
8. /usr/local
本地安裝的軟件和其他文件放在這裏。這與/ u s r很相似。用戶可能會在這發現一些比較大的軟件包,如t e x、e m a c s等。

 

/var文件系統

/var 包含系統一般運行時要改變的數據。通常這些數據所在的目錄的大小是要經常變化或擴充的。原來/ v a r目錄中有些內容是在/ u s r中的,但爲了保持/ u s r目錄的相對穩定,就把那些需要經常改變的目錄放到/ v a r中了。每個系統是特定的,即不通過網絡與其他計算機共享。下面列出一些重要的目錄(一些不太重要的目錄省略了)。
1. /var/catman
包括了格式化過的幫助( m a n )頁。幫助頁的源文件一般存在/ u s r / m a n / m a n中;有些m an頁可能有預格式化的版本,存在/ u s r / m a n / c a t中。而其他的m a n頁在第一次看時都需要格式化,格式化完的版本存在/var/man 中,這樣其他人再看相同的頁時就無須等待格式化了。(/var/catman 經常被清除,就像清除臨時目錄一樣。)
2. /var/lib
存放系統正常運行時要改變的文件。
3. /var/local
存放/usr/local 中安裝的程序的可變數據(即系統管理員安裝的程序)。注意,如果必要,即使本地安裝的程序也會使用其他/var 目錄,例如/var/lock 。
4. /var/lock
鎖定文件。許多程序遵循在/var/lock 中產生一個鎖定文件的約定,以用來支持他們正在使用某個特定的設備或文件。其他程序注意到這個鎖定文件時,就不會再使用這個設備或文件。
5. /var/log
各種程序的日誌( l o g )文件,尤其是login (/var/log/wtmp log紀錄所有到系統的登錄和註銷) 和syslog (/var/log/messages 紀錄存儲所有核心和系統程序信息)。/var/log裏的文件經常不確定地增長,應該定期清除。
6. /var/run
保存在下一次系統引導前有效的關於系統的信息文件。例如, /var/run/utmp 包含當前登錄的用戶的信息。
7. /var/spool
放置“假脫機( s p o o l )”程序的目錄,如m a i l、n e w s、打印隊列和其他隊列工作的目錄。每個不同的s p o o l在/var/spool 下有自己的子目錄,例如,用戶的郵箱就存放在/var/spool/mail中。
8. /var/tmp
比/tmp 允許更大的或需要存在較長時間的臨時文件。注意系統管理員可能不允許/var/tmp 有很舊的文件。

 

/proc文件系統

/proc 文件系統是一個僞的文件系統,就是說它是一個實際上不存在的目錄,因而這是一
個非常特殊的目錄。它並不存在於某個磁盤上,而是由核心在內存中產生。這個目錄用於提
供關於系統的信息。下面說明一些最重要的文件和目錄(/proc 文件系統在proc man頁中有更詳
細的說明)。
1. /proc/x
關於進程x的信息目錄,這一x是這一進程的標識號。每個進程在/proc 下有一個名爲自
己進程號的目錄。
2. /proc/cpuinfo
存放處理器( c p u )的信息,如c p u的類型、製造商、型號和性能等。
3. /proc/devices
當前運行的核心配置的設備驅動的列表。
4. /proc/dma
顯示當前使用的d m a通道。
5. /proc/filesystems
核心配置的文件系統信息。
6. /proc/interrupts
顯示被佔用的中斷信息和佔用者的信息,以及被佔用的數量。
7. /proc/ioports
當前使用的i / o端口。
8. /proc/kcore
系統物理內存映像。與物理內存大小完全一樣,然而實際上沒有佔用這麼多內存;它僅僅是在程序訪問它時才被創建。(注意:除非你把它拷貝到什麼地方,否則/proc 下沒有任何東西佔用任何磁盤空間。)
9. /proc/kmsg
核心輸出的消息。也會被送到s y s l o g。
10. /proc/ksyms
核心符號表。
11. /proc/loadavg
系統“平均負載”; 3個沒有意義的指示器指出系統當前的工作量。
12. /proc/meminfo
各種存儲器使用信息,包括物理內存和交換分區( s w a p )。
13. /proc/modules
存放當前加載了哪些核心模塊信息。
14. /proc/net
網絡協議狀態信息。
15. /proc/self
存放到查看/proc 的程序的進程目錄的符號連接。當2個進程查看/proc 時,這將會是不同的連接。這主要便於程序得到它自己的進程目錄。
16. /proc/stat
系統的不同狀態,例如,系統啓動後頁面發生錯誤的次數。
17. /proc/uptime
系統啓動的時間長度。
18. /proc/version
核心版本

#!/bin/bash

set -e

command 1
command 2
...

exit 0
----------------------------------------------------------
你寫的每個腳本都應該在文件開頭加上set -e,這句語句告訴bash如果任何語句的執行結果不是true則應該退出。
這樣的好處是防止錯誤像滾雪球般變大導致一個致命的錯誤,而這些錯誤本應該在之前就被處理掉。如果要增加可讀性,可以使用set -o errexit,它的作用與set -e相同。

問題一:

絕對路徑用什麼符號表示?當前目錄、上層目錄用什麼表示?主目錄用什麼表示? 切換目錄用什麼命令?

答案:
絕對路徑: 如/etc/init.d
當前目錄和上層目錄: ./  ../
主目錄: ~/
切換目錄: cd

問題二:

怎麼查看當前進程?怎麼執行退出?怎麼查看當前路徑?
答案:
查看當前進程: ps
執行退出: exit
查看當前路徑: pwd

問題三:

怎麼清屏?怎麼退出當前命令?怎麼執行睡眠?怎麼查看當前用戶 id?查看指定幫助用什麼命令?
答案:
清屏: clear
退出當前命令: ctrl+c 徹底退出
執行睡眠 : ctrl+z 掛起當前進程fg 恢復後臺
查看當前用戶 id: ”id“:查看顯示目前登陸賬戶的 uid 和 gid 及所屬分組及用戶名
查看指定幫助: 如 man adduser 這個很全 而且有例子; adduser --help 這個告訴你一些常用參數; info adduesr;

問題四:

Ls 命令執行什麼功能? 可以帶哪些參數,有什麼區別?
答案:
ls 執行的功能: 列出指定目錄中的目錄,以及文件
哪些參數以及區別: a 所有文件l 詳細信息,包括大小字節數,可讀可寫可執行的權限等

問題五:

建立軟鏈接(快捷方式),以及硬鏈接的命令。
答案:
軟鏈接: ln -s slink source
硬鏈接: ln link source

問題六:

目錄創建用什麼命令?創建文件用什麼命令?複製文件用什麼命令?
答案:
創建目錄: mkdir
創建文件:典型的如 touch,vi 也可以創建文件,其實只要向一個不存在的文件輸出,都會創建文件
複製文件: cp 7. 文件權限修改用什麼命令?格式是怎麼樣的?
文件權限修改: chmod
格式如下:

$ chmod u+x file 給 file 的屬主增加執行權限
$ chmod 751 file 給 file 的屬主分配讀、寫、執行(7)的權限,給 file 的所在組分配讀、執行(5)的權限,給其他用戶分配執行(1)的權限
$ chmod u=rwx,g=rx,o=x file 上例的另一種形式
$ chmod =r file 爲所有用戶分配讀權限
$ chmod 444 file 同上例
$ chmod a-wx,a+r file同上例
$ chmod -R u+r directory 遞歸地給 directory 目錄下所有文件和子目錄的屬主分配讀的權限

 

問題八:

查看文件內容有哪些命令可以使用?
答案:
vi 文件名 #編輯方式查看,可修改
cat 文件名 #顯示全部文件內容
more 文件名 #分頁顯示文件內容
less 文件名 #與 more 相似,更好的是可以往前翻頁
tail 文件名 #僅查看尾部,還可以指定行數
head 文件名 #僅查看頭部,還可以指定行數

問題九:

隨意寫文件命令?怎麼向屏幕輸出帶空格的字符串,比如”hello world”? 

答案:

寫文件命令:vi

向屏幕輸出帶空格的字符串:echo hello world

 

問題十:

終端是哪個文件夾下的哪個文件?黑洞文件是哪個文件夾下的哪個命令?
答案:
終端  /dev/tty

黑洞文件  /dev/null

問題十一:

移動文件用哪個命令?改名用哪個命令?
答案:
mv mv

問題十二:

複製文件用哪個命令?如果需要連同文件夾一塊複製呢?如果需要有提示功能呢?
答案:
cp cp -r  ????

問題十三:

刪除文件用哪個命令?如果需要連目錄及目錄下文件一塊刪除呢?刪除空文件夾用什麼命令?
答案:
rm rm -r rmdir

問題十四: 

Linux 下命令有哪幾種可使用的通配符?分別代表什麼含義?
答案:
“?”可替代單個字符。

“*”可替代任意多個字符。

方括號“[charset]”可替代 charset 集中的任何單個字符,如[a-z],[abABC]

 

問題十五:

用什麼命令對一個文件的內容進行統計?(行號、單詞數、字節數)
答案:

wc 命令 - c 統計字節數 - l 統計行數 - w 統計字數。

問題十六:

Grep 命令有什麼用? 如何忽略大小寫? 如何查找不含該串的行?
答案:
是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行打印出來。
grep [stringSTRING] filename grep [^string] filename

問題十七:

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 死掉的進程

 

問題十八:

怎麼使一個命令在後臺運行?
答案:
一般都是使用 & 在命令結尾來讓程序自動運行。(命令後可以不追加空格)
 

問題十九:

利用 ps 怎麼顯示所有的進程? 怎麼利用 ps 查看指定進程的信息?
答案:
ps -ef (system v 輸出) 

ps -aux bsd 格式輸出

ps -ef | grep pid

問題二十:

哪個命令專門用來查看後臺任務? 

答案:

job -l
 

問題二十一:

把後臺任務調到前臺執行使用什麼命令?把停下的後臺任務在後臺執行起來用什麼命令?
答案:
把後臺任務調到前臺執行 fg

把停下的後臺任務在後臺執行起來 bg

 

問題二十二:

終止進程用什麼命令? 帶什麼參數? 

答案:

kill [-s <信息名稱或編號>][程序] 或 kill [-l <信息編號>] 

kill-9 pid

 

問題二十三:

怎麼查看系統支持的所有信號?

答案:

kill -l

問題二十四:

搜索文件用什麼命令? 格式是怎麼樣的? 

答案:

find <指定目錄> <指定條件> <指定動作>

whereis 加參數與文件名

locate 只加文件名

find 直接搜索磁盤,較慢。

find / -name "string*"

 

問題二十五:

查看當前誰在使用該主機用什麼命令? 查找自己所在的終端信息用什麼命令?
答案:
查找自己所在的終端信息:who am i

查看當前誰在使用該主機:who

 

問題二十六:

使用什麼命令查看用過的命令列表?

答案:

history
 

問題二十七:

使用什麼命令查看磁盤使用空間? 空閒空間呢?

答案:

df -hl
文件系統 容量 已用 可用 已用% 掛載點
Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot

問題二十八:

使用什麼命令查看網絡是否連通?
答案:
netstat

問題二十九:

使用什麼命令查看 ip 地址及接口信息?

答案:

ifconfig

問題三十:

查看各類環境變量用什麼命令?

答案:

查看所有 env
查看某個,如 home: env $HOME

問題三十一:

通過什麼命令指定命令提示符?

答案:

\u:顯示當前用戶賬號

\h:顯示當前主機名

\W:只顯示當前路徑最後一個目錄

\w:顯示當前絕對路徑(當前用戶目錄會以~代替)

$PWD:顯示當前全路徑

\$:顯示命令行’$'或者’#'符號

\#:下達的第幾個命令

\d:代表日期,格式爲week day month date,例如:"MonAug1"

\t:顯示時間爲24小時格式,如:HH:MM:SS

\T:顯示時間爲12小時格式

\A:顯示時間爲24小時格式:HH:MM

\v:BASH的版本信息 如export PS1=’[\u@\h\w\#]\$‘

 

問題三十二:

查找命令的可執行文件是去哪查找的? 怎麼對其進行設置及添加? 

答案:

whereis [-bfmsu][-B <目錄>...][-M <目錄>...][-S <目錄>...][文件...]

補充說明:whereis 指令會在特定目錄中查找符合條件的文件。這些文件的烈性應屬於原始代碼,二進制文件,或是幫助文件。

-b   只查找二進制文件。

-B<目錄> 只在設置的目錄下查找二進制文件。 -f 不顯示文件名前的路徑名稱。
-m   只查找說明文件。
-M<目錄> 只在設置的目錄下查找說明文件。 -s 只查找原始代碼文件。
-S<目錄> 只在設置的目錄下查找原始代碼文件。 -u 查找不包含指定類型的文件。
which 指令會在 PATH 變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。
-n 指定文件名長度,指定的長度必須大於或等於所有文件中最長的文件名。
-p 與-n 參數相同,但此處的包括了文件的路徑。 -w 指定輸出時欄位的寬度。
-V   顯示版本信息

 

問題三十三:

通過什麼命令查找執行命令?
答案:
which 只能查可執行文件

whereis 只能查二進制文件、說明文檔,源文件等
 

問題三十四:

怎麼對命令進行取別名?
答案:
alias la='ls -a'

問題三十五:

du 和 df 的定義,以及區別?
答案:

du 顯示目錄或文件的大小

df 顯示每個<文件>所在的文件系統的信息,默認是顯示所有文件系統。
(文件系統分配其中的一些磁盤塊用來記錄它自身的一些數據,如 i 節點,磁盤分佈圖,間接塊,超級塊等。這些數據對大多數用戶級的程序來說是不可見的,通常稱爲 Meta Data。) du 命令是用戶級的程序,它不考慮 Meta Data,而 df 命令則查看文件系統的磁盤分配圖並考慮 Meta Data。
df 命令獲得真正的文件系統數據,而 du 命令只查看文件系統的部分情況。

問題三十六:

awk 詳解。
答案:

awk '{pattern + action}' {filenames}
#cat /etc/passwd |awk -F ':' '{print $1"\t"$7}' //-F 的意思是以':'分隔 root /bin/bash
daemon /bin/sh 搜索/etc/passwd 有 root 關鍵字的所有行

#awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash

 

問題三十七:

當你需要給命令綁定一個宏或者按鍵的時候,應該怎麼做呢?

答案:

可以使用bind命令,bind可以很方便地在shell中實現宏或按鍵的綁定。

在進行按鍵綁定的時候,我們需要先獲取到綁定按鍵對應的字符序列。

比如獲取F12的字符序列獲取方法如下:先按下Ctrl+V,然後按下F12 .我們就可以得到F12的字符序列 ^[[24~。

接着使用bind進行綁定。

[root@localhost ~]# bind ‘”\e[24~":"date"'

注意:相同的按鍵在不同的終端或終端模擬器下可能會產生不同的字符序列。

【附】也可以使用showkey -a命令查看按鍵對應的字符序列。

 

問題三十八:

如果一個linux新手想要知道當前系統支持的所有命令的列表,他需要怎麼做?

答案:

使用命令compgen ­-c,可以打印出所有支持的命令列表。

[root@localhost ~]$ compgen -c

l.

ll

ls

which

if

then

else

elif

fi

case

esac

for

select

while

until

do

done

 

問題三十九:

如果你的助手想要打印出當前的目錄棧,你會建議他怎麼做?

答案:

使用Linux 命令dirs可以將當前的目錄棧打印出來。

[root@localhost ~]# dirs

/usr/share/X11

【附】:目錄棧通過pushd popd 來操作。

 

問題四十:

你的系統目前有許多正在運行的任務,在不重啓機器的條件下,有什麼方法可以把所有正在運行的進程移除呢?

答案:

使用linux命令 ’disown -r ’可以將所有正在運行的進程移除。

 

問題四十一:

bash shell 中的hash 命令有什麼作用?

答案:

linux命令’hash’管理着一個內置的哈希表,記錄了已執行過的命令的完整路徑, 用該命令可以打印出你所使用過的命令以及執行的次數。

[root@localhost ~]# hash

hits command

2 /bin/ls

2 /bin/su

 

問題四十二:

哪一個bash內置命令能夠進行數學運算。

答案:

bash shell 的內置命令let 可以進行整型數的數學運算。

#! /bin/bash


let c=a+b

 

問題四十三:

怎樣一頁一頁地查看一個大文件的內容呢?

答案:

通過管道將命令”cat file_name.txt” 和 ’more’ 連接在一起可以實現這個需要.

[root@localhost ~]# cat file_name.txt | more

 

問題四十四:

數據字典屬於哪一個用戶的?

答案:

數據字典是屬於’SYS’用戶的,用戶‘SYS’ 和 ’SYSEM’是由系統默認自動創建的

 

問題四十五:

怎樣查看一個linux命令的概要與用法?假設你在/bin目錄中偶然看到一個你從沒見過的的命令,怎樣才能知道它的作用和用法呢?

答案:

使用命令whatis 可以先出顯示出這個命令的用法簡要,比如,你可以使用whatis zcat 去查看‘zcat’的介紹以及使用簡要。

[root@localhost ~]# whatis zcat

zcat [gzip] (1) – compress or expand files

 

問題四十六:

使用哪一個命令可以查看自己文件系統的磁盤空間配額呢?

答案:

使用命令repquota 能夠顯示出一個文件系統的配額信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章