第一周作业
- 总结Linux常用命令,选项,及使用示例
- echo 将参数写入到标准输出,常用选项有: -e,-E
root@node01:~/data/tools# echo -e “hello\nworld”
hello
world
root@node01:~/data/tools# echo -E “hello\nworld”
hello\nworld
- ls 列出指定目录下面的文件或文件夹,常用选项有:-a,-l,-h,-S,–sort
root@node01:~/data/magedu# ll -a -hS # 按照文件大小倒排序
total 64K
drwxr-xr-x 3 root root 4.0K Sep 12 11:17 ./
drwxr-xr-x 12 root root 4.0K Aug 28 17:22 …/
drwxr-xr-x 2 root root 4.0K Sep 10 11:44 test/
-rwxr-xr-x 1 root root 1.1K Sep 4 22:00 system_info.sh*
-rwxr-xr-x 1 root root 1.1K Sep 12 11:17 httpd.sh*
-rwxr-xr-x 1 root root 707 Sep 10 01:08 BMI.sh*
-rwxr-xr-x 1 root root 510 Sep 9 00:02 score.sh*
-rwxr-xr-x 1 root root 406 Sep 10 19:27 9x9.sh*
-rwxr-xr-x 1 root root 405 Sep 10 10:07 bmi.sh*
-rwxr-xr-x 1 root root 341 Sep 5 22:42 rm.sh*
-rwxr-xr-x 1 root root 325 Sep 6 09:55 chook_rabbit.sh*
-rwxr-xr-x 1 root root 233 Sep 10 11:44 test.sh*
-rw-r–r-- 1 root root 218 Sep 9 00:13 a.txt
-rwxr-xr-x 1 root root 192 Sep 6 09:10 color.sh*
-rw-r–r-- 1 root root 107 Sep 5 09:24 -f
-rw-r–r-- 1 root root 6 Sep 1 09:20 d.txt~
- 其他常用命令:cat、grep、head、tail、sort、uniq、、wc、tr
各命令的常用选项有:
cat -n # 显示内容行号
grep -i -E -c [patten] filename # 使用扩展正则表达式搜索内容,并区分大小写
grep -A10 [patten] filename # 匹配内容后10行
grep -B10 [patten] filename # 匹配内容前10行
grep -C10 [patten] filename # 匹配内容前后各10行
head -n10 # 显示前十行
tail -f
tail -n+2 # 从第二行(包括第二行)显示内容
cut -d" " -f3,6 # 以空格分割,显示第3、6列
sort -nr # 倒排序
sort -t" " -k3 # 以空格分割后,用第三列数据排序
uniq -c # 统计重复行出现的次数
wc -l # 统计行数
tr -s" " "%" # 将重复的空格列合并成一个,并已%替换
-
总结Linux各版本安装
-
使用命令帮助找到用户添加命令的,-s, -m, -C, -d, -M选项的含义,并使用测试用户证明选项生效。
useradd --help 或man useradd
-s: 指定用户默认的shell终端(如果不指定,则默认取/etc/default/useradd文件中的SHELL指)
-d: 指定用户的家目录
-m: 命令执行时创建用户的家目录
-M: 命令执行时不创建用户的家目录
举例:
#不创建家目录
root@node01:~/data/magedu# useradd -d /home/guest -s /bin/bash -M guest
root@node01:~/data/magedu# su - guest
su: warning: cannot change directory to /home/guest: No such file or directory
guest@node01:/root/data/magedu$
#创建家目录
root@node01:~/data/magedu# useradd -d /home/guest -s /bin/bash -m guest
root@node01:~/data/magedu# su - guest
guest@node01:~$ pwd
/home/guest
第二周作业
- 总结vim的三种模式切换,配置vimrc实现写脚本自动生成注释。
# ~/.vimrc脚本
syntax on
set nu
set ts=4
set expandtab
set shiftwidth=4
autocmd BufNewFile *.sh exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1, "#!/bin/bash")
call setline(2, "#")
call setline(3, "#***********************************")
call setline(4, "#Author: fgk")
call setline(5, "#Mail: fkg@126.com")
call setline(6, "#")
call setline(7, "#Date: ".strftime("%Y-%m-%d"))
call setline(8, "#FileName: ".expand("%"))
call setline(9, "#Descrption: The test script")
call setline(10, "#***********************************")
call setline(11, "")
endif
endfunc
autocmd BufNewFile * normal G
- 使用grep/sed实现获取/etc/sysconfig/network-script/ifcfg-eth0目录的/etc/sysconfig/network-script/。或获取目录的ifcfg-eth0
我的服务器没有此目录,自由发挥(取出ifconfig命令中本机的ipv4地址)
ifconfig | grep -E "inet " | sed -nr ‘s/.inet (.) netmask.*/\1/p’
172.20.0.1
172.17.0.1
172.18.0.1
192.168.0.190
127.0.0.1
- 完成编程题,可以让用户选择当前主机的所有网卡,选中网卡后,获取ip,网段,掩码。通过ping命令检测在线的主机,打印在线的主机,写入一个文件中。当ip的结尾是奇数时,在目标主机或当前主机,批量添加user1到user100用户,否则添加group1到group100,并生成对应的用户user1到user100,让用户的过期时间在1天之后。
#!/bin/bash
#
#***********************************
#Author: fengguangke
#Mail: fengguangke2010@126.com
#
#Date: 2022-09-12
#FileName: chooseNetCardAndCreateUser.sh
#Descrption: The test script
#***********************************
ifconfig | grep flags= | cut -d: -f1 | cat
read -p "请选个一个网卡:" NETCARD
IP=`ifconfig ${NETCARD} | sed -nr 's/.*inet (.*) netmask.*/\1/p'`
NETMASK=`ifconfig ${NETCARD} | sed -nr 's/.*netmask (.*) broadcast.*/\1/p'`
echo "IP: ${IP}, NETMASK: ${NETMASK}"
LAST_NUM=`echo ${IP} |cut -d. -f4`
if [ $[${LAST_NUM}%2] -eq 1 ]; then
echo user{1..100} | xargs -n1 useradd -e `date +%F -d +1day`
else
for i in {1..100}
do
groupadd group$i -e `date +%F -d +1day` &>/dev/null
useradd user$i -g group$i -e `date +%F -d +1day` &>/dev/null
done
fi