文章目錄
- 1. Linux下如何使用配置文件設置網卡IP地址。
- 2. Linux下配置主機名,並使之永久生效
- 3. 給出你經常用的遠程訪問一臺Linux主機的工具和方法,如何向遠程主機上傳文件,如何從遠程主機向本地下載文件
- 4. 如何查看系統的如下參數: 1cpu核心數,內存大小,硬盤總量 2 當前的cpu利用率,每個cpu核的利用率,當前內存使用情況, 3 指定進程的cpu利用率和內存使用量
- 5. 查看某個目錄或者文件的佔用空間大小
- 6. 強制關閉一個正在運行的程序
- 7. iptables 阻止系統發出tcp的flag爲reset的數據包
- 8. 如何配置Linux系統的環境變量,如何配置Linux系統的用戶環境變量。
- 9. 如何更改Linux系統中文件的屬性(只讀,讀寫,可執行)
- 10. Linux服務的關閉/啓動方法,如何設置某個服務的開啓自啓動
- 11. 如何查看系統中是否安裝了指定的rpm包,安裝 一個指定的rpm包,使用tcpdump命令,如何從網卡eth1捕獲從192.168.0.1到192.168.0.2的udp包或者icmp包。
- 12. 如何實現一個腳本,檢測一個程序(cassini)是否在運行,如果沒有在運行就運行它, 並對每次運行的時間進行記錄。(cassini 位於/opt/cassini/bin目錄下,非系統服務程序)
- 13. 有如下文件: a.txt (第一列是姓名,第二列是成績)請使用腳本計算出zhangsan的總成績
- 14 SQL查詢題目
1. Linux下如何使用配置文件設置網卡IP地址。
[root@ecs-c13b ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet # 網卡類型:爲以太網
PROXY_METHOD=none # 代理方式:關閉狀態
BROWSER_ONLY=no # 只是瀏覽器:否
BOOTPROTO=dhcp # 網卡的引導協議:DHCP[中文名稱: 動態主機配置協議]
DEFROUTE=yes # 默認路由:是, 不明白的可以百度關鍵詞 `默認路由`
IPV4_FAILURE_FATAL=no # 是不開啓IPV4致命錯誤檢測:否
IPV6INIT=yes # IPV6是否自動初始化: 是[不會有任何影響, 現在還沒用到IPV6]
IPV6_AUTOCONF=yes # IPV6是否自動配置:是[不會有任何影響, 現在還沒用到IPV6]
IPV6_DEFROUTE=yes # IPV6是否可以爲默認路由:是[不會有任何影響, 現在還沒用到IPV6]
IPV6_FAILURE_FATAL=no # 是不開啓IPV6致命錯誤檢測:否
IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [這隻一種生成IPV6的策略]
NAME=ens33 # 網卡物理設備名稱
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一識別碼, 每一個網卡都會有, 不能重複, 否兩臺linux只有一臺網卡可用
DEVICE=ens33 # 網卡設備名稱, 必須和 `NAME` 值一樣
ONBOOT=no # 是否開機啓動, 要想網卡開機就啓動或通過 `systemctl restart network`控制網卡,必須設置爲 `yes`
設置靜態ip:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.111
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
設置完成後:
systemctl restart network
2. Linux下配置主機名,並使之永久生效
centos7:
[root@ecs-c13b ~]# hostnamectl 查看當前主機名情況
Static hostname: ecs-c13b
Icon name: computer-vm
Chassis: vm
Machine ID: 8f5b018f6eb344909f6cfec5ad0839ef
Boot ID: 6f00bd8d7498442d988377805d1f448e
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1062.12.1.el7.x86_64
Architecture: x86-64
修改主機名的三種方式:
1) 臨時有效的
[root@ecs-c13b ~]# hostname gaosh
2) 永久生效的
[root@ecs-c13b ~]# hostnamectl set-hostname "zmgaosh"
3) 修改/etc/hostname
[root@ecs-c13b ~]# cat /etc/hostname
zmgaosh
3. 給出你經常用的遠程訪問一臺Linux主機的工具和方法,如何向遠程主機上傳文件,如何從遠程主機向本地下載文件
遠程訪問Linux主機的工具: xshell ,使用密碼或者祕鑰的形式進行管理
下載和上傳,可以使用命令rz, sz
也可以直接使用xshell工具
4. 如何查看系統的如下參數: 1cpu核心數,內存大小,硬盤總量 2 當前的cpu利用率,每個cpu核的利用率,當前內存使用情況, 3 指定進程的cpu利用率和內存使用量
查看cpu
[root@ecs-c13b ~]# cat /proc/cpuinfo |grep processor
processor : 0
processor : 1
查看內存:
[root@ecs-c13b ~]# cat /proc/meminfo |head -n 2
MemTotal: 3879860 kB
MemFree: 3190668 kB
查看硬盤:
[root@ecs-c13b ~]# df -lh
文件系統 容量 已用 可用 已用% 掛載點
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 40G 2.1G 36G 6% /
tmpfs 379M 0 379M 0% /run/user/0
top
第三行(Cpus):
分別表示了 CPU 當前的使用率
5. 查看某個目錄或者文件的佔用空間大小
[root@ecs-c13b ~]# du -h
4.0K ./.ssh
4.0K ./.pki/nssdb
8.0K ./.pki
4.0K ./test
44K .
6. 強制關閉一個正在運行的程序
ps -aux |grep 進程
查到進程ID爲1234
kill -9 1234
7. iptables 阻止系統發出tcp的flag爲reset的數據包
iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP
8. 如何配置Linux系統的環境變量,如何配置Linux系統的用戶環境變量。
系統環境變量:
cat /etc/profile
source /etc/profile
用戶環境變量
切換到用戶的家目錄
vim .bash_profile
source /etc/profile
9. 如何更改Linux系統中文件的屬性(只讀,讀寫,可執行)
只讀: r
讀寫: rw
可執行: x
使用命令 chmod
10. Linux服務的關閉/啓動方法,如何設置某個服務的開啓自啓動
啓動:
systemctl start sshd
關閉:
systemctl stop sshd
centos7 開機自啓動
[root@ecs-c13b ~]# systemctl enable sshd
centos6
chkconfig --add sshd
11. 如何查看系統中是否安裝了指定的rpm包,安裝 一個指定的rpm包,使用tcpdump命令,如何從網卡eth1捕獲從192.168.0.1到192.168.0.2的udp包或者icmp包。
用法: rpm [選項...]
-a:查詢所有套件;
-b<完成階段><套件檔>+或-t <完成階段><套件檔>+:設置包裝套件的完成階段,並指定套件檔的文件名稱;
-c:只列出組態配置文件,本參數需配合"-l"參數使用;
-d:只列出文本文件,本參數需配合"-l"參數使用;
-e<套件檔>或--erase<套件檔>:刪除指定的套件;
-f<文件>+:查詢擁有指定文件的套件;
-h或--hash:套件安裝時列出標記;
-i:顯示套件的相關信息;
-i<套件檔>或--install<套件檔>:安裝指定的套件檔;
-l:顯示套件的文件列表;
-p<套件檔>+:查詢指定的RPM套件檔;
-q:使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶;
-R:顯示套件的關聯性信息;
-s:顯示文件狀態,本參數需配合"-l"參數使用;
-U<套件檔>或--upgrade<套件檔>:升級指定的套件檔;
-v:顯示指令執行過程;
-vv:詳細顯示指令執行過程,便於排錯。
rpm -ql 查看是否安裝
[root@ecs-c13b ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
rpm -qa 列出所有安裝過的包
12. 如何實現一個腳本,檢測一個程序(cassini)是否在運行,如果沒有在運行就運行它, 並對每次運行的時間進行記錄。(cassini 位於/opt/cassini/bin目錄下,非系統服務程序)
學員版腳本:
#!/bin/bash
time=$(date +%F,%T)
cassini=/opt/cassini/bin
ps -ef | grep $cassini | grep -v grep
if [ $? -eq 0 ];then
echo "程序已經啓動,檢測時間:$time"
else
echo "程序沒有在運行,下面開始啓動"
cd $cassini && ./
echo "啓動時間:$time"
fi
點評: 腳本有幾個地方需要完善
1. 題目要統計的不是當前時間,而是程序運行的時間或者程序開始的時間,而不是執行啓動命令後,在查詢出來的當前時間
[root@ecs-c13b ~]# ps -aux |grep sshd
root 9125 0.2 0.1 157748 6360 ? Ss 17:50 0:39 sshd: root@pts/0,pts/1
root 9144 0.0 0.1 157320 5944 ? Ss 17:50 0:00 sshd: root@notty
root 9315 0.0 0.1 112920 4312 ? Ss 23:01 0:00 /usr/sbin/sshd -D
root 20256 0.0 0.0 112732 972 pts/0 S+ 23:10 0:00 grep --color=auto sshd
[root@ecs-c13b ~]# ps -p 9125 -o etime
ELAPSED
05:20:58 ssh 當前運行時間爲5個小時20分鐘
[root@ecs-c13b ~]# ps -p 9125 -o lstart 這條命令顯示的是程序開始運行時間
STARTED
Wed Jun 17 17:50:07 2020
2. 執行腳本寫全路徑: /opt/cassini/bin/cassini
3. 此腳本不能夠實時監測,可以使用定時任務
13. 有如下文件: a.txt (第一列是姓名,第二列是成績)請使用腳本計算出zhangsan的總成績
zhangsan 15
lisi 15
zhangsan 16
lisi 17
zhangsanfeng 18
學員版腳本
[root@ecs-c13b ~]# cat a.sh
#!/bin/bash
cj=$(cat a.txt | awk '{if ($1 == "zhangsan") {print $2}}')
sum=0
for i in $cj
do
let sum=sum+$i
done
echo "zhangsan成績總和:$sum"
14 SQL查詢題目
根據下表內容用sql命令篩選出每個學生的最高成績的結果集
姓名 | 成績 | 編號 |
---|---|---|
A | 55 | 1 |
A | 60 | 2 |
B | 70 | 3 |
C | 90 | 4 |
B | 50 | 5 |
D | 90 | 6 |
MariaDB [st_course]> create table student( sname varchar(20) not null, sscore tinyint(100) not null , sno int not null auto_increment primary key);
插入數據:
MariaDB [st_course]> insert into student (sname, sscore, sno) values('A',55,1);
Query OK, 1 row affected (0.00 sec)
MariaDB [st_course]> insert into student (sname, sscore, sno) values('A',60,2);
Query OK, 1 row affected (0.00 sec)
MariaDB [st_course]> insert into student (sname, sscore, sno) values('B',70,3);
Query OK, 1 row affected (0.01 sec)
MariaDB [st_course]> insert into student (sname, sscore, sno) values('C',90,4);
Query OK, 1 row affected (0.00 sec)
MariaDB [st_course]> insert into student (sname, sscore, sno) values('B',50,5);
Query OK, 1 row affected (0.00 sec)
MariaDB [st_course]> insert into student (sname, sscore, sno) values('D',90,6);
Query OK, 1 row affected (0.00 sec)
查看錶內容
MariaDB [st_course]> select * from student
-> ;
+-------+--------+-----+
| sname | sscore | sno |
+-------+--------+-----+
| A | 55 | 1 |
| A | 60 | 2 |
| B | 70 | 3 |
| C | 90 | 4 |
| B | 50 | 5 |
| D | 90 | 6 |
+-------+--------+-----+
6 rows in set (0.00 sec)
查詢結果:
MariaDB [st_course]> select * from student where sscore in (select max(sscore) from student group by sname);
+-------+--------+-----+
| sname | sscore | sno |
+-------+--------+-----+
| A | 60 | 2 |
| B | 70 | 3 |
| C | 90 | 4 |
| D | 90 | 6 |
+-------+--------+-----+
4 rows in set (0.00 sec)
總結:
-
筆試題,主要考覈一個面試者的基礎能力,可以通過刷題來準備,需要每個學員花時間去練習。
-
一定要認真讀題目,把題目的意思讀明白。