Linux基本功杂记——[002]——7月29日课后作业

1、file1文件的内容为:”1 2 3 4 5 6 7 8 9 10” 计算出所有数字的总和

方法一:[[email protected]7 fh]# echo $(tr ‘ ‘ ‘+‘ <file1) | bc
55
方法二:[[email protected]7 fh]# x=$(($(tr ‘ ‘ ‘+‘ <file1))) && echo $x
55
方法三:[[email protected]7 fh]# x=$(tr ‘ ‘ ‘+‘ <file1) | python -c "print($x)"
55

2、处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格

[[email protected]7 fh]# echo xt.,l 1 jr#mn2 c*/fe3 uz4 | grep -oP ‘\d|\s‘ | gawk ‘BEGIN{ORS=""}{print}END{print"\n"}‘ 1 2 3 4

3、将PATH变量每个目录显示在独立的一行

方法一:[[email protected]7 fh]# echo $PATH | awk ‘BEGIN{RS=":"}{print}‘
/usr/local/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/home/fh/.local/bin
/home/fh/bin
方法二:
[[email protected]7 fh]# echo $PATH | tr ":" "\n"
/usr/local/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/home/fh/.local/bin
/home/fh/bin

4、删除指定文件的空行

sed -i ‘/^$/d‘ file

5、将文件中每个单词(字母)显示在独立的一行,并无空行

[[email protected]7 fh]# cat testfile2
chen +sljfl s
[[email protected]7 fh]# gawk ‘BEGIN{RS=" "}{print}‘ testfile2 | sed ‘/^$/d‘
chen
+sljfl
s
[[email protected]7 fh]# grep -oP "." testfile2 | sed ‘/^ *$/d‘
c
h
e
n
+
s
l
j
f
l
s

6、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"

[[email protected]7 fh]# useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo
[[email protected]7 fh]# grep gentoo /etc/passwd
gentoo:x:1002:1002:Gentoo Distribution:/home/gentoo:/bin/csh

7、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

方法一:
[[email protected]7 fh]# tr ‘[a-z]‘ ‘[A-Z]‘ < /etc/issue > /tmp/issue.out && cat /tmp/issue.out
\S
KERNEL \R ON AN \M
方法二:
[[email protected]7 fh]# sed ‘s/[a-z]/\u&/g‘ /etc/issue > /tmp/issue.out && cat /tmp/issue.out
\S
KERNEL \R ON AN \M

问题扩展:将/etc/issue文件中的每个单词的首(末)字母转换为大写(或小写)后保存至/tmp/issue.out文件中

首字母转大写:
[[email protected]7 fh]# sed ‘s/\b[a-z]/\u&/g‘ /etc/issue > /tmp/issue.out && cat /tmp/issue.out
\S
Kernel \R On An \M
首字母转小写:
[[email protected]7 fh]# sed ‘s/\b[A-Z]/\l&/g‘ /etc/issue > /tmp/issue.out && cat /tmp/issue.out
\s
kernel \r on an \m
末字母转小写:
[[email protected]7 fh]# sed ‘s/[A-Z]\b/\l&/g‘ /etc/issue > /tmp/issue.out && cat /tmp/issue.out
\s
Kernel \r on an \m

8、将当前系统登录用户的信息转换为小写

[[email protected]7 ~]# w | tr ‘[A-Z]‘ ‘[a-z]‘
 06:15:58 up  2:39,  2 users,  load average: 0.00, 0.01, 0.02
user     tty      from             login@   idle   jcpu   pcpu what
fh       pts/0    172.18.21.244    05:16    3:10   0.15s  0.05s sshd: fh [priv]
root     pts/1    172.18.21.244    06:12    6.00s  0.00s  0.00s w
[[email protected]7 ~]# w | sed ‘s/[A-Z]/\l&/g‘
 06:16:15 up  2:39,  2 users,  load average: 0.00, 0.01, 0.02
user     tty      from             login@   idle   jcpu   pcpu what
fh       pts/0    172.18.21.244    05:16    3:27   0.15s  0.05s sshd: fh [priv]
root     pts/1    172.18.21.244    06:12    7.00s  0.00s  0.00s w

9、将/root/下文件列表,显示成一行,并文件名之间用空格隔开

[[email protected]7 ~]# ls -a | gawk ‘BEGIN{ORS=" "}{print}‘
. .. .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc anaconda-ks.cfg tmpfile
[[email protected]7 ~]# ls -a | tr ‘\n‘ ‘ ‘
. .. .bash_history .bash_logout .bash_profile .bashrc .cshrc .tcshrc anaconda-ks.cfg tmpfile

10、创建下面的用户、组和组成员关系

名字为admins 的组

[[email protected]7 fh]# groupadd admins
[[email protected]7 fh]# grep admins /etc/group
admins:x:1003:

用户natasha,使用admins 作为附属组

[[email protected]7 fh]# useradd -G admins natasha
[[email protected]7 fh]# groups  natasha
natasha : natasha admins

用户harry,也使用admins 作为附属组

[[email protected]7 fh]# useradd -G admins harry
[[email protected]7 fh]# groups  harry
natasha : harry admins

用户sarah,不可交互登录系统,且不是admins 的成员,natasha,harry,sarah密码都是centos

[[email protected]7 fh]# useradd -s /sbin/nologin sarah
[[email protected]7 fh]# groups sarah
sarah : sarah
[[email protected] fh]# echo ‘centos‘ | passwd --stdin natasha
Changing password for user natasha.
passwd: all authentication tokens updated successfully.
[[email protected] fh]# echo ‘centos‘ | passwd --stdin harry
Changing password for user harry.
passwd: all authentication tokens updated successfully.
[[email protected] fh]# echo ‘centos‘ | passwd --stdin sarah
Changing password for user sarah.
passwd: all authentication tokens updated successfully.
时间: 2024-10-16 14:15:03

Linux基本功杂记——[002]——7月29日课后作业的相关文章

Linux基本功杂记——[007]——8月10日课后作业

/*答案不止一个,仅列出自认为最优雅的存在*/ 作业要求:编写BASH脚本实现题目要求的内容. 一.显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小 1 #!/usr/bin/bash 2 printf 3 " Hostname: $(hostname)\n \ 4 IPv4: $(ip addr | grep -oP '(\d+\.){3}\d+/\d+' | awk 'BEGIN{ORS=" "}{print}')\n

Linux基本功杂记——[004]——8月4日课后作业

一.找出ip addr命令结果中本机所有的IPv4地址 BASH: [email protected] ~/py $ ip addr | grep -oP '(?:\d+\.){3}\d+/\d+' 127.0.0.1/8 172.18.16.4/24 Python3: [email protected] ~/py $ cat ipaddr.py #!/usr/bin/python3 #-*- coding='utf-8' -*- import re import subprocess ipb

Linux基本功杂记——[008]——08月16日课堂练习{BASH脚本}

一.构显99乘法表 #!/usr/bin/env bash test() { for((i=1;i<10;i++)) do for((x=1;x<=$i;x++)) do echo -n "$x x $i = $(($i * $x)) " done echo -e "\n" done } test | gawk 'BEGIN{RS=""}{print}' [email protected] ~/bash_script/2016-08-

2月29日课后作业

1.网站系统开发需要掌握的技术 java语言,环境配置,数据库,php语言 2.课堂测试源代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">

Linux 第15天: (08月29日) Linux高级文件系统管理

本章内容设定文件系统配额设定和管理软RAID设备配置逻辑卷设定LVM快照btrfs文件系统 配置配额系统综述在内核中执行以文件系统为单位启用对不同组或者用户的策略不同根据块或者节点进行限制执行软限制(soft limit)硬限制(hard limit)初始化分区挂载选项:usrquota.grpquota初始化数据库:quotacheck 为用户设定配额执行开启或者取消配额:quotaon.quotaoff直接编辑配额:edquota username在shell中直接编辑:setquota u

Linux 第15天: (08月29日) 练习和作业

管理磁盘配额 fdiskpartx -a /dev/sda mount /dev/sda6 /homedfcd /homemv * /home vim /etc/fstab                            启用磁盘配额挂载选项 :r!blkid /dev/sda6  /home  ext4  default  0 0:r!blkid /dev/sda6  /home  ext4  usrquota,grpquota  0 0 mount -o remount /dev/sd

马哥linux+python&mdash;&mdash;2015年9月13日课程作业

一.作业(练习)内容: 1.描述shell程序的运行原理(可附带必要的图形说明): 什么是shell       shell是用户和Linux操作系统之间的接口.Linux中有多种shell,其中缺省使用的是Bash.Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口.它是命令语言.命令解释程序及程序设计语言的统称.shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用.用户在提示符下输入的命令都由shell先解释然后传

7月29日课后练习

1.硬链接与软链接的区别 硬链接:指向文件的inode号码,创建硬链接会使inode"链接数增加.不能给目录创,不能跨分区创,每个硬链接之间都是平等的. 软链接:指向导向文件的文件名,而不是其inode号码,导向文件的inode"链接数"不会因此发生变化.软链接大小取决于路径的字符大小. 2.将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中 tr [[:lower:]] [[:upper:]] < /etc/issue > /

马哥linux+python——2015年8月30日课程作业

1.总结文本编辑工具vim的使用方法: 2.总结文件查找命令find的使用方法: 3.总结bash环境变量的相关内容: 4.总结Linux文件系统上的特殊权限(SUID.SGID.Sticky)的知识点: 5.总结Linux磁盘管理.文件系统相关知识点及其相关命令的使用方法: 6.复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符: 7.复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令