NSD SHELL DAY(一)

本文详细介绍了Linux Shell的基础知识,包括切换用户Shell环境、命令历史、命令别名、重定向输出、管道操作等。通过具体案例展示了如何使用Shell脚本进行文件管理、Yum仓库配置和vsftpd服务安装。此外,还探讨了Shell变量的定义、赋值、查看以及环境变量的使用,提供了一次深入理解Shell操作的实践之旅。
摘要由CSDN通过智能技术生成

1 案例1:Shell基础应用
1.1 问题
本案例要求熟悉Linux Shell环境的特点,主要练习以下操作:
切换用户的Shell环境
练习命令历史、命令别名
重定向标准输入/输出/错误输出
管道操作实践
1.2 步骤
实现此案例需要按照如下步骤进行。
步骤一:切换用户的Shell环境
什么是shell?
Shell是在Linux内核与用户之间的解释器程序,通常指的是bash,负责向内核翻译及传达用户/程序指令
shell的使用方式:
1.交互执行指令:人工干预,执行效率底。
2.非交互执行指令:安静地在后台执行,执行效率高,方便写脚本。
若需要临时使用另一种Shell环境,可以直接执行对应的Shell解释器程序,比如只要执行ksh可以切换到ksh命令行环境。
[root@svr5 ~]# yum -y install ksh //若缺少ksh请先安装ksh包
… …
[root@svr5 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh //确认当前系统已识别ksh

[root@svr5 ~]# ksh //进入ksh环境
[root@svr5]~# exit //返回到切换前的bash环境
若希望修改用户的登录Shell,管理员可以直接通过usermod(或useradd)命令设置。比如,以下操作可将用户zhangsan的登录Shell改为/bin/ksh:

  1. [root@svr5 ~]# usermod -s /bin/ksh zhangsan //执行修改操作
  2. [root@svr5 ~]# grep ‘zhangsan’ /etc/passwd
  3. zhangsan❌516:516::/home/zhangsan:/bin/ksh //修改后
    步骤二:快捷键与Tab键补齐,常见快捷键如表-1所示
    表-1

步骤三:练习命令历史
1)检查历史命令的容量。
默认记录1000条,通过全局变量HISTSIZE设置,对所有用户有效:
4. [root@svr5 ~]# grep HISTSIZE /etc/profile
5.
6. HISTSIZE=1000
查看已为当前用户记录的历史命令条数:
7. [root@svr5 ~]# history | wc -l
8. 1000
2)查看历史命令列表。
列出最近执行的10条历史命令:
9. [root@svr5 ~]# history | tail
10. 1028 grep ‘zhangsan’ /etc/passwd
11. 1029 cat /etc/redhat-release
12. 1030 usermod -s /bin/tcsh zhangsan
13. 1031 grep ‘zhangsan’ /etc/passwd
14. 1032 su - zhangsan
15. 1033 echo 1234567 | passwd --stdin zhangsan
16. 1034 su - zhangsan
17. 1035 grep HISTSIZE /etc/profile
18. 1036 history | wc -l
19. 1037 history | tail
3)调用指定的历史命令。
重新执行历史命令列表中的第1028条操作:
20. [root@svr5 ~]# !1028
21. grep ‘zhangsan’ /etc/passwd
22. zhangsan❌516:516::/home/zhangsan:/bin/bash
重新执行最近一次以cat开头(根据实际情况变更)的历史命令操作:
23. [root@svr5 ~]# !cat
24. cat /etc/redhat-release
25. Red Hat Enterprise Linux Server… …
4)清空历史的命令。
26. [root@svr5 ~]# history -c //清空自己的历史命令
27. [root@svr5 ~]# > ~/.bash_history //清空记录文件
28. [root@svr5 ~]# history //再次检查历史命令列表
29. 42 > ~/.bash_history
30. 43 history
步骤四:练习命令别名
1)查看已经定义的命令别名列表。
当前的别名列表:
31. [root@svr5 ~]# alias
32. alias cp=‘cp -i’
33. alias l.=‘ls -d .* --color=tty’
34. alias ll=‘ls -l --color=tty’
35. … …
别名设置一般存放在用户的.bashrc文件内:
36. [root@svr5 ~]# grep ‘^alias’ ~/.bashrc
37. alias rm=‘rm -i’
38. alias cp=‘cp -i’
39. alias mv=‘mv -i’
2)自定义新的命令别名
添加一个名为lh的命令别名,实际执行的是“ls -lh”:
40. [root@svr5 ~]# alias lh=‘ls -lh’ //定义别名命令lh
41. [root@svr5 ~]# alias lh //确认定义结果
42. alias lh=‘ls -lh’
验证别名命令的效果:
43. [root@svr5 ~]# lh /etc/fstab //使用别名
44. -rw-r–r-- 1 root root 733 10-09 15:34 /etc/fstab
45. [root@svr5 ~]# ls -lh /etc/fstab //使用完整的命令
46. -rw-r–r-- 1 root root 733 10-09 15:34 /etc/fstab
3)取消别名
取消单个别名:
47. [root@svr5 ~]# unalias lh //取消名为lh的命令别名
48. [root@svr5 ~]# alias lh //查询时已没有lh
49. -bash: alias: lh: not found
步骤四:重定向标准输入/输出/错误输出
标准输入(stdin),描述号为0;
标准输出(stdout),描述号为1;
标准错误(stderr),描述号为2。
1)重定向标准输出。
使用 > 将命令执行的正常输出重定向到文件:
50. [root@svr5 ~]# ls -ld /etc/ //正常应输出到屏幕
51. drwxr-xr-x. 140 root root 8192 8月 2 04:45 /etc/
52. [root@svr5 ~]# ls -ld /etc/ > stdout.txt //重定向到文件
53. [root@svr5 ~]#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值