1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與差別。
網橋:比較古老的方式二層交換裝置,網橋的兩個端口分别有一條獨立的交換信道,不是共享一條背闆總線,可隔離沖突域。類似中繼器。
集線器: 二層交換裝置,多口的網橋
二層交換機: 二層交換裝置,可以識别資料包中的MAC位址資訊,根據MAC位址進行轉發,并将這些MAC位址與對應的端口記錄在自己内部的一個位址表中
三層交換機: 工作在二層和三層,具有路由功能的交換機。三層交換機的最重要目的是加快大型區域網路内部的資料交換,所具有的路由功能也是為這目的服務的,能夠做到一次路由,多次轉發。對于資料包轉發等規律性的過程由硬體高速實作,而像路由資訊更新、路由表維護、路由計算、路由确定等功能,由軟體實作。
路由器:是連接配接網際網路中各區域網路、廣域網的裝置,它會根據信道的情況自動選擇和設定路由,以最佳路徑,按前後順序發送信号。
2、IP位址的分類有哪些?子網路遮罩的表示形式及其作用
IPv4 位址分類:
A類:
0 000 0000 - 0 111 1111: 1-127
網絡數:126, 127
每個網絡中的主機數:2^24-2
預設子網路遮罩:255.0.0.0
私網位址:10.0.0.0/8
B類:
10 00 0000 - 10 11 1111:128-191
網絡數:2^14
每個網絡中的主機數:2^16-2
預設子網路遮罩:255.255.0.0
私網位址:172.16.0.0/16-172.31.0.0/16
C類:
110 0 0000 - 110 1 1111: 192-223
網絡數:2^21
每個網絡中的主機數:2^8-2
預設子網路遮罩:255.255.255.0
私網位址:192.168.0.0/24-192.168.255.0/24
D類:多點傳播
1110 0000 - 1110 1111: 224-239
E類:
240-255
子網路遮罩:
點分十進制:0-255
0000 0000 - 1111 1111
0.0.0.0-255.255.255.255
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的實體裝置有哪些。
OSI模型
實體層:提供為建立、維護和拆除實體鍊路所需要的機械的、電氣的、功能的和規程的特性;有關的實體鍊路上傳輸非結構的位流以及故障檢測訓示。
實體層的媒體包括架空明線、平衡電纜、光纖、無線信道等
資料鍊路層:在網絡層實體間提供資料發送和接收的功能和過程;提供資料鍊路的流控。
二層交換機,集線器,網橋
網絡層:控制分組傳送系統的操作、路由選擇、擁護控制、網絡互連等功能,它的作用是将具體的實體傳送對高層透明。
路由器,三層交換機
傳輸層:提供建立、維護和拆除傳送連接配接的功能;選擇網絡層提供最合适的服務;在系統之間提供可靠的透明的資料傳送,提供端到端的錯誤恢複和流量控制。
會話層:提供兩程序之間建立、維護和結束會話連接配接的功能;提供互動會話的管理功能,如三種資料流方向的控制,即一路互動、兩路交替和兩路同時會話模式 。
表示層:代表應用程序協商資料表示;完成資料轉換、格式化和文本壓縮。
應用層:提供OSI使用者服務,例如事務處理程式、檔案傳送協定和網絡管理等。
tcp/ip分層:
第一層:網絡接口層
包括用于協作IP資料在已有網絡媒體上傳輸的協定。實際上TCP/IP标準并不定義與ISO資料鍊路層和實體層相對應的功能。相反,它定義像位址解析協定(Address Resolution Protocol,ARP)這樣的協定,提供TCP/IP協定的資料結構和實際實體硬體之間的接口。
第二層:網絡層(Internet Layer)。網絡層解決的是計算機到計算機間的通信問題,它包括三個方面的功能:
處理來自傳輸層的分組發送請求,收到請求後将分組裝入IP資料報,填充報頭,選擇路徑,然後将資料報發往适當的網絡接口。
處理資料報。
處理網絡控制封包協定、即處理路徑、流量控制、阻塞等。
對應于OSI七層參考模型的網絡層。本層包含IP協定、RIP協定(Routing Information Protocol,路由資訊協定),負責資料的包裝、尋址和路由。同時還包含網間控制封包協定(Internet Control Message Protocol,ICMP)用來提供網絡診斷資訊。
第三層:傳輸層
傳輸層解決的是計算機程式到計算機程式之間的通信問題。對應于OSI七層參考模型的傳輸層,它提供兩種端到端的通信服務。其中TCP協定(Transmission Control Protocol)提供可靠的資料流運輸服務,UDP協定(Use Datagram Protocol)提供不可靠的使用者資料報服務。
第四層:應用層
對應于OSI七層參考模型的應用層和表達層。網際網路的應用層協定包括Finger、Whois、FTP(檔案傳輸協定)、Gopher、HTTP(超文本傳輸協定)、Telent(遠端終端協定)、SMTP(簡單郵件傳送協定)、IRC(網際網路中繼會話)、NNTP(網絡新聞傳輸協定)等。
4、如何将Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
1、Linux主機有一個可以正常被系統識别的網卡
2、網卡的接口上有一條可以正常和外界交換的鍊路
ifconfig,ip addr檢視網卡狀态
3、為網卡指定一個正确的IP位址和路由
靜态指定:
ifcfg: ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
配置檔案
system-config-network-tui (setup)
CentOS 7:
nmcli, nmtui
netstat檢視路由
4、為機器指定一個正确的網關
/etc/sysconfig/network-scripts/ifcfg-XXX
/etc/sysconfig/networking
GATEWAY=XXXXXXX
5、為機器制定DNS解析伺服器
/etc/resolv.conf
nameserver DNS_SERVER_IP1 #主DNS
nameserver DNS_SERVER_IP2 #次DNS
nameserver DNS_SERVER_IP3 #第三DNS
5、為Linux主機配置網絡資訊的方式有哪些,請描述各個過程。
配置方式:
靜态指定:
動态配置設定:
DHCP: Dynamic Host Configuration Protocol
配置網絡接口:
CentOS 6:
以太網:eth[0,1,2,...]
ppp:ppp[0,1,2,...]
ifconfig指令
ifconfig [interface]
# ifconfig -a
# ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/mask [up]
# ifconfig IFACE IP netmask MASK
注意:立即生效;
啟用混雜模式:[-]promisc
route指令
路由管理指令
檢視:route -n
添加:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
目标:192.168.1.3 網關:172.16.0.1
~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
目标:192.168.0.0 網關:172.16.0.1
~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
預設路由,網關:172.16.0.1
~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
~]# route add default gw 172.16.0.1
删除:route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
~]# route del -host 192.168.1.3
~]# route del -net 192.168.0.0 netmask 255.255.255.0
DNS伺服器指定
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
正解:FQDN-->IP
# dig -t A FQDN
# host -t A FQDN
反解:IP-->FQDN
# dig -x IP
# host -t PTR IP
FQDN: www.magedu.com.
netstat指令:
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
顯示網絡連接配接:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp協定相關
-u: udp協定相關
-w: raw socket相關
-l: 處于監聽狀态
-a: 所有狀态
-n: 以數字顯示IP和端口;
-e:擴充格式
-p: 顯示相關程序及PID
常用組合:
-tan, -uan, -tnl, -unl
顯示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 顯示核心路由表
-n: 數字格式
顯示接口統計資料:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i
# netstat -I IFACE
總結:ifcfg家庭指令配置
ifconfig/route/netstat
ifup/ifdown
6、寫一個腳本,使用ping指令探測172.16.250.1-172.16.250.254之間的所有主機的線上狀态;
線上的主機使用綠色顯示;
不線上的主使用紅色顯示;
#!/bin/bash
for i in $(seq 1 254)
do
ServerIp=172.16.250.$i
ping -c 1 -w 1 $ServerIp &> /dev/null
if [ $? -eq 0 ]; then
echo -e "\033[0;32;1m $ServerIp is up. \033[0m"
else
echo -e "\033[0;31;1m $ServerIp is down. \033[0m"
fi
done
7、較長的描述每個網絡接口的配置檔案中各個參數的含義和其所對應的值;
DEVICE:此配置檔案應用到的裝置;
HWADDR:對應的裝置的MAC位址;
BOOTPROTO:激活此裝置時使用的位址配置協定,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議為“no”;
ONBOOT:在系統引導時是否激活此裝置;
TYPE:接口類型;常見有的Ethernet, Bridge;
UUID:裝置的惟一辨別;
IPADDR:指明IP位址;
NETMASK:子網路遮罩;
GATEWAY: 預設網關;
DNS1:第一個DNS伺服器指向;
DNS2:第二個DNS伺服器指向;
USERCTL:普通使用者是否可控制此裝置;
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server配置設定的dns伺服器指向資訊直接覆寫至/etc/resolv.conf檔案中;
8、如何給網絡接口配置多個位址,有哪些方式?
ifconfig:
ifconfig IFACE_ALIAS
ip
ip addr add
配置檔案:
ifcfg-IFACE_ALIAS
DEVICE=IFACE_ALIAS
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
ip指令:
ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
link OBJECT:
ip link - network device configuration
set
dev IFACE
可設定屬性:
up and down:激活或禁用指定接口;
show
[dev IFACE]:指定接口
[up]:僅顯示處于激活狀态的接口
ip address - protocol address management
ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加位址時指明網卡别名
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 僅連結可用;
host: 本機可用;
[broadcast ADDRESS]:指明廣播位址
ip address show - look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip address flush - flush protocol addresses
使用格式同show
ip route - routing table management
ip route add
添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主機路由:IP
網絡路由:NETWORK/MASK
添加網關:ip route add defalt via GW dev IFACE
ip route delete
删除路由:ip route del TARGET
ip route show
ip route flush
[dev IFACE]
[via PREFIX]
ss指令:
格式:ss [OPTION]... [FILTER]
選項:
-t: tcp協定相關
-u: udp協定相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀态的連接配接
-a: 所有
-n: 數字格式
-p: 相關的程式及PID
-e: 擴充的資訊
-m:記憶體用量
-o:計時器資訊
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常見狀态:
tcp finite state machine:
LISTEN: 監聽
ESTABLISHED:已建立的連接配接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport =
sport =
示例:’( dport = :ssh or sport = :ssh )’
常用組合:
-tan, -tanl, -tanlp, -uan
netstat指令:
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
顯示網絡連接配接:
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t: tcp協定相關
-u: udp協定相關
-w: raw socket相關
-l: 處于監聽狀态
-a: 所有狀态
-n: 以數字顯示IP和端口;
-e:擴充格式
-p: 顯示相關程序及PID
常用組合:
-tan, -uan, -tnl, -unl
顯示路由表:
netstat {--route|-r} [--numeric|-n]
-r: 顯示核心路由表
-n: 數字格式
顯示接口統計資料:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i
# netstat -I IFACE
ifconfig指令
路由管理指令
Linux網絡屬性配置的tui(text user interface):
system-config-network-tui
也可以使用setup找到;
CentOS7
位址配置工具:nmcli
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
connection - start, stop, and manage network connections
如何修改IP位址等屬性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses
ipv4.gateway
ipv4.dns1
ipv4.method
manual
網絡接口配置tui工具:nmtui
主機名稱配置工具:hostnamectl
status
set-hostname
10、Linux系統軟體包管理方法(安裝、更新、解除安裝等操作)有哪些,以及如何管理的。
顯示倉庫清單:
repolist [all|enabled|disabled]
顯示程式包:
list
# yum list [all | glob_exp1] [glob_exp2] [...]
# yum list {available|installed|updates} [glob_exp1] [...]
安裝程式包:
install package1 [package2] [...]
reinstall package1 [package2] [...] (重新安裝)
更新程式包:
update [package1] [package2] [...]
downgrade package1 [package2] [...] (降級)
檢查可用更新:
check-update
解除安裝程式包:
remove | erase package1 [package2] [...]
檢視程式包information:
info [...]
檢視指定的特性(可以是某檔案)是由哪個程式包所提供:
provides | whatprovides feature1 [feature2] [...]
清理本地緩存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
建構緩存:
makecache
搜尋:
search string1 [string2] [...]
以指定的關鍵字搜尋程式包名及summary資訊;
檢視指定包所依賴的capabilities:
deplist package1 [package2] [...]
檢視yum事務曆史:
history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
安裝及更新本地程式包:
* localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
包組管理的相關指令:
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
11、如何使用發行版CD光牒作為yum repository,請描述該過程。
(1) 挂載CD光牒至某目錄,例如/media/cdrom
# mount -r -t iso9660 /dev/cdrom /media/cdrom
(2) 建立配置檔案
[CentOS7]
name=
baseurl=
gpgcheck=
enabled=
12、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分别有K開頭的檔案和S開頭的檔案若幹;
(2) 顯示所有以K開頭的檔案的檔案名,并且給其附加一個stop字元串;
(3) 顯示所有以S開頭的檔案的檔案名,并且給其附加一個start字元串;
(4) 分别統計S開頭和K開頭的檔案各有多少;
#!/bin/bash
CountK=0
CountS=0
for i in $(ls /etc/rc.d/rc3.d)
do
[[ $i =~ ^K ]] && cp /etc/rc.d/rc3.d/$i /etc/rc.d/rc3.d/stop_$i && let CountK++
[[ $i =~ ^S ]] && cp /etc/rc.d/rc3.d/$i /etc/rc.d/rc3.d/start_$i && let CountS++
done
echo "Total file start with K==> $CountK"
echo "Total file start with P==> $CountS"
13、寫一個腳本,完成以下功能
(1) 腳本能接受使用者名作為參數;
(2) 計算此些使用者的ID之和;
[root@lbtest03 shell]# cat 13.sh
#!/bin/bash
Sum=0
for i in $@
do
ID=$(grep "^$i" /etc/passwd|cut -d: -f3)
let Sum+=$ID
done
echo "total ==> $Sum"
[root@lbtest03 shell]# bash 13.sh ericz sam sam.yi bin adm bin bin bin
total ==> 3022
[root@lbtest03 shell]# bash 13.sh ericz sam sam.yi bin adm bin bin bin bin
total ==> 3023
[root@lbtest03 shell]#
14、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級檔案或子目錄的内容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個檔案的内容類型;
[root@lbtest03 shell]# cat 14.sh
#!/bin/bash
CountDir=0
CountFile=0
for DirName in $@
do
[[ -d DirName ]] && continue
for FileName in $(ls $DirName)
do
file $DirName/$FileName && let CountFile++
done
let CountDir++
done
echo "Total Dir==> $CountDir"
echo "Total File==> $CountFile"
[root@lbtest03 shell]# bash 14.sh /tmp /etc
/tmp/123: directory
/tmp/api-hccgw.homecredit.cn.conf.maintenance: ASCII text
/tmp/api-hccgw.homecredit.cn.conf.normal: ASCII text
/tmp/hsperfdata_root: directory
/tmp/maintainpage: directory
/tmp/systemd-private-AwD0QN: directory
/tmp/systemd-private-d0txak: directory
/tmp/systemd-private-IsJqQ1: directory
/etc/adjtime: ASCII text
/etc/aliases: ASCII text
/etc/aliases.db: Berkeley DB (Hash, version 9, native byte-order)
/etc/alternatives: directory
/etc/anacrontab: ASCII text
/etc/ansible: directory
/etc/asound.conf: ASCII text
/etc/at.deny: very short file (no magic)
/etc/audisp: directory
/etc/audit: directory
/etc/avahi: directory
/etc/bash_completion.d: directory
/etc/bashrc: ASCII text
/etc/binfmt.d: directory
/etc/centos-release: ASCII text
/etc/chkconfig.d: directory
/etc/cron.d: directory
/etc/cron.daily: directory
/etc/cron.deny: empty
/etc/cron.hourly: directory
/etc/cron.monthly: directory
/etc/crontab: ASCII text
/etc/cron.weekly: directory
/etc/crypttab: empty
/etc/csh.cshrc: ASCII text
/etc/csh.login: ASCII text
/etc/dbus-1: directory
/etc/default: directory
/etc/depmod.d: directory
/etc/dhcp: directory
/etc/DIR_COLORS: ASCII text
/etc/DIR_COLORS.256color: ASCII text
/etc/DIR_COLORS.lightbgcolor: ASCII text
/etc/dnf: directory
/etc/dnsmasq.conf: ASCII text
/etc/dnsmasq.d: directory
/etc/docker: directory
/etc/dracut.conf: ASCII text
/etc/dracut.conf.d: directory
/etc/e2fsck.conf: ASCII text
/etc/environment: empty
/etc/ethertypes: ASCII text
/etc/exports: empty
/etc/favicon.png: symbolic link to `/usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png'
/etc/filesystems: ASCII text
/etc/firewalld: directory
/etc/fonts: directory
/etc/foomatic: directory
/etc/fstab: ASCII text
/etc/gcrypt: directory
/etc/gdbinit: ASCII text
/etc/gdbinit.d: directory
/etc/ghostscript: directory
/etc/glances: directory
/etc/gnupg: directory
/etc/GREP_COLORS: ASCII text
/etc/groff: directory
/etc/group: ASCII text
/etc/group-: ASCII text
/etc/grub2.cfg: symbolic link to `../boot/grub2/grub.cfg'
/etc/grub.d: directory
/etc/gshadow: ASCII text
/etc/gshadow-: ASCII text
/etc/gss: directory
/etc/haproxy: directory
/etc/host.conf: ASCII text
/etc/hostname: ASCII text
/etc/hosts: ASCII text
/etc/hosts.allow: ASCII text
/etc/hosts.deny: ASCII text
/etc/httpd: directory
/etc/init.d: symbolic link to `rc.d/init.d'
/etc/inittab: ASCII text
/etc/inputrc: ASCII text
/etc/inputrc.origin: ASCII text
/etc/iproute2: directory
/etc/issue: ASCII text
/etc/issue.net: ASCII text
/etc/java: directory
/etc/jvm: directory
/etc/jvm-commmon: directory
/etc/kdump.conf: ASCII text
/etc/kernel: directory
/etc/krb5.conf: ASCII text
/etc/ld.so.cache: data
/etc/ld.so.conf: ASCII text
/etc/ld.so.conf.d: directory
/etc/libaudit.conf: ASCII text
/etc/libnl: directory
/etc/libreport: directory
/etc/libuser.conf: ASCII text
/etc/locale.conf: ASCII text
/etc/localtime: symbolic link to `../usr/share/zoneinfo/Asia/Shanghai'
/etc/login.defs: ASCII text
/etc/logrotate.conf: ASCII text
/etc/logrotate.d: directory
/etc/logstash-agent-nginx.conf: ASCII text
/etc/lsb-release.d: directory
/etc/lvm: directory
/etc/machine-id: ASCII text
/etc/magic: magic text file for file(1) cmd, ASCII text
/etc/mailcap: ASCII text
/etc/mail.rc: ASCII text
/etc/makedumpfile.conf.sample: ASCII text
/etc/man_db.conf: ASCII text
/etc/maven: directory
/etc/mime.types: UTF-8 Unicode text
/etc/mke2fs.conf: ASCII text
/etc/modprobe.d: directory
/etc/modules-load.d: directory
/etc/mongod_27017.conf: ASCII text
/etc/mongod_27018.conf: ASCII text
/etc/mongod_27019.conf: ASCII text
/etc/mongod.conf: ASCII text
/etc/motd: empty
/etc/mtab: symbolic link to `/proc/self/mounts'
/etc/my.cnf: ASCII text
/etc/my.cnf.d: directory
/etc/NetworkManager: directory
/etc/networks: ASCII text
/etc/nginx: directory
/etc/nsswitch.conf: ASCII text
/etc/nsswitch.conf.bak: ASCII text
/etc/ntp: directory
/etc/ocsinventory-agent: directory
/etc/openldap: directory
/etc/opt: directory
/etc/os-release: ASCII text
/etc/pam.d: directory
/etc/passwd: ASCII text
/etc/passwd-: ASCII text
/etc/pkcs11: directory
/etc/pki: directory
/etc/plymouth: directory
/etc/pm: directory
/etc/polkit-1: directory
/etc/popt.d: directory
/etc/postfix: directory
/etc/ppp: directory
/etc/prelink.conf.d: directory
/etc/printcap: ASCII text
/etc/profile: ASCII text
/etc/profile.d: directory
/etc/protocols: ASCII text
/etc/python: directory
/etc/rc0.d: symbolic link to `rc.d/rc0.d'
/etc/rc1.d: symbolic link to `rc.d/rc1.d'
/etc/rc2.d: symbolic link to `rc.d/rc2.d'
/etc/rc3.d: symbolic link to `rc.d/rc3.d'
/etc/rc4.d: symbolic link to `rc.d/rc4.d'
/etc/rc5.d: symbolic link to `rc.d/rc5.d'
/etc/rc6.d: symbolic link to `rc.d/rc6.d'
/etc/rc.d: directory
/etc/rc.local: symbolic link to `rc.d/rc.local'
/etc/redhat-lsb: directory
/etc/redhat-release: symbolic link to `centos-release'
/etc/redis.conf: ASCII text
/etc/redis-sentinel.conf: ASCII text
/etc/resolv.conf: ASCII text
/etc/rpc: ASCII text
/etc/rpm: directory
/etc/rpmdevtools: directory
/etc/rsyncd.conf: ASCII text
/etc/rsyslog.conf: ASCII text
/etc/rsyslog.conf.2015-11-18_00-00-21: ASCII text
/etc/rsyslog.d: directory
/etc/rwtab: ASCII text
/etc/rwtab.d: directory
/etc/sasl2: directory
/etc/securetty: ASCII text
/etc/security: directory
/etc/selinux: directory
/etc/services: C++ source, ASCII text
/etc/sestatus.conf: ASCII text
/etc/shadow: ASCII text
/etc/shadow-: ASCII text
/etc/shells: ASCII text
/etc/skel: directory
/etc/sos.conf: ASCII text
/etc/ssh: directory
/etc/ssl: directory
/etc/statetab: ASCII text
/etc/statetab.d: directory
/etc/subversion: directory
/etc/sudo.conf: ASCII text
/etc/sudoers: C source, ASCII text
/etc/sudoers.2015-11-18_00-00-20: C source, ASCII text
/etc/sudoers.d: directory
/etc/sudo-ldap.conf: UTF-8 Unicode text
/etc/sysconfig: directory
/etc/sysctl.conf: ASCII text
/etc/sysctl.d: directory
/etc/systemd: directory
/etc/system-release: symbolic link to `centos-release'
/etc/system-release-cpe: ASCII text
/etc/terminfo: directory
/etc/tmpfiles.d: directory
/etc/Trolltech.conf: ASCII text
/etc/trusted-key.key: ASCII text, with very long lines, with CRLF line terminators
/etc/tuned: directory
/etc/udev: directory
/etc/uwsgi9090.ini: UTF-8 Unicode text
/etc/vconsole.conf: ASCII text
/etc/vimrc: ASCII text, with escape sequences
/etc/virc: ASCII text, with escape sequences
/etc/vsftpd: directory
/etc/wgetrc: ASCII text
/etc/wpa_supplicant: directory
/etc/X11: directory
/etc/xdg: directory
/etc/xinetd.d: directory
/etc/yum: directory
/etc/yum.conf: ASCII text
/etc/yum.conf.2015-11-18_00-00-18: ASCII text
/etc/yum.repos.d: directory
Total Dir==> 2
Total File==> 223
[root@lbtest03 shell]#
15、寫一個腳本
通過指令行傳遞一個參數給腳本,參數為使用者名
如果使用者的id号大于等于500,則顯示此使用者為普通使用者;
[root@lbtest03 shell]# bash 15.sh ericz
Common user
[root@lbtest03 shell]# bash 15.sh root
[root@lbtest03 shell]# cat 15.sh
#!/bin/bash
[[ $(id -u $1) -gt 500 ]] && echo "Common user"
[root@lbtest03 shell]#
16、寫一個腳本
(1) 添加10使用者user1-user10;密碼同使用者名;
(2) 使用者不存在時才添加;存在時則跳過;
(3) 最後顯示本次共添加了多少使用者;
[root@lbtest03 shell]# cat 16.sh
#!/bin/bash
count=0
for i in $(seq 1 10)
do
id user$i >/dev/null 2>&1 && continue
useradd user$i
let count++
done
echo "Total==> $count"
[root@lbtest03 shell]#
17、寫一腳本,用ping指令測試172.16.250.20-172.16.250.100以内有哪些主機線上,将線上的顯示出來;
#!/bin/bash
for i in $(seq 1 254)
do
ServerIp=172.16.250.$i
ping -c 1 -w 1 $ServerIp &> /dev/null
if [ $? -eq 0 ]; then
echo -e "\033[0;32;1m $ServerIp is up. \033[0m"
fi
done