初步实验1

一、新建外部命令

  • type

区别当前命令是外部命令还是内部命令

内部命令区别于bash类型

type -a cmd:显示所有命令存放路径(内部和外部命令)
type -P cmd:显示外部命令的存放路径
内部命令优先级高于外部命令
  • which:显示外部命令的路径
-a 显示命令的所有路径
which --skip-alias cmd:查找cmd存放路径但忽略别名信息
  • whereis cmd:显示外部命令本身及帮助文档的存放路径

内部命令存放在系统内存中,而外部命令存放在各个不同的路径下,echo $PATH显示出外部命令的存放的所有路径,当把一个可执行程序存放在任意一个命令路径下即可执行,当我们需要新建一个可执行程序时,有以下两种方法:

  1. 复制命令路径到已经存在的某个路径下

a. 先显示所有的路径,然后我需要查找一个已存在的命令路径来完成我需要的实验,在这我选择的是who命令

echo $PATH
echo $PATH

b.现在我想新建一个new命令,首先将who命令的路径/usr/bin/who复制并重命名为/usr/local/bin/new,然后执行new命令,发现new命令已经可以执行
new命令
new命令

二、将新命令的路径添加到系统的PATH路径

  1. 将who命令的路径复制到/root/new,并重命名为new


    初步实验1_第1张图片
  2. 新添加/root命令路径到PATH下

    PATH中的路径为目录不能直接为可执行文件,必须把执行放到PATH路径目录下方可执行
  3. 若需永久生效,则将PATH路径存放到/etc/profile全局配置文件中,但前提是该新添加的路径目录已经存在

    编辑/etc/profile文件,将PATH=$PATH:/root /root路径添加到PATH中,并. /etc/profile刷新生效
    /etc/profile
    /etc/profile

二、screen

  • 需安装screen包

不同的用户窗口远程控制同一台设备所
建立的会话窗口,将会同步操作

新建screen会话
    screen -S [SESSION]  
加入screen会话
    screen -x [SESSION]
退出并关闭screen会话
    exit
剥离当前screen会话
    ctrl+a,d
显示所有已经打开的screen会话
    screen -ls 
恢复某screen会话
    screen -r [SESSION]
  1. 用户1首先创建一个screen的会话dan
    screen -S
    screen -S

    显示用户1的所有的screen会话
    screen -ls
    screen -ls

    2、用户2加入screen的会话dan
    screen -x
    screen -x

    显示用户2的screen会话
    screen -ls
    screen -ls

    所有加入screen的会话,将会同步显示所有的操作
    初步实验1_第2张图片

    ctrl+a,d退出d当前的screen会话

三、屏幕录制

  • 开始屏幕录制

    -t:表示将时间放入time.log文件中,记录了所有时间相关的记录
    -a:表示将屏幕上的信息存放到dan.log文件中,即记录了屏幕上的所有操作和显示信息

第二次录制时若不修改时间文件和数据记录文件,则在显示的时候会因为时间问题瞬间飘过,即我们的视觉将不会看到上次的信息回放,但在time.log的时间文件和dan.log的记录文件中还保存着上次的数据记录

  • 录制的屏幕信息进行回放
image
image

四、nc:监听打开sock文件

  1. 用户在/tmp目录下,新建一个nc文件
    nc -Ul /tmp/danran
    nc
    nc
  2. 另外一个终端上,在tmp目录下,可以看到有一个danran的sockt文件

3、第二个终端打开danran socket文件,然后二个终端就可以愉快的进行会话了

nc -u
nc -u

nc -ul
nc -ul

5、修改时区

初步实验1_第3张图片

6、只显示隐藏文件

初步实验1_第4张图片

7、大文件删除

当我们需要删除一个大文件时,如果文件没有被其他文件占用,使用rm删除文件即可释放空间

初步实验1_第5张图片

但是如果删除的文件正在被某用户使用,rm虽然可以删除文件,但是空间不会立即释放,因此我们可以使用 > wnejian 此命令清空文件,然后在使用rm删除文件,则可以立即释放空间
初步实验1_第6张图片

rm 删除空间不释放
> :若文件已存在,则覆盖原文件,若文件不存在,则创建新文件   

8、用户之间发送邮件

-s指明邮件主题,邮件内容编辑完毕之后 . 结束,邮件保存在/var/mail/邮件目录下

9、rename 批量更改文件名

rename ‘.txt’ '.txt.bak' *.txt  将txt后缀名更改为txt.bak
rename '.txt.bak' '' *.txt   将txt.bak后缀名清除   
初步实验1_第7张图片

初步实验1_第8张图片

10、备份配置文件

-a,文件属性信息完全复制,等同于备份

cp -a /etc/passwd{,.bak}
cp -a /etc/passwd /etc/passwd.bak

11、大批量创建文件,从而导致节点被占用完吗,但是磁盘还有剩余空间

echo file{1..20000} | xargs touch
for i in {1..10};do touch file$i;echo file$i is create;done

初步实验1_第9张图片

当系统节点数被占用完时,再创建新文件会提示报错

初步实验1_第10张图片

ls file* 会因为参数过多无法显示报错,故使用ls命令即可

xargs 逐一的传递参数,从而解决参数过多的问题,将ls列出的参数逐一的传递给rm从而删除

ls |xargs rm 批量删除大量文件

初步实验1_第11张图片

11、彻底销毁文件

彻底删除文件

shred -u file

shred会用一些随机内容覆盖文件所在的节点和数据块,并删除文件(-u参数)。
如果想清除的更彻底一点可以加-z 参数,意思是先用随机数据填充,最后再用0填充。

shred -u -z file

另外shred还可以清除整个分区或磁盘,比如想彻底清除/dev/sdb1分区的内容可以这样:

shred /dev/sdb1 (注意不要加-u参数)

shred的详细参数:
    -f, --force 更改权限允许写入(如有必要)
    -n, --iterations=N 重写N次,默认为3次
    --random-source=FILE 从指定文件读取数据
    -s, --size=N 将文件粉碎为固定大小 (可使用后缀如K、M、C等)
    -u, --remove 重写后截短并移除文件
    -v, --verbose 显示进度
    -z, --zero - add 用0覆盖数据
    –help 显示帮助
    –version 显示版本信息  

初步实验1_第12张图片

12、复制设备文件

cp不能复制设备文件,复制设备文件用mknod
创建设备文件/app/sda
mknod /app/sda b 8 0 b表示设备文件,8表示设备的主设备号,0表示设备的次设备号
创建设备文件时,应制定文件类型b,以及主设备和次设备号

初步实验1_第13张图片

创建空设备文件
mknod
mknod

13、修改用户密码

echo dan | passwd --stdin danran 修改danran用户的密码为dan

14、清空文件内容

重定向和cat /dev/null > a 读空设备文件数据到文件,都可实现清空文件的目的,因为空文件数据为空

初步实验1_第14张图片

/dev/zero 设备文件都是零数据
初步实验1_第15张图片

15、win文件和linux文件的区别

win文件比linux文件的回车换行符多一个字节

初步实验1_第16张图片
初步实验1_第17张图片

16、误删除了用户wangcai 的家目录,请重建并恢复该用户家

目录及相应的权限属性

cp -r /etc/skel/ /home/dan    复制/etc/skel下的用户环境文件家目录下,并重命名
chmod 700 dan     修改家目录的访问权限
chown -R dan:dan dan    递归修改家目录及目录下文件的所属主和所属组

17、批量创建用户

newusers passwd 格式文件 批量创建用户

初步实验1_第18张图片

chpasswd 批量修改用户口令

但这种批量创建的用户没有相关的环境配置文件,需手动复制/etc/skel目录下的配置文件到家目录下

18、取随机数

cat /etc/urandom | tr -dc '0-9a-z' | head -c10

19、跟踪查看日志

tail -n0 -f /var/log & &放入后台运行

20、判断变量是不是整数或负数


[[ "$num" =~ ^-?[0-9]+$ ]] && echo digit

21、修改系统提示符颜色高亮显示

PS1=\033[34m[\u@\h \W]$\033[0m

你可能感兴趣的:(初步实验1)