用脚本提取给定文档中以png和jpg结尾的图片链接,1.查看用户

用脚本提取给定文档中以png和jpg结尾的图片链接,输入的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名

实验楼-小时赛第1期 linux练习,实验楼第1期

1 服务管理

安装并运行samba:

sudo apt-get update
sudo apt-get install samba
sudo service samba restart

2  提取文本中的信息

用脚本提取给定文档中以png和jpg结尾的图片链接:

grep "http.*\.\(jpg\|png\)" $1 

grep “http.*\.\ ( jpg \ | png \ )” $1 

3  查找指定文件

将 /etc 目录下所有内容中包含 shiyanlou 字符串的文件的完整路径都写入
/home/shiyanlou/output 文件中:

touch output
sudo grep -R "shiyanlou" /etc > output

4  获取满足条件的程序

请实现一个脚本获取指定端口上正在运行的程序的绝对路径,如果没有运行任何程序则打印
OK 字符串。

t=`lsof -i:$1|tail -1|awk '{print $1}'`
if [  -n "$t" ] ;then
    which $t
else
    echo "OK"
fi

5  证书配置 请为 shiyanlou 用户配置一个 SSH 证书,使 shiyanlou 用户 SSH
登陆本地实验环境的时候不需要输入密码。同时设置 SSH
服务禁止所有用户使用密码登陆。

#1 修改sshd配置
sudo vi /etc/ssh/sshd_config
#禁止密码登录
PasswordAuthentication  no 
#注释三行
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys

#重启让配置生效
sudo service ssh restart

#生成公钥写入文件
cd ~/.ssh
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cp  id_dsa.pub  authorized_keys
#不安全的设置,将不能使用RSA功能
chmod 600 ~/.ssh/authorized_keys

6 避免误删

(1)rm -f 命令删除的文件或文件夹都临时存入 /tmp/trash
文件夹,而不删除,例如使用 rm -f /home/shiyanlou/testfile 后,文件
testfile 会被移动到 /tmp/trash/testfile,如果 /tmp/trash 目录下已经有
testfile 重名文件则直接覆盖老的文件。
(2)rm 命令不加 -f 参数的时候执行流程不变,不需要移动到 /tmp/trash
文件夹。

sudo cp /bin/rm /bin/oldrm
sudo cp  ~/rm.sh  /bin/rm

#脚本内容
#!/bin/bash
if [ $# -eq 2 ] && [ "$1"=="-f" ]
then
        mv $2 /tmp/trash
else
        /bin/oldrm $1 $2
fi

实验楼 linux 学习

7  密码生成器

(1)生成的密码字符串长度为12位
(2)密码中必须同时包含数字,大小写字母及至少1个特殊字符
(3)只允许使用这些特殊字符:><+-{}:.&;

arr1=(\> \< \+ \- \{ \} \: \. \& \;)
arr2=(a b c d e f g h i j k l m n o p q r s t u v w x y z)
arr3=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)
t=${arr1[$[$RANDOM%10]]}
t=$t${arr2[$[$RANDOM%26]]}
t=$t${arr3[$[$RANDOM%26]]}
t=$t$[$RANDOM%10]
echo $t"abcdefgh"

10 拷贝指定文件

拷贝指定目录下(包括子目录)所有大于4M文件

#!/bin/bash
function getdir(){
    #目录一定要一致
    if [ ! -d "/tmp"$1 ]; then
        `mkdir "/tmp"$1`
    fi
    for element in `sudo ls $1 `
    do
        dir_or_file=$1"/"$element
        if [ -d $dir_or_file ]
        then
            getdir $dir_or_file
            continue
        else
            ss=`sudo ls -l $dir_or_file| awk '{print $5}'`
            if [ $ss -gt 10240 ]; then
                `cp $dir_or_file "/tmp"$1`
            fi
        fi
    done
}
root_dir="/etc"
getdir $root_dir

查看评论

linux练习,实验楼第1期 1
服务管理 安装并运行samba: sudo apt-get updatesudo apt-get install
sambasudo service samba restart 2  提取文…

 

 

一、Linux 用户管理

1.查看用户

who am i //

who mom likes

whoami

 

====——–======

输入的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用
whoami 即可),第二列的 pts/0 中 pts 表示伪终端,所谓伪是相对于 /dev/tty
设备而言的,还记得上一节讲终端时的那七个使用
[Ctrl]+[Alt]+[F1]~[F7] 进行切换的 /dev/tty
设备么,这是“真终端”,伪终端就是当你在图形用户界面使用 /dev/tty7
时每打开一个终端就会产生一个伪终端, pts/0
后面那个数字就表示打开的伪终端序号,你可以尝试再打开一个终端,然后在里面输入
who am i ,看第二列是不是就变成 pts/1
了,第三列则表示当前伪终端的启动时间

===———=====

2.创建用户

sudo adduser lilei //穿件用户

 

====———====

按照提示输入 shiyanlou 密码(Linux
下密码输入通常都是不可见的),然后是给 lilei
用户设置密码,后面的选项的一些内容你可以选择直接回车使用默认值:

====——–====

 

 

su -l lilei 切换到用户状态

 

3.用户组

在 Linux 里面如何知道自己属于哪些用户组呢?

方法一:使用groups命令

groups shiyanlou

方法二:查看/etc/group文件

cat /etc/group | sort

 

将其它用户加入 sudo 用户组

#su -l lilei

#sudo ls

su shiyanlou

groups lilei

sudo usermod -G sudo lilei

groups lilei

删除用户

sudo deluser lilei –remove-home

 

二、Linux 文件权限

1.查看文件权限

ls -A 查看隐藏文件

ls -Al

 

ls -dl <目录名>
//查看某一个目录的完整属性,而不是显示目录里面的文件属性:

ls -AsSh 显示所有文件大小,并以普通人类能看懂的方式呈现 、其中小 s
为显示文件大小,大 S
为按文件大小排序,若需要知道如何按其它方式排序,请使用“man”命令查询。

2.变更文件所有者

sudo chown shiyanlou iphone6

 

3.修改文件权限

chmod 700 iphone6

 

Linux 目录结构及文件基本操作

一、Linux 目录结构

1.FHS 标准 //文件系统层次结构标准

FHS 定义了两层规范,

第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc
应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等等。

第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log
放置系统登录文件、/usr/share 放置共享数据等等。

 

2.目录路径

绝对路径
//关于绝对路径,简单地说就是以根”/”目录为起点的完整路径,以你所要到的目录为
终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local
目录中的 bin 目录。

相对路径 //
相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点

 

二、Linux 文件的基本操作

1.新建

cd ~

touch test

 

新建目录

//文件夾

mkdir -p father/son/grandson

2.复制

复制文件

cp [文件] [目標地址]

 

复制目录

cp -r [文件夾] [目標文件夾/沒有將創建]

3.删除

删除目录、文件夾

rm -f [文件、文件夾]

rm -rf [文件/文件夹]

4.移动文件与文件重命名

移动文件

mv [文件] [目標地址]

重命名文件

mv [旧文件] [新文件]

批量重命名

5.查看文件

使用cat,tac和nl命令查看文件

这两个命令都是用来打印文件内容到标准输出(终端),其中cat为正序显示,tac倒序显示。

nl命令,添加行号并打印,这是个比cat -n更专业的行号打印命令。

nl -b a [file]

 

-b : 指定添加行号的方式,主要有两种:

-b a:表示无论是否为空行,同样列出行号(“cat -n”就是这种方式)

-b t:只列出非空行的编号并列出(默认为这种方式)

-n : 设置行号的样式,主要有三种:

-n ln:在行号字段最左端显示

-n rn:在行号字段最右边显示,且不加 0

-n rz:在行号字段最右边显示,且加 0

-w : 行号字段占用的位数(默认为 6 位)

使用more和less命令分页查看文件

more [file]

less [file]

使用head和tail命令查看文件

tail [file]

tail -n 1 [file]

这两个命令那些性子比较急的人应该会比较喜欢,因为它们一个是只查看的头几行(默认为10行,不足10行则显示全部)和尾几行

*
关于tail命令,不得不提的还有它一个很牛的参数-f,这个参数可以实现不停地读取某个文件的内容并显示。这可让我们动态查看日志起到实时监视的作用,不过我不会在这门基础课程中介绍它的更多细节,感兴趣的用户可以自己去了解。

6.查看文件类型

file [file]

 

召喚神龍

xeyes

nohup xeyes & //後臺執行

 

环境变量与文件查找

一、环境变量

文件比较

vimdiff [文件1] [文件2] [文件3]

3.命令的查找路径与顺序

echo $PATH

查看PATH环境变量的内容:

 

gcc -o hello_world hello_world.c

 

二、搜索文件

与搜索相关的命令常用的有如下几个whereis,which,find,locate。

whereis简单快速

whereis [file]

locate快而全

locate /home/shiyanlou/\*.c

which小而精

which [file]

find精而细

列出 home 目录中,当天(24 小时之内)有改动的文件:

find ~ -mtime 0

列出用户家目录下比Code文件夹新的文件:

find ~ -newer /home/shiyanlou/Code

 

 

文件打包与压缩

一、文件打包和解压缩

1.zip压缩打包程序

zip -r -q -o shiyanlou.zip /home/shiyanlou

du -h shiyanlou.zip

file shiyanlou.zip

上面命令将 shiyanlou 的 home
目录打包成一个文件,并查看了打包后文件的大小和类型。

-r参数表示递归打包包含子目录的全部内容,-q参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。后面使用du命令查看打包后文件的大小(后面会具体说明该命令)。

 

创建加密zip包

使用-e参数可以创建加密压缩包:

zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou

 

2.使用unzip命令解压缩zip文件

unzip shiyanlou.zip

 

使用安静模式,将文件解压到指定目录:

unzip -q shiyanlou.zip -d ziptest

上述指定目录不存在,将会自动创建。如果你不想解压只想查看压缩包的内容你可以使用-l参数:

unzip -l shiyanlou.zip

 

3.rar打包压缩命令

**注意:rar 的命令参数没有-,如果加上会报错

 

rar a shiyanlou.rar .

rar a [压缩名.rar] [压缩目录]

 

从指定压缩包文件中删除某个文件

rar d shiyanlou.rar .zshrc

rar d [压缩包名.rar] [要删除的文件]

查看不解压文件:

rar l [压缩包名.rar]

 

使用unrar解压rar文件

unrar x [压缩包]

 

去掉路径解压:

mkdir tmp

unrar e [压缩包] [路径/tmp]

 

4.tar打包工具

下面先掌握tar命令一些基本的使用方式,即不进行压缩只是进行打包(创建归档文件)和解包的操作

创建一个 tar 包:

tar -cf shiyanlou.tar ~

tar -cf [压缩名.tar] [需要压缩的目录]

上面命令中,-c表示创建一个 tar
包文件,-f用于指定创建的文件名,注意文件名必须紧跟在-f参数之后,比如不能写成tar
-fc shiyanlou.tar,可以写成tar -f shiyanlou.tar -c
~。你还可以加上-v参数以可视的的方式输出打包的文件。上面会自动去掉表示绝对路径的/,你也可以使用-P保留绝对路径符。

解包一个文件(-x参数)到指定路径的已存在目录(-C参数):

mkdir tardir

tar -xf shiyanlou.tar -C tardir

只查看不解包文件-t参数:

tar -tf shiyanlou.tar