linux常用小知识点
答案linux考試題
 1.在登錄Linux時,一個具有唯一進程ID號的shell將被調(diào)用,這個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.文件權(quán)限讀、寫、執(zhí)行三種符號的標志依次是(a)
 A.rwx B.xrw C.rdx D.rws
6.某文件的組外成員的權(quán)限是只讀、屬主是全部權(quán)限、組內(nèi)權(quán)限是可讀可寫、該文件權(quán)限為(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中查看內(nèi)存,交換內(nèi)存的情況命令是? #free -m
 A.top B.last c.free D.lastcomm
12.觀察系統(tǒng)動態(tài)進程的命令是(b)
 A.free B.top C.lastcomm D.df
13.如果執(zhí)行命令,chmod 746 file.txt ,那么該文件的權(quán)限是(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.什么命令常用于檢測網(wǎng)絡(luò)主機是否可達? c
 A.ssh B.netstat C.ping D.exit
16.退出交互式shell,應該輸入什么? d
 A:q! B.quit C.; D.exit
17.在父目錄不存在的時候,添加的參數(shù)是? d
 A.-P B.-d C.-f D.-p
18.下列文件中,包含了主機名到IP地址映射關(guān)系的文件是? b
 A./etc/hostname
 B./etc/hosts
 C./etc/resolv.conf
 D./etc/networks
19.請問你使用的linux發(fā)行版是什么?如何查看linux發(fā)行版信息?
 centos7
 cat /etc/os-release
20.請問你公司的服務器環(huán)境是物理機還是虛擬化?
 500人企:
 26臺dell power r720服務器,托管在世紀互聯(lián)
 通過vmware esxi虛擬化的280+linux服務器,有100+centos 100+redhat
 分為三個環(huán)境
 測試服務器、預生產(chǎn)服務器、生產(chǎn)服務器
 技術(shù)棧:
 svn 、java、apache、tomcat、oracle、nagios、redhat、centos、weblogic
 初創(chuàng)企業(yè):
 5臺阿里云
21.vim有幾種工作模式
 命令模式
 編輯模式
 底線命令模式
22.nginx的主配置文件是?如何實現(xiàn)多虛擬主機?nginx反向代理參數(shù)是?
 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最為廣泛,采用的結(jié)構(gòu)是?
 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/內(nèi)容
/usr/bin/rm -rf /tmp/*
 30.每天早上6.30清空/tmp/的內(nèi)容
 30 6 /usr/bin/rm -rf /tmp/
31.每個星期三的下午6點和8點的第5到15分鐘之間備份mysql數(shù)據(jù)到/opt/
 5-15 18,20 3 /usr/bin/cp -r /var/lib/mysql /opt/
32.某文件權(quán)限是drw-r—rw-,請解讀該權(quán)限?
 d:目錄文件
 rw- 屬主:可讀可寫
 r— 屬組:可讀
 rw- other:可讀可寫
33.centos版本系統(tǒng)服務管理命令是?
 service
 systemctl
34.如何遠程登錄阿里云123.206.16.61?
 ssh root@123.206.16.61
35.備份mariadb的命令是?
 mysqldump -uroot -p
36.簡述特殊符號的含義?
root用戶的身份提示符
 重啟定向覆蓋寫
重定向追加寫
 $PATH 取值符
 . 當前目錄
 .. 上級目錄
 37.如果你發(fā)現(xiàn)在公司無法使用rm,使用提示’禁止你使用rm’,是為什么?
 別名alias
 38.如何修改test.py屬組為alex?
 chgrp alex test.py
39.如何在windows和linux傳輸文件?有哪些方法?
 xftp lrzsz scp
40.如何殺死m(xù)ariad進程?
 pkill mariadb
ps -ef|grep mysql
 kill pid
killall mariadb
41.簡述dns解析流程?訪問www.pythonav.cn的解析流程
 自上而下的順序
 1.優(yōu)先查找本地dns緩存
 2.查找本地/etc/hosts文件,是否有強制解析
 3.如果沒有去/etc/resolv.conf指定的dns服務器中查找記錄(需聯(lián)網(wǎng)
 4.在dns服務器中找到解析記錄后,在本地dns中添加緩存
 5.完成一次dns解析
42.linux如何安裝軟件?有幾種方式?
 yum
 rpm
 源碼包
43.出于安全角度,簡述如何安裝啟動redis服務端?
 更改端口
 開啟protomode yes安全模式
 設(shè)置redis密碼
 redis-server redis.conf
44.如何保證本地測試環(huán)境和線上開發(fā)環(huán)境一致性?思路?
 1.docker打包鏡像
 2.手動解決環(huán)境問題 pip3 freeze導出依賴
45.virtualenv是什么?簡述如何使用
 在開發(fā)Python應用程序的時候,系統(tǒng)安裝的Python3只有一個版本:3.4。所有第三方的包都會被pip安裝到Python3的site-packages目錄下。
如果我們要同時開發(fā)多個應用程序,那這些應用程序都會共用一個Python,就是安裝在系統(tǒng)的Python 3。如果應用A需要jinja 2.7,而應用B需要jinja 2.6怎么辦?
這種情況下,每個應用可能需要各自擁有一套“獨立”的Python運行環(huán)境。virtualenv就是用來為一個應用創(chuàng)建一套“隔離”的Python運行環(huán)境。
1.安裝 pip3 install virtualenv
 2.創(chuàng)建虛擬環(huán)境 virtualenv —no-site-packages —python=python3 env1
 3.激活虛擬環(huán)境 sourcce /opt/MyVirtualenv/venvDjango1/bin/activate
 4.測試 python3 或者 pip3 list
46.virtulevnwrapper是什么?簡述使用
 virtualenv 的一個最大的缺點就是,每次開啟虛擬環(huán)境之前要去虛擬環(huán)境所在目錄下的 bin 目錄下 source 一下 activate,這就需要我們記住每個虛擬環(huán)境所在的目錄。
 Virtaulenvwrapper是virtualenv的擴展包,用于更方便管理虛擬環(huán)
 1.安裝虛擬環(huán)境 pip3 install virtualenvwrapper
 2.創(chuàng)建并進入虛擬環(huán)境 mkvirtualenv env1
 3.切換虛擬環(huán)境 workon 虛擬環(huán)境名
redis是什么?
 Redis是一個開源的基于內(nèi)存的,key-value數(shù)據(jù)結(jié)構(gòu)的緩存數(shù)據(jù)庫,支持數(shù)據(jù)持久化,m-s復制,常用數(shù)據(jù)類型有string set hash list,
 最佳應用場景:適用于數(shù)據(jù)變化快且數(shù)據(jù)庫大小可遇見(適合內(nèi)存容量)的應用程序。
 例如:股票價格、數(shù)據(jù)分析、實時數(shù)據(jù)搜集、實時通訊。
 Redis只能使用單線程,性能受限于CPU性能,故單實例CPU最高才可能達到5-6wQPS每秒(取決于數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)大小以及服務器硬件性能,日常環(huán)境中QPS高峰大約在1-2w左右)
其他nosql數(shù)據(jù)庫?
 Memcached可以利用多核優(yōu)勢,單實例吞吐量極高,可以達到幾十萬QPS(取決于key、value的字節(jié)大小以及服務器硬件性能,日常環(huán)境中QPS高峰大約在4-6w左右)。適用于最大程度扛量。
 只支持簡單的key/value數(shù)據(jù)結(jié)構(gòu),不像Redis可以支持豐富的數(shù)據(jù)類型。
 無法進行持久化,數(shù)據(jù)不能備份,只能用于緩存使用,且重啟后數(shù)據(jù)全部丟失。
MongoDB
 更高的寫負載,MongoDB擁有更高的插入速度,支持高可用性,支持索引高速查詢,占用磁盤空間較大,支持持久化
47.redis哨兵是什么?作用是
 Redis-Sentinel是Redis官方推薦的高可用性(HA)解決方案
 redis哨兵是監(jiān)控redis主從服務,不存儲數(shù)據(jù)的,作用是用于自動切換reidis服務主從關(guān)系,即當主庫服務停止后,會將其中一個從庫變?yōu)橹鲙?/p> 
48.redis-cluster是什么?
 即使使用哨兵,redis每個實例也是全量數(shù)據(jù)存儲,每個redis存儲的內(nèi)容都是完整的數(shù)據(jù)。
 為了最大化利用內(nèi)存,可以采用cluster群集,就是分布式存儲。即每臺redis存儲不同的內(nèi)容。
 采用redis-cluster架構(gòu)正是滿足這種分布式存儲要求的集群的一種體現(xiàn)。redis-cluster架構(gòu)中,被設(shè)計成共有16384個hash slot。每個master分得一部分slot,其算法為:hash_slot = crc16(key) mod 16384 ,這就找到對應slot。采用hash slot的算法,實際上是解決了redis-cluster架構(gòu)下,有多個master節(jié)點的時候,數(shù)據(jù)如何分布到這些節(jié)點上去。key是可用key,如果有{}則取{}內(nèi)的作為可用key,否則整個可以是可用key。群集至少需要3主3從,且每個實例使用不同的配置文件。
49.什么是靜態(tài)資源,什么是動態(tài)資源?
 靜態(tài)資源指定的是網(wǎng)站的CSS/JS/HTML文件
 動態(tài)資源一般指的是數(shù)據(jù),即后端給前端提供的數(shù)據(jù)
50.配置linux軟連接的命令?
 ln -s 目標文件名 軟連接名
51.如何永久添加/opt/python36/的環(huán)境變量?
 vim /etc/profile
 添加PATH = /opt/python36/bin:
 source /etc/profile
52.給如下代碼添加注釋
 server{ # 一個虛擬主機
 listen 80; # 監(jiān)聽的端口,訪問的端口80
 server_name 192.168.11.11; # 訪問的域名192.168.11.11
 location / { # 訪問的路徑 /
 root html; # 指定頁面的目錄,訪問/會找到html目錄
 index index.html # 指定網(wǎng)頁,訪問/就是訪問index.html
 }
 }
server{ #虛擬主機
 listen 8080; #nginx監(jiān)聽端口
 server_name 192.168.11.11; #nginx訪問域名
 location / { #location匹配url
 include uwsgi_params; #將uwsgi參數(shù)添加進nginx
 uwsgi_pass 0.0.0.0:8000; #反向代理轉(zhuǎn)發(fā)請求給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,進程被殺死時,是否向這個進程組發(fā)送stop信號,包括子進程
 killasgroup=true ;默認為false,向進程組發(fā)送kill信號,包括子進程
 4.啟動supervisor服務
 supervisord -c /etc/supervisor.conf
 5.啟動所有項目
 supervisorctl -c /etc/supervisor.conf start all
54.簡述項目部署流程?如何部署路飛,uwsgi+nginx+supervisor+nginx
 部署路飛:
 1.安裝python3 環(huán)境
 2.安裝 mysql,redis,nginx
 3.部署前端
 1.安裝node.js的環(huán)境
 2.安裝依賴包
 3.修改axios的發(fā)送的端口接口
 4.打包
 4.部署后端
 1.安裝virtualenv
 2.創(chuàng)建虛擬環(huán)境
 3.安裝django和uwsgi,以及項目的依賴包
 4.修改uwsgi的配置文件
 5.通過uwsgi -ini 配置文件啟動django項目
 5.配置nginx
 1.創(chuàng)建兩個虛擬主機,分別監(jiān)聽80和8000端口
 2.訪問80端口是訪問呢vue
 3.訪問8000端口是vue發(fā)起的8000端口請求,反向代理到9000的uwsgi
 6.啟動nginx,mysql,redis
 7.通過supervisor來管理
 55.docker是什么?簡述docker優(yōu)勢
 linux容器軟件
 docker應用于快速構(gòu)建應用
56.你常用的docker常用命令有哪些?操作鏡像、容器、倉庫的命令
 docker images # 查看本地鏡像
 docker serach 鏡像 # 通過docker hub搜索鏡像
 docker rmi 鏡像 # 刪除鏡像
 docker save 鏡像 > 路徑 # 導出鏡像
 docker load < 路徑 # 導入鏡像
 docker build -t . # 打包生成鏡像
操作容器命令:
 docker run -d 鏡像 解釋器 # 根據(jù)鏡像生成容器,后臺允許
 docker run -it 鏡像 解釋器 # 根據(jù)鏡像生成并進入容器
 docker start/stop 容器id # 啟動/停止容器
 docker ps # 查看當前運行的容器
 docker rm 容器id # 刪除容器
 docker exec 容器id # 進入當前正在運行的容器
 docker commit 容器id 鏡像名 # 將容器提交為鏡像
 docker contain ls # 查看當前運行的容器
 操作倉庫的命令:
 docker pull 鏡像 # 下載鏡像
 docker push 鏡像 # 推送鏡像
57.哪個命令無法查看linux文件內(nèi)容? d
 A.tac B.more C.head D.man
58.使用rm -i 系統(tǒng)會提示什么信息? b
 A.命令所有參數(shù)
 B.是否真的刪除
 C.是否有寫的權(quán)限
 D.文件的路徑
59.為何說rm -rf 慎用? -r遞歸刪除 -f強制刪除
a60.python操作linux的模塊是? os
61.如果端口8080被占用,如何查看是什么進程? netstat -tunlp | grep 8080
62.redis是如何做持久化的?
 rdb
 Redis會定期保存數(shù)據(jù)快照至一個rbd文件中,并在啟動時自動加載rdb文件,恢復之前保存的數(shù)據(jù),通過save指令觸發(fā)持久化,redis單獨開啟一個子進程進行數(shù)據(jù)持久化。
 rdb缺點,定期執(zhí)行,可能會丟失數(shù)據(jù),并且數(shù)據(jù)量特別大時候,如果服務器cpu性能較低,rdb開啟子進程持久化性能影響很大,影響redis對外提供服務的能力。
aof
 Redis會把每一個寫請求都記錄在一個日志文件里。在Redis重啟時,會把AOF文件中記錄的所有寫操作順序執(zhí)行一遍,確保數(shù)據(jù)恢復到最新。
 隨著AOF不斷地記錄寫操作日志,因為所有的操作都會記錄,所以必定會出現(xiàn)一些無用的日志。大量無用的日志會讓AOF文件過大,也會讓數(shù)據(jù)恢復的時間過長。
 優(yōu)先:數(shù)據(jù)安全,不怕數(shù)據(jù)損壞,如斷電燈問題,還可以用redis-check-aof修復數(shù)據(jù),AOF文件人為可讀
 缺點:占磁盤,性能損耗高,數(shù)據(jù)恢復慢
怎么用rdb和aof
 如果既配置了RDB,又配置了AOF,則在進行數(shù)據(jù)持久化的時候,都會進行,但是在根據(jù)文件恢復數(shù)據(jù)的時候,以AOF文件為準,RDB文件作廢
63.簡述mysql主從復制原理?
 (1) master將改變記錄到二進制日志(binary log)中(這些記錄叫做二進制日志事件,binary log events);
 (2) slave將master的binary log events拷貝到它的中繼日志(relay log);
 (3) slave重做中繼日志中的事件,將改變反映它自己的數(shù)據(jù)。
64.創(chuàng)建mysql用戶alex,并且授予權(quán)限select權(quán)限,命令是什么?
 grant select on . to alex@’%’;
 65.nginx如何實現(xiàn)負載均衡?
 upstream {}
66.nginx的負載均衡調(diào)度算法有幾種?是什么?
調(diào)度算法   ?概述
 輪詢     按時間順序逐一分配到不同的后端服務器(默認)
 weight   ?加權(quán)輪詢,weight值越大,分配到的訪問幾率越高
 ip_hash   ?每個請求按訪問IP的hash結(jié)果分配,這樣來自同一IP的固定訪問一個后端服務器
 url_hash  ?按照訪問URL的hash結(jié)果來分配請求,是每個URL定向到同一個后端服務器
 least_conn 最少鏈接數(shù),那個機器鏈接數(shù)少就分發(fā)
67.linux下載軟件包的方法有?
 wget curl
 68.windows和linux常用遠程連接工具有哪些?
 xshell
 putty
 securecrt
69.如何給與一個腳本可執(zhí)行權(quán)限
 chmod u+x file
70.過濾出settings.py中所有的空白和注釋行
 grep -v “^#” file |grep -v “^$”
71.過濾出file1中以abc結(jié)尾的行
 grep “abc$” file1
 72.容器退出后,通過docker ps查看不到,數(shù)據(jù)會丟嗎?
 不會丟,因為容器停止了,并沒有被刪除 docker ps -a可以看到
 73.如何批量清理后臺停止的容器
 docker rm docker ps -aq
74.如何查看容器日志?
 docker logs -f
75.wsgi是什么?
 WSGI是Web服務器網(wǎng)關(guān)接口。它是一個協(xié)議,描述了Web服務器如何與Web應用程序通信。
76.Django中使用的是?
 答:Django中實現(xiàn)wsgi的是:wsgiref和uwsgi,wsgiref是開發(fā)測試用的,uwsgi是線上用的。
 Flask中實現(xiàn)wsgi的是:werkzurg
 Tornado中實現(xiàn)wsgi的是:tornado和gevent
77.消息隊列的作用?
 1)程序解耦
 2)數(shù)據(jù)冗余,例如rabbitmq的ack機制,消息確認機制
 3)削峰能力
 4)可恢復性,就算系統(tǒng)中部分組件掛掉,消息在隊列也不丟失,待組件恢復后繼續(xù)處理消息。
 5)異步通信,如發(fā)紅包,短信等流程丟入隊列,可以優(yōu)先級很低的去處理。
78.服務器被攻擊,吃光了所有的CPU資源,怎么辦?禁止重裝系統(tǒng)
79.zabbix nagios是什么?
80.shell腳本啟停crm
81.keepalived實現(xiàn)高可用
82.redis分布式鎖
83.rabbitmq和kafka的區(qū)別
84.rpc是什么
85.git如何代碼review
86.git如何貢獻開源項目代碼
git常用命令
 1:git init—————————初始化
 2:git add .————————-從工作區(qū),添加到版本庫
 3:git commit -m”xxx”————從暫存區(qū),添加到分支
 4:git status————————查看狀態(tài)
 5:git log —————————查看版本庫的日志
 6:git reflog————————查看所有日志
 7:git reset —head 版本號—-切換
 8:git stash————————-保存
 9:git stash————————-將第一個記錄從“某個地方”重新拿到工作區(qū)(可能有沖突)
 git stash list——————————————————————————查看“某個地方”存儲的所有記錄
 git stash clear—————————————————————————-清空“某個地方”
 git stash pop——————————————————————————-將第一個記錄從“某個地方”重新拿到工作區(qū)(可能有沖突)
 git stash apply —————————————————————————編號,將指定編號記錄從“某個地方”重新拿到工作區(qū)(可能有沖突)
 git stash drop —————————————————————————編號 ,刪除指定編號的記錄
 10:git branch dev—————創(chuàng)建分支
 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-和網(wǎng)上下的master分支合并
 協(xié)同開發(fā):
 默認是master分支——————————master
 開發(fā)的分支—————————————dev
 做代碼review————————————reciew
 程序員自己的分支——————————…….
 1:每個員工創(chuàng)建自己的分支
 2:將自己的代碼提交的到自己的分支—————xxx,sss,wwww…….
 3:由組長或老大做代碼的review,——————-代碼提交的review分支
 4:再提交到dev.
 5: 再合并到master分支
熟悉 Linux常用操作。
 1:man rm———————————————查看命令幫助
 2:mkdir———————————————-創(chuàng)建目錄
 3:touch———————————————-創(chuàng)建文件
 4:cd—————————————————切換。
 5:ls—————————————————查看目錄
 6:ls -lh————————————————查看目錄詳細
 7:pwd————————————————-查看當前目錄
 8:vim————————————————-添加內(nèi)容
 9:echo————————————————追加內(nèi)容
 10:cat————————————————查看文件內(nèi)容
 11:mv————————————————-移動
 12:cp————————————————-拷貝
 13:mv————————————————重命名
 15:find———————————————-搜索
 16:rm————————————————-刪除數(shù)據(jù)
 17:ping———————————————-查看能不能上網(wǎng)
 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 | 存放二進制可執(zhí)行文件(ls,cat,mkdir等),常用命令一般都在這里。 | 
| /etc | 存放系統(tǒng)管理和配置文件 | 
| /home | 存放所有用戶文件的根目錄,是用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示 ? | 
| /usr | 用于存放系統(tǒng)應用程序,比較重要的目錄/usr/local?本地系統(tǒng)管理員軟件安裝目錄(安裝系統(tǒng)級的應用)。這是最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。 /usr/x11r6?存放x?window的目錄 /usr/bin?眾多的應用程序?? /usr/sbin?超級用戶的一些管理程序?? /usr/doc?Linux文檔?? /usr/include?linux下開發(fā)和編譯應用程序所需要的頭文件?? /usr/lib?常用的動態(tài)鏈接庫和軟件包的配置文件?? /usr/man?幫助文檔?? /usr/src?源代碼,linux內(nèi)核的源代碼就放在/usr/src/linux里?? /usr/local/bin?本地增加的命令?? /usr/local/lib?本地增加的庫 | 
| /opt | 額外安裝的可選應用程序包所放置的位置。一般情況下,我們可以把tomcat等都安裝到這里。 | 
| /proc | 虛擬文件系統(tǒng)目錄,是系統(tǒng)內(nèi)存的映射。可直接訪問這個目錄來獲取系統(tǒng)信息。 | 
| /root | 超級用戶(系統(tǒng)管理員)的主目錄(特權(quán)階級^o^) | 
| /sbin | 存放二進制可執(zhí)行文件,只有root才能訪問。這里存放的是系統(tǒng)管理員使用的系統(tǒng)級別的管理命令和程序。如ifconfig等。 | 
| /dev | 用于存放設(shè)備文件。 | 
| /mnt | 系統(tǒng)管理員安裝臨時文件系統(tǒng)的安裝點,系統(tǒng)提供這個目錄是讓用戶臨時掛載其他的文件系統(tǒng)。 | 
| /boot | 存放用于系統(tǒng)引導時使用的各種文件 | 
| /lib | 存放跟文件系統(tǒng)中的程序運行所需要的共享庫及內(nèi)核模塊。共享庫又叫動態(tài)鏈接共享庫,作用類似windows里的.dll文件,存放了根文件系統(tǒng)程序運行所需的共享文件。 | 
| /tmp | 用于存放各種臨時文件,是公用的臨時文件存儲點。 | 
| /var | 用于存放運行時需要改變數(shù)據(jù)的文件,也是某些大文件的溢出區(qū),比方說各種服務的日志文件(系統(tǒng)啟動日志等。)等。 | 
| /lost+found | 這個目錄平時是空的,系統(tǒng)非正常關(guān)機而留下“無家可歸”的文件(windows下叫什么.chk)就在這里 | 
?
?
?
Linux目錄和Windows目錄有著很大的不同,Linux目錄類似一個樹,最頂層是其根目錄,如下圖:
?
?
?
?
/bin?二進制可執(zhí)行命令
/dev?設(shè)備特殊文件
 /etc?系統(tǒng)管理和配置文件
 /etc/rc.d?啟動的配置文件和腳本
 /home?用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
 /lib?標準程序設(shè)計庫,又叫動態(tài)鏈接共享庫,作用類似windows里的.dll文件
 /sbin?超級管理命令,這里存放的是系統(tǒng)管理員使用的管理程序
 /tmp?公共的臨時文件存儲點
 /root?系統(tǒng)管理員的主目錄
 /mnt?系統(tǒng)提供這個目錄是讓用戶臨時掛載其他的文件系統(tǒng)
 /lost+found這個目錄平時是空的,系統(tǒng)非正常關(guān)機而留下“無家可歸”的文件(windows下叫什么.chk)就在這里
 /proc?虛擬的目錄,是系統(tǒng)內(nèi)存的映射。可直接訪問這個目錄來獲取系統(tǒng)信息。
 /var?某些大文件的溢出區(qū),比方說各種服務的日志文件
 /usr?最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄,其中包含:
/usr/x11R6?存放x?window的目錄
 /usr/bin?眾多的應用程序
 /usr/sbin?超級用戶的一些管理程序
 /usr/doc?linux文檔
 /usr/include?linux下開發(fā)和編譯應用程序所需要的頭文件
 /usr/lib?常用的動態(tài)鏈接庫和軟件包的配置文件
 /usr/man?幫助文檔
 /usr/src?源代碼,linux內(nèi)核的源代碼就放在/usr/src/linux里
 /usr/local/bin?本地增加的命令
 /usr/local/lib?本地增加的庫根文件系統(tǒng)
?
通常情況下,根文件系統(tǒng)所占空間一般應該比較小,因為其中的絕大部分文件都不需要經(jīng)常改動,而且包括嚴格的文件和一個小的不經(jīng)常改變的文件系統(tǒng)不容易損壞。
 除了可能的一個叫/?vmlinuz標準的系統(tǒng)引導映像之外,根目錄一般不含任何文件。所有其他文件在根文件系統(tǒng)的子目錄中。
 1.?/bin目錄
 /?b?i?n目錄包含了引導啟動所需的命令或普通用戶可能用的命令(可能在引導啟動后)。這些命令都是二進制文件的可執(zhí)行程序(?b?i?n是b?i?n?a?r?y?-?-二進制的簡稱),多是系統(tǒng)中重要的系統(tǒng)文件。
 2.?/sbin目錄
 /?s?b?i?n目錄類似/bin?,也用于存儲二進制文件。因為其中的大部分文件多是系統(tǒng)管理員使用的基本的系統(tǒng)程序,所以雖然普通用戶必要且允許時可以使用,但一般不給普通用戶使用。
 3.?/etc目錄
 /?e?t?c目錄存放著各種系統(tǒng)配置文件,其中包括了用戶信息文件/?e?t?c?/?p?a?s?s?w?d,系統(tǒng)初始化文件/?e?t?c?/?r?c等。l?i?n?u?x正是*這些文件才得以正常地運行。
 4.?/root目錄
 /root?目錄是超級用戶的目錄。
 5.?/lib目錄
 /?l?i?b目錄是根文件系統(tǒng)上的程序所需的共享庫,存放了根文件系統(tǒng)程序運行所需的共享文件。這些文件包含了可被許多程序共享的代碼,以避免每個程序都包含有相同的子程序的副本,故可以使得可執(zhí)行文件變得更小,節(jié)省空間。
 6.?/lib/modules?目錄
 /lib/modules?目錄包含系統(tǒng)核心可加載各種模塊,尤其是那些在恢復損壞的系統(tǒng)時重新引導系統(tǒng)所需的模塊(例如網(wǎng)絡(luò)和文件系統(tǒng)驅(qū)動)。
 7.?/dev目錄
 /?d?e?v目錄存放了設(shè)備文件,即設(shè)備驅(qū)動程序,用戶通過這些文件訪問外部設(shè)備。比如,用戶可以通過訪問/?d?e?v?/?m?o?u?s?e來訪問鼠標的輸入,就像訪問其他文件一樣。
 8.?/tmp目錄
 /tmp?目錄存放程序在運行時產(chǎn)生的信息和數(shù)據(jù)。但在引導啟動后,運行的程序最好使用/?v?a?r?/?t?m?p來代替/tmp?,因為前者可能擁有一個更大的磁盤空間。
 9.?/boot目錄
 /?b?o?o?t目錄存放引導加載器(bootstrap?loader)使用的文件,如l?i?lo,核心映像也經(jīng)常放在這里,而不是放在根目錄中。但是如果有許多核心映像,這個目錄就可能變得很大,這時使用單獨的文件系統(tǒng)會更好一些。還有一點要注意的是,要確保核心映像必須在i?d?e硬盤的前1?0?2?4柱面內(nèi)。
 10.?/mnt目錄
 /?m?n?t目錄是系統(tǒng)管理員臨時安裝(?m?o?u?n?t?)文件系統(tǒng)的安裝點。程序并不自動支持安裝到/mnt?。/mnt?下面可以分為許多子目錄,例如/mnt/dosa?可能是使用m?s?d?o?s文件系統(tǒng)的軟驅(qū),而/mnt/exta?可能是使用e?x?t?2文件系統(tǒng)的軟驅(qū),/mnt/cdrom?光驅(qū)等等。
 11.?/proc,?/usr,/var,/home目錄
 其他文件系統(tǒng)的安裝點。
?
下面詳細介紹;
/etc文件系統(tǒng)
/etc?目錄包含各種系統(tǒng)配置文件,下面說明其中的一些。其他的你應該知道它們屬于哪個程序,并閱讀該程序的m?a?n頁。許多網(wǎng)絡(luò)配置文件也在/etc?中。
 1.?/etc/rc或/etc/rc.d或/etc/rc?.d
 啟動、或改變運行級時運行的腳本或腳本的目錄。
 2.?/etc/passwd
 用戶數(shù)據(jù)庫,其中的域給出了用戶名、真實姓名、用戶起始目錄、加密口令和用戶的其
 他信息。
 3.?/etc/fdprm
 軟盤參數(shù)表,用以說明不同的軟盤格式。可用setfdprm?進行設(shè)置。更多的信息見s?e?t?f?d?p?r?m
 的幫助頁。
 4.?/etc/fstab
 指定啟動時需要自動安裝的文件系統(tǒng)列表。也包括用swapon?-a啟用的s?w?a?p區(qū)的信息。
 5.?/etc/group
 類似/etc/passwd?,但說明的不是用戶信息而是組的信息。包括組的各種數(shù)據(jù)。
 6.?/etc/inittab
 init?的配置文件。
 7.?/etc/issue
 包括用戶在登錄提示符前的輸出信息。通常包括系統(tǒng)的一段短說明或歡迎信息。具體內(nèi)容由系統(tǒng)管理員確定。
 8.?/etc/magic
 “f?i?l?e”的配置文件。包含不同文件格式的說明,“f?i?l?e”基于它猜測文件類型。
 9.?/etc/motd
 m?o?t?d是message?of?the?day的縮寫,用戶成功登錄后自動輸出。內(nèi)容由系統(tǒng)管理員確定。常用于通告信息,如計劃關(guān)機時間的警告等。
 10.?/etc/mtab
 當前安裝的文件系統(tǒng)列表。由腳本(?s?c?r?i?t?p?)初始化,并由mount?命令自動更新。當需要一個當前安裝的文件系統(tǒng)的列表時使用(例如df?命令)。
 11.?/etc/shadow
 在安裝了影子(?s?h?a?d?o?w?)口令軟件的系統(tǒng)上的影子口令文件。影子口令文件將/?e?t?c?/?p?a?s?s?wd文件中的加密口令移動到/?e?t?c?/?s?h?a?d?o?w中,而后者只對超級用戶(?r?o?o?t)可讀。這使破譯口令更困難,以此增加系統(tǒng)的安全性。
 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執(zhí)行的文件。這允許系統(tǒng)管理員為所有用戶建立全局缺省環(huán)境。
 15.?/etc/securetty
 確認安全終端,即哪個終端允許超級用戶(?r?o?o?t?)登錄。一般只列出虛擬控制臺,這樣就不可能(至少很困難)通過調(diào)制解調(diào)器(?m?o?d?e?m?)或網(wǎng)絡(luò)闖入系統(tǒng)并得到超級用戶特權(quán)。
 16.?/etc/shells
 列出可以使用的s?h?e?l?l。chsh?命令允許用戶在本文件指定范圍內(nèi)改變登錄的s?h?e?l?l。提供一臺機器f?t?p服務的服務進程ftpd?檢查用戶s?h?e?l?l是否列在/etc/shells?文件中,如果不是,將不允許該用戶登錄。
 17.?/etc/termcap
 終端性能數(shù)據(jù)庫。說明不同的終端用什么“轉(zhuǎn)義序列”控制。寫程序時不直接輸出轉(zhuǎn)義序列(這樣只能工作于特定品牌的終端),而是從/etc/termcap?中查找要做的工作的正確序列。
 這樣,多數(shù)的程序可以在多數(shù)終端上運行。
?
/dev文件系統(tǒng)
/dev?目錄包括所有設(shè)備的設(shè)備文件。設(shè)備文件用特定的約定命名,這在設(shè)備列表中說明。
 設(shè)備文件在安裝時由系統(tǒng)產(chǎn)生,以后可以用/dev/makedev?描述。/?d?e?v?/?m?a?k?e?d?e?v.local是
 系統(tǒng)管理員為本地設(shè)備文件(或連接)寫的描述文稿(即如一些非標準設(shè)備驅(qū)動不是標準
 makedev?的一部分)。下面簡要介紹/?d?e?v下一些常用文件。
 1.?/dev/console
 系統(tǒng)控制臺,也就是直接和系統(tǒng)連接的監(jiān)視器。
 2.?/dev/hd
 i?d?e硬盤驅(qū)動程序接口。如:?/?d?e?v?/?h?d?a指的是第一個硬盤,?h?a?d?1則是指/?d?e?v?/?h?da的第一個
 分區(qū)。如系統(tǒng)中有其他的硬盤,則依次為/?d?e?v?/?h?d?b、/?d?e?v?/?h?d?c、.?.?.?.?..;如有多個分區(qū)則依次為
 h?d?a?1、h?d?a?2?.?.?.?.?.?.
 3.?/dev/sd
 s?c?s?i磁盤驅(qū)動程序接口。如有系統(tǒng)有s?c?s?i硬盤,就不會訪問/?d?e?v?/?h?a?d,而會訪問/?d?e?v?/?sd?a。
 4.?/dev/fd
 軟驅(qū)設(shè)備驅(qū)動程序。如:?/?d?e?v?/?f?d?0指系統(tǒng)的第一個軟盤,也就是通常所說的a:盤,
 /?d?e?v?/?f?d?1指第二個軟盤,.?.?.?.?.?.而/?d?e?v?/?f?d?1?h?1?4?40則表示訪問驅(qū)動器1中的4?.?5高密盤。
 5.?/dev/st
 s?c?s?i磁帶驅(qū)動器驅(qū)動程序。
 6.?/dev/tty
 提供虛擬控制臺支持。如:?/?d?e?v?/?t?t?y?1指的是系統(tǒng)的第一個虛擬控制臺,?/?d?e?v?/?t?t?y2則是系統(tǒng)
 的第二個虛擬控制臺。
 7.?/dev/pty
 提供遠程登陸偽終端支持。在進行te?l?n?e?t登錄時就要用到/?d?e?v?/?p?t?y設(shè)備。
 8.?/dev/ttys
 計算機串行接口,對于d?o?s來說就是“?c?o?m?1”口。
 9.?/dev/cua
 計算機串行接口,與調(diào)制解調(diào)器一起使用的設(shè)備。
 10.?/dev/null
 “黑洞”,所有寫入該設(shè)備的信息都將消失。例如:當想要將屏幕上的輸出信息隱藏起來時,只要將輸出信息輸入到/?d?e?v?/?n?u?l?l中即可。
?
/usr文件系統(tǒng)
/usr?是個很重要的目錄,通常這一文件系統(tǒng)很大,因為所有程序安裝在這里。/usr?里的
 所有文件一般來自l?i?n?u?x發(fā)行版(?d?i?s?t?r?i?b?u?t?i?o?n);本地安裝的程序和其他東西在/usr/local?下,因為這樣可以在升級新版系統(tǒng)或新發(fā)行版時無須重新安裝全部程序。/usr目錄下的許多內(nèi)容是可選的,但這些功能會使用戶使用系統(tǒng)更加有效。/?u?s?r可容納許多大型的軟件包和它們的配置文件。下面列出一些重要的目錄(一些不太重要的目錄被省略了)。
 1.?/usr/x11r6
 包含x?wi?n?d?o?w系統(tǒng)的所有可執(zhí)行程序、配置文件和支持文件。為簡化x的開發(fā)和安裝,x的文件沒有集成到系統(tǒng)中。x?wi?n?d?o?w系統(tǒng)是一個功能強大的圖形環(huán)境,提供了大量的圖形工具程序。用戶如果對microsoft?wi?n?d?o?w?s或m?a?c?h?i?n?t?o?s?h比較熟悉的話,就不會對x?win?d?o?w系統(tǒng)感到束手無策了。
 2.?/usr/x386
 類似/?u?s?r?/?x?11r6?,但是是專門給x?11?release?5的。
 3.?/usr/bin
 集中了幾乎所有用戶命令,是系統(tǒng)的軟件庫。另有些命令在/bin?或/usr/local/bin?中。
 4.?/usr/sbin
 包括了根文件系統(tǒng)不必要的系統(tǒng)管理命令,例如多數(shù)服務程序。
 5.?/usr/man、/?u?s?r?/?i?n?f?o、/?u?s?r?/?d?o?c
 這些目錄包含所有手冊頁、g?n?u信息文檔和各種其他文檔文件。每個聯(lián)機手冊的“節(jié)”都有兩個子目錄。例如:?/?u?s?r?/?m?a?n?/?m?a?n?1中包含聯(lián)機手冊第一節(jié)的源碼(沒有格式化的原始文件),/?u?s?r?/?m?a?n?/?c?a?t?1包含第一節(jié)已格式化的內(nèi)容。l聯(lián)機手冊分為以下九節(jié):內(nèi)部命令、系統(tǒng)調(diào)用、庫函數(shù)、設(shè)備、文件格式、游戲、宏軟件包、系統(tǒng)管理和核心程序。
 6.?/usr/include
 包含了c語言的頭文件,這些文件多以.?h結(jié)尾,用來描述c語言程序中用到的數(shù)據(jù)結(jié)構(gòu)、子過程和常量。為了保持一致性,這實際上應該放在/usr/lib?下,但習慣上一直沿用了這個名字。
 7.?/usr/lib
 包含了程序或子系統(tǒng)的不變的數(shù)據(jù)文件,包括一些s?i?t?e?-?w?i?d?e配置文件。名字l?i?b來源于庫(library);?編程的原始庫也存在/usr/lib?里。當編譯程序時,程序便會和其中的庫進行連接。也有許多程序把配置文件存入其中。
 8.?/usr/local
 本地安裝的軟件和其他文件放在這里。這與/?u?s?r很相似。用戶可能會在這發(fā)現(xiàn)一些比較大的軟件包,如t?e?x、e?m?a?c?s等。
?
/var文件系統(tǒng)
/var?包含系統(tǒng)一般運行時要改變的數(shù)據(jù)。通常這些數(shù)據(jù)所在的目錄的大小是要經(jīng)常變化或擴充的。原來/?v?a?r目錄中有些內(nèi)容是在/?u?s?r中的,但為了保持/?u?s?r目錄的相對穩(wěn)定,就把那些需要經(jīng)常改變的目錄放到/?v?a?r中了。每個系統(tǒng)是特定的,即不通過網(wǎng)絡(luò)與其他計算機共享。下面列出一些重要的目錄(一些不太重要的目錄省略了)。
 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?經(jīng)常被清除,就像清除臨時目錄一樣。)
 2.?/var/lib
 存放系統(tǒng)正常運行時要改變的文件。
 3.?/var/local
 存放/usr/local?中安裝的程序的可變數(shù)據(jù)(即系統(tǒng)管理員安裝的程序)。注意,如果必要,即使本地安裝的程序也會使用其他/var?目錄,例如/var/lock?。
 4.?/var/lock
 鎖定文件。許多程序遵循在/var/lock?中產(chǎn)生一個鎖定文件的約定,以用來支持他們正在使用某個特定的設(shè)備或文件。其他程序注意到這個鎖定文件時,就不會再使用這個設(shè)備或文件。
 5.?/var/log
 各種程序的日志(?l?o?g?)文件,尤其是login?(/var/log/wtmp?log紀錄所有到系統(tǒng)的登錄和注銷)?和syslog?(/var/log/messages?紀錄存儲所有核心和系統(tǒng)程序信息)。/var/log里的文件經(jīng)常不確定地增長,應該定期清除。
 6.?/var/run
 保存在下一次系統(tǒng)引導前有效的關(guān)于系統(tǒng)的信息文件。例如,?/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?允許更大的或需要存在較長時間的臨時文件。注意系統(tǒng)管理員可能不允許/var/tmp?有很舊的文件。
?
/proc文件系統(tǒng)
/proc?文件系統(tǒng)是一個偽的文件系統(tǒng),就是說它是一個實際上不存在的目錄,因而這是一
 個非常特殊的目錄。它并不存在于某個磁盤上,而是由核心在內(nèi)存中產(chǎn)生。這個目錄用于提
 供關(guān)于系統(tǒng)的信息。下面說明一些最重要的文件和目錄(/proc?文件系統(tǒng)在proc?man頁中有更詳
 細的說明)。
 1.?/proc/x
 關(guān)于進程x的信息目錄,這一x是這一進程的標識號。每個進程在/proc?下有一個名為自
 己進程號的目錄。
 2.?/proc/cpuinfo
 存放處理器(?c?p?u?)的信息,如c?p?u的類型、制造商、型號和性能等。
 3.?/proc/devices
 當前運行的核心配置的設(shè)備驅(qū)動的列表。
 4.?/proc/dma
 顯示當前使用的d?m?a通道。
 5.?/proc/filesystems
 核心配置的文件系統(tǒng)信息。
 6.?/proc/interrupts
 顯示被占用的中斷信息和占用者的信息,以及被占用的數(shù)量。
 7.?/proc/ioports
 當前使用的i?/?o端口。
 8.?/proc/kcore
 系統(tǒng)物理內(nèi)存映像。與物理內(nèi)存大小完全一樣,然而實際上沒有占用這么多內(nèi)存;它僅僅是在程序訪問它時才被創(chuàng)建。(注意:除非你把它拷貝到什么地方,否則/proc?下沒有任何東西占用任何磁盤空間。)
 9.?/proc/kmsg
 核心輸出的消息。也會被送到s?y?s?l?o?g。
 10.?/proc/ksyms
 核心符號表。
 11.?/proc/loadavg
 系統(tǒng)“平均負載”;?3個沒有意義的指示器指出系統(tǒng)當前的工作量。
 12.?/proc/meminfo
 各種存儲器使用信息,包括物理內(nèi)存和交換分區(qū)(?s?w?a?p?)。
 13.?/proc/modules
 存放當前加載了哪些核心模塊信息。
 14.?/proc/net
 網(wǎng)絡(luò)協(xié)議狀態(tài)信息。
 15.?/proc/self
 存放到查看/proc?的程序的進程目錄的符號連接。當2個進程查看/proc?時,這將會是不同的連接。這主要便于程序得到它自己的進程目錄。
 16.?/proc/stat
 系統(tǒng)的不同狀態(tài),例如,系統(tǒng)啟動后頁面發(fā)生錯誤的次數(shù)。
 17.?/proc/uptime
 系統(tǒng)啟動的時間長度。
 18.?/proc/version
 核心版本
#!/bin/bash
set -e
command 1
 command 2
 ...
exit 0
 ----------------------------------------------------------
 你寫的每個腳本都應該在文件開頭加上set -e,這句語句告訴bash如果任何語句的執(zhí)行結(jié)果不是true則應該退出。
 這樣的好處是防止錯誤像滾雪球般變大導致一個致命的錯誤,而這些錯誤本應該在之前就被處理掉。如果要增加可讀性,可以使用set -o errexit,它的作用與set -e相同。
問題一:
絕對路徑用什么符號表示?當前目錄、上層目錄用什么表示?主目錄用什么表示? 切換目錄用什么命令?
答案:
 絕對路徑: 如/etc/init.d
 當前目錄和上層目錄: ./ ?../
 主目錄: ~/
 切換目錄: cd
問題二:
怎么查看當前進程?怎么執(zhí)行退出?怎么查看當前路徑?
答案:
 查看當前進程: ps
 執(zhí)行退出: exit
 查看當前路徑: pwd
問題三:
怎么清屏?怎么退出當前命令?怎么執(zhí)行睡眠?怎么查看當前用戶 id?查看指定幫助用什么命令?
答案:
 清屏: clear
 退出當前命令: ctrl+c 徹底退出
 執(zhí)行睡眠 : ctrl+z 掛起當前進程fg 恢復后臺
 查看當前用戶 id: ”id“:查看顯示目前登陸賬戶的 uid 和 gid 及所屬分組及用戶名
 查看指定幫助: 如 man adduser 這個很全 而且有例子; adduser --help 這個告訴你一些常用參數(shù); info adduesr;
問題四:
Ls 命令執(zhí)行什么功能? 可以帶哪些參數(shù),有什么區(qū)別?
答案:
 ls 執(zhí)行的功能: 列出指定目錄中的目錄,以及文件
 哪些參數(shù)以及區(qū)別: a 所有文件l 詳細信息,包括大小字節(jié)數(shù),可讀可寫可執(zhí)行的權(quán)限等
問題五:
建立軟鏈接(快捷方式),以及硬鏈接的命令。
答案:
 軟鏈接: ln -s slink source
 硬鏈接: ln link source
問題六:
目錄創(chuàng)建用什么命令?創(chuàng)建文件用什么命令?復制文件用什么命令?
答案:
 創(chuàng)建目錄: mkdir
 創(chuàng)建文件:典型的如 touch,vi 也可以創(chuàng)建文件,其實只要向一個不存在的文件輸出,都會創(chuàng)建文件
 復制文件: cp 7. 文件權(quán)限修改用什么命令?格式是怎么樣的?
 文件權(quán)限修改: chmod
 格式如下:
$ chmod u+x file 給 file 的屬主增加執(zhí)行權(quán)限
 $ chmod 751 file 給 file 的屬主分配讀、寫、執(zhí)行(7)的權(quán)限,給 file 的所在組分配讀、執(zhí)行(5)的權(quán)限,給其他用戶分配執(zhí)行(1)的權(quán)限
 $ chmod u=rwx,g=rx,o=x file 上例的另一種形式
 $ chmod =r file 為所有用戶分配讀權(quán)限
 $ chmod 444 file 同上例
 $ chmod a-wx,a+r file同上例
 $ chmod -R u+r directory 遞歸地給 directory 目錄下所有文件和子目錄的屬主分配讀的權(quán)限
?
問題八:
查看文件內(nèi)容有哪些命令可以使用?
答案:
 vi 文件名 #編輯方式查看,可修改
 cat 文件名 #顯示全部文件內(nèi)容
 more 文件名 #分頁顯示文件內(nèi)容
 less 文件名 #與 more 相似,更好的是可以往前翻頁
 tail 文件名 #僅查看尾部,還可以指定行數(shù)
 head 文件名 #僅查看頭部,還可以指定行數(shù)
問題九:
隨意寫文件命令?怎么向屏幕輸出帶空格的字符串,比如”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]
?
問題十五:
用什么命令對一個文件的內(nèi)容進行統(tǒng)計?(行號、單詞數(shù)、字節(jié)數(shù))
答案:
wc 命令 - c 統(tǒng)計字節(jié)數(shù) - l 統(tǒng)計行數(shù) - w 統(tǒng)計字數(shù)。
問題十六:
Grep 命令有什么用? 如何忽略大小寫? 如何查找不含該串的行?
答案:
 是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹 配的行打印出來。
 grep [stringSTRING] filename grep [^string] filename
問題十七:
Linux 中進程有哪幾種狀態(tài)?在 ps 顯示出來的信息中,分別用什么符號表示的?
答案:
 (1)、不可中斷狀態(tài):進程處于睡眠狀態(tài),但是此刻進程是不可中斷的。不可中斷, 指進程不響應異步信號。
 (2)、暫停狀態(tài)/跟蹤狀態(tài):向進程發(fā)送一個 SIGSTOP 信號,它就會因響應該信號 而進入 TASK_STOPPED 狀態(tài);當進程正在被跟蹤時,它處于 TASK_TRACED 這個特殊的狀態(tài)。
 “正在被跟蹤”指的是進程暫停下來,等待跟蹤它的進程對它進行操作。
(3)、就緒狀態(tài):在 run_queue 隊列里的狀態(tài)
(4)、運行狀態(tài):在 run_queue 隊列里的狀態(tài)
 (5)、可中斷睡眠狀態(tài):處于這個狀態(tài)的進程因為等待某某事件的發(fā)生(比如等待 socket 連接、等待信號量),而被掛起
 (6)、zombie 狀態(tài)(僵尸):父親沒有通過 wait 系列的系統(tǒng)調(diào)用會順便將子進程的尸體(task_struct)也釋放掉
 (7)、退出狀態(tài)
D 不可中斷 Uninterruptible(usually IO)
 R 正在運行,或在隊列中的進程
 S 處于休眠狀態(tài)
 T 停止或被追蹤
 Z 僵尸進程
 W 進入內(nèi)存交換(從內(nèi)核 2.6 開始無效)
 X 死掉的進程
?
問題十八:
怎么使一個命令在后臺運行?
答案:
 一般都是使用 & 在命令結(jié)尾來讓程序自動運行。(命令后可以不追加空格)
 ?
問題十九:
利用 ps 怎么顯示所有的進程? 怎么利用 ps 查看指定進程的信息?
答案:
 ps -ef (system v 輸出)?
ps -aux bsd 格式輸出
ps -ef | grep pid
問題二十:
哪個命令專門用來查看后臺任務??
答案:
job -l
 ?
問題二十一:
把后臺任務調(diào)到前臺執(zhí)行使用什么命令?把停下的后臺任務在后臺執(zhí)行起來用什么命令?
答案:
 把后臺任務調(diào)到前臺執(zhí)行 fg
把停下的后臺任務在后臺執(zhí)行起來 bg
?
問題二十二:
終止進程用什么命令? 帶什么參數(shù)??
答案:
kill [-s <信息名稱或編號>][程序] 或 kill [-l <信息編號>]?
kill-9 pid
?
問題二十三:
怎么查看系統(tǒng)支持的所有信號?
答案:
kill -l
問題二十四:
搜索文件用什么命令? 格式是怎么樣的??
答案:
find <指定目錄> <指定條件> <指定動作>
whereis 加參數(shù)與文件名
locate 只加文件名
find 直接搜索磁盤,較慢。
find / -name "string*"
?
問題二十五:
查看當前誰在使用該主機用什么命令? 查找自己所在的終端信息用什么命令?
答案:
 查找自己所在的終端信息:who am i
查看當前誰在使用該主機:who
?
問題二十六:
使用什么命令查看用過的命令列表?
答案:
history
 ?
問題二十七:
使用什么命令查看磁盤使用空間? 空閑空間呢?
答案:
df -hl
 文件系統(tǒng) 容量 已用 可用 已用% 掛載點
 Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% /
 /dev/hda1 494M 19M 450M 4% /boot
問題二十八:
使用什么命令查看網(wǎng)絡(luò)是否連通?
答案:
 netstat
問題二十九:
使用什么命令查看 ip 地址及接口信息?
答案:
ifconfig
問題三十:
查看各類環(huán)境變量用什么命令?
答案:
查看所有 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\#]\$‘
?
問題三十二:
查找命令的可執(zhí)行文件是去哪查找的? 怎么對其進行設(shè)置及添加??
答案:
whereis [-bfmsu][-B <目錄>...][-M <目錄>...][-S <目錄>...][文件...]
補充說明:whereis 指令會在特定目錄中查找符合條件的文件。這些文件的烈性應屬于原始代碼,二進制文件,或是幫助文件。
-b ? 只查找二進制文件。
-B<目錄> 只在設(shè)置的目錄下查找二進制文件。 -f 不顯示文件名前的路徑名稱。
 -m ? 只查找說明文件。
 -M<目錄> 只在設(shè)置的目錄下查找說明文件。 -s 只查找原始代碼文件。
 -S<目錄> 只在設(shè)置的目錄下查找原始代碼文件。 -u 查找不包含指定類型的文件。
 which 指令會在 PATH 變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結(jié)果。
 -n 指定文件名長度,指定的長度必須大于或等于所有文件中最長的文件名。
 -p 與-n 參數(shù)相同,但此處的包括了文件的路徑。 -w 指定輸出時欄位的寬度。
 -V ? 顯示版本信息
?
問題三十三:
通過什么命令查找執(zhí)行命令?
答案:
 which 只能查可執(zhí)行文件
whereis 只能查二進制文件、說明文檔,源文件等
 ?
問題三十四:
怎么對命令進行取別名?
答案:
 alias la='ls -a'
問題三十五:
du 和 df 的定義,以及區(qū)別?
答案:
du 顯示目錄或文件的大小
df 顯示每個<文件>所在的文件系統(tǒng)的信息,默認是顯示所有文件系統(tǒng)。
 (文件系統(tǒng)分配其中的一些磁盤塊用來記錄它自身的一些數(shù)據(jù),如 i 節(jié)點,磁盤分布圖,間接塊,超級塊等。這些數(shù)據(jù)對大多數(shù)用戶級的程序來說是不可見的,通常稱為 Meta Data。) du 命令是用戶級的程序,它不考慮 Meta Data,而 df 命令則查看文件系統(tǒng)的磁盤分配圖并考慮 Meta Data。
 df 命令獲得真正的文件系統(tǒng)數(shù)據(jù),而 du 命令只查看文件系統(tǒng)的部分情況。
問題三十六:
awk 詳解。
答案:
awk '{pattern + action}' {filenames}
 #cat /etc/passwd |awk -F ':' '{print $1"\t"$7}' //-F 的意思是以':'分隔 root /bin/bash
 daemon /bin/sh 搜索/etc/passwd 有 root 關(guān)鍵字的所有行
#awk -F: '/root/' /etc/passwd root:x:0:0:root:/root:/bin/bash
?
問題三十七:
當你需要給命令綁定一個宏或者按鍵的時候,應該怎么做呢?
答案:
可以使用bind命令,bind可以很方便地在shell中實現(xiàn)宏或按鍵的綁定。
在進行按鍵綁定的時候,我們需要先獲取到綁定按鍵對應的字符序列。
比如獲取F12的字符序列獲取方法如下:先按下Ctrl+V,然后按下F12 .我們就可以得到F12的字符序列 ^[[24~。
接著使用bind進行綁定。
[root@localhost ~]# bind ‘”\e[24~":"date"'
注意:相同的按鍵在不同的終端或終端模擬器下可能會產(chǎn)生不同的字符序列。
【附】也可以使用showkey -a命令查看按鍵對應的字符序列。
?
問題三十八:
如果一個linux新手想要知道當前系統(tǒng)支持的所有命令的列表,他需要怎么做?
答案:
使用命令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 來操作。
?
問題四十:
你的系統(tǒng)目前有許多正在運行的任務,在不重啟機器的條件下,有什么方法可以把所有正在運行的進程移除呢?
答案:
使用linux命令 ’disown -r ’可以將所有正在運行的進程移除。
?
問題四十一:
bash shell 中的hash 命令有什么作用?
答案:
linux命令’hash’管理著一個內(nèi)置的哈希表,記錄了已執(zhí)行過的命令的完整路徑, 用該命令可以打印出你所使用過的命令以及執(zhí)行的次數(shù)。
[root@localhost ~]# hash
hits command
2 /bin/ls
2 /bin/su
?
問題四十二:
哪一個bash內(nèi)置命令能夠進行數(shù)學運算。
答案:
bash shell 的內(nèi)置命令let 可以進行整型數(shù)的數(shù)學運算。
#! /bin/bash
 …
 …
 let c=a+b
 …
 …
?
問題四十三:
怎樣一頁一頁地查看一個大文件的內(nèi)容呢?
答案:
通過管道將命令”cat file_name.txt” 和 ’more’ 連接在一起可以實現(xiàn)這個需要.
[root@localhost ~]# cat file_name.txt | more
?
問題四十四:
數(shù)據(jù)字典屬于哪一個用戶的?
答案:
數(shù)據(jù)字典是屬于’SYS’用戶的,用戶‘SYS’ 和 ’SYSEM’是由系統(tǒng)默認自動創(chuàng)建的
?
問題四十五:
怎樣查看一個linux命令的概要與用法?假設(shè)你在/bin目錄中偶然看到一個你從沒見過的的命令,怎樣才能知道它的作用和用法呢?
答案:
使用命令whatis 可以先出顯示出這個命令的用法簡要,比如,你可以使用whatis zcat 去查看‘zcat’的介紹以及使用簡要。
[root@localhost ~]# whatis zcat
zcat [gzip] (1) – compress or expand files
?
問題四十六:
使用哪一個命令可以查看自己文件系統(tǒng)的磁盤空間配額呢?
答案:
使用命令repquota 能夠顯示出一個文件系統(tǒng)的配額信息
總結(jié)
以上是生活随笔為你收集整理的linux常用小知识点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: jQuery动画代码详解
- 下一篇: HTTP知识点
