01-linux练习01
1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
- Linux发行版=Linux内核+商业软件
- 联系:
- 1.都是基于GNU项目下的GPL协议。
- 2.基本上可以分为三大系类:Slackware、RedHat、Debian
- 3.每个系列最具代表性的商业服务器级的发行版,分别是SUSE Linux Enterprise ; Red Hat Enterprise Linux ;Ubuntu Server,简称Ubuntu;
- 4.还有基于这三大系列和其他分支的一些社区发布版本,比如:基于Slackware下的OpenSUSE ;基于RedHat的CentOS 、Fedora,基于Debian下的mimt Linux,knopix ,以及Gentoo、ArchLinux、国内Linux红旗、麒麟Linux等。
- 区别:
- 1.按软件包管理系统的不同,例如:分以Redhat的rmp包管理系统和Ubuntu的基于DPKG包管理系统。
- 2.Redhat的rmp包管理系统发行版包括SLES、Fedora、openSUSE、centos、RHEL等文件以rpm为扩展名;Ubuntu的基于DPKG包管理系统包括Ubuntu系列,Debian系列等,包文件以deb为扩展名。
- 3.详细说明:
- Red Hat ,是redhat发行的企业版
- Fedore是一款基于linux的操作系统,也是一组维持计算机正常运行的软件集合。由红帽公司赞助。
- suse linux,针对个人用户。
- 红旗linux的发行版,包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式linux等产品,是中国较大、较成熟的linux发行版之一。
- debian,三大发行版中唯一以社区形式运作,不以商业公司形式运作。是一个致力于创建自由操作系统的合作组织。而且debian开发者所创建的操作系统中绝大部分基础工具来自于GNU工程。
- Ubuntu(乌版图)是一个以桌面应用为主的linux操作系统。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。
- Centos是一个基于redhat linux 提供的可自由使用源代码的企业级linux发行版本。目前Centos已被redhat收购
2、安装Centos7.9和ubuntu操作系统,创建一个自己名字的用户名,并可以正常登录


3、配置环境变量,实现执行history的时候可以看到执行命令的时间。
#方法1: cat /etc/profile.d/env.sh export HISTTIMEFORMAT="%F %T " #方法2: echo -e "export HISTTIMEFORMAT='%F %T '" >>/etc/profile source /etc/profile #方法3: #history USER_IP=`who -u am i 2>/dev/null|awk '{print $NF}'|sed -e 's/[()]//g'` HISTDIR=/usr/share/.history if [ -z $USER_IP ];then USER_IP=`hostname` fi if [ ! -d $HISTDIR ];then mkdir -p $HISTDIR && chmod 777 $HISTDIR fi if [ ! -d $HISTDIR/${LOGNAME} ];then mkdir -p $HISTDIR/${LOGNAME} && chmod 300 $HISTDIR/${LOGNAME} fi export HISTSIZE=4000 DT=`date +%Y%m%d_%H%M%S` export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT" export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]" chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null
4、总结Linux哲学思想。
- 一切皆文件
- 小型、单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文件中
5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令
命令格式:COMMAND [OPTIONS...] [ARGUMENTS...]
命名 [选项...] [参数...]
echo命令
- 功能:显示字符
- 语法:echo [-neE] [字符串]
- 选项:
- -E (默认)不支持 \ 解释功能
- -n 不自动换行
- -e 启用 \ 字符的解释功能
- 显示变量
- echo "$VAR_NAME" 变量会替换,弱引用
- echo '$VAR_NAME' 变量不会替换,强引用
screen
- 功能:Linux screen命令用于多重视窗管理程序。
- 语法:screen [-AmRvx -ls -wipe][-d ][-h ][-r ][-s ][-S ]
- 选项:
- -A 将所有的视窗都调整为目前终端机的大小。
- -d 将指定的screen作业离线。
- -h 指定视窗的缓冲区行数。
- -m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
- -r 恢复离线的screen作业。
- -R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
- -s 指定建立新视窗时,所要执行的shell。
- -S 指定screen作业的名称。
- -v 显示版本信息。
- -x 恢复之前离线的screen作业。
- -ls或--list 显示目前所有的screen作业。
- -wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
- 实例:
- 创建新screen会话:screen –S [SESSION]
- 加入screen会话:screen –x [SESSION]
- 退出并关闭screen会话:exit
- 剥离当前screen会话:Ctrl+a,d
- 显示所有已经打开的screen会话:screen -ls
- 恢复某screen会话:screen -r [SESSION]
date
- 功能:显示或设定系统的日期与时间
- Linux的两种时钟
- 系统时钟:由Linux内核通过CPU的工作频率进行的
- 硬件时钟:主板
- 时间参数:
- % : 印出 %
- %n : 下一行
- %t : 跳格
- %H : 小时(00..23)
- %I : 小时(01..12)
- %k : 小时(0..23)
- %l : 小时(1..12)
- %M : 分钟(00..59)
- %p : 显示本地 AM 或 PM
- %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
- %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
- %S : 秒(00..61)
- %T : 直接显示时间 (24 小时制)
- %X : 相当于 %H:%M:%S
- %Z : 显示时区
- 日期参数:
- %a : 星期几 (Sun..Sat)
- %A : 星期几 (Sunday..Saturday)
- %b : 月份 (Jan..Dec)
- %B : 月份 (January..December)
- %c : 直接显示日期与时间
- %d : 日 (01..31)
- %D : 直接显示日期 (mm/dd/yy)
- %h : 同 %b
- %j : 一年中的第几天 (001..366)
- %m : 月份 (01..12)
- %U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
- %w : 一周中的第几天 (0..6)
- %W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
- %x : 直接显示日期 (mm/dd/yy)
- %y : 年份的最后两位数字 (00.99)
- %Y : 完整年份 (0000..9999)
- 实例:
- date 显示和设置系统时间
- date +%s
- date -d @1509536033
- date 显示和设置系统时间
hwclock,clock: 显示硬件时钟
- -s, --hctosys 以硬件时钟为准,校正系统时钟
- -w, --systohc 以系统时钟为准,校正硬件时钟
- 时区:ll /etc/localtime
- 列出时区:timedatectl list-timezones
- 显示日历:cal –y
- 同步服务器时间:ntpdate ip地址
ifconfig
- ifconfig命令用于显示或设置网络设备。
- ifconfig可设置网络设备的状态,或是显示目前的设置。
- 语法:
- ifconfig [网络设备][down up -allmulti -arp -promisc][add][del][][io_addr][irq][media][mem_start][metric][mtu][netmask][tunnel][-broadcast][-pointopoint][IP地址]
- 选项:
- add 设置网络设备IPv6的IP地址。
- del 删除网络设备IPv6的IP地址。
- down 关闭指定的网络设备。
- 设置网络设备的类型与硬件地址。
- io_addr 设置网络设备的I/O地址。
- irq 设置网络设备的IRQ。
- media 设置网络设备的媒介类型。
- mem_start 设置网络设备在主内存所占用的起始地址。
- metric 指定在计算数据包的转送次数时,所要加上的数目。
- mtu 设置网络设备的MTU。
- netmask 设置网络设备的子网掩码。
- tunnel 建立IPv4与IPv6之间的隧道通信地址。
- up 启动指定的网络设备。
- -broadcast 将要送往指定地址的数据包当成广播数据包来处理。
- -pointopoint 与指定地址的网络设备建立直接连线,此模式具有保密功能。
- -promisc 关闭或启动指定网络设备的promiscuous模式。
- [IP地址] 指定网络设备的IP地址。
- [网络设备] 指定网络设备的名称。
- 实例:
- 显示网络设备信息:ifconfig
- 启动关闭指定网卡:
- ifconfig eth0 down
- ifconfig eth0 up
exportexport
- 命令用于设置或显示环境变量。在 shell 中执行程序时,shell 会提供一组环境变量。export 可新增,修改或删除环境变量,供后续执行的程序使用。export 的效力仅限于该次登陆操作。
- 参数:
- -f 代表[变量名称]中为函数名称。
- -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
- -p 列出所有的shell赋予程序的环境变量。
- 实例:
- 列出当前的环境变量值:export -p
- 定义环境变量并赋值:export MYENV=7
6、描述Linux发行版的系统目录名称命名规则以及用途。
linux系统目录命名规则:
- 使用LSB(Linux Standard Base)分层结构
- 遵循FHS (Filesystem Hierarchy Standard) 标准
- 文件名最长255个字节
- 包括路径在内文件名称最长4095个字节
- 颜色区分:
- 蓝色-->目录
- 绿色-->可执行文件
- 红色-->压缩文件
- 浅蓝色-->链接文件
- 灰色-->其他文件
- 6、除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们
- 7、标准Linux文件系统(如ext4),文件名称大小写敏感
linux系统目录架构及用途:
- /:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件数据,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。
- /bin:提供用户使用的基本命令, 存放二进制命令,不允许关联到独立分区,OS启动会用到里面的程序。
- /boot:用于存放引导文件,内核文件,引导加载器.
- /sbin:管理类的基本命令,不能关联到独立分区,OS启动时会用到的程序(重要的命令通常处于bin,不重要的则安装在sbin)。
- /lib:存放系统在启动时依赖的基本共享库文件以及内核模块文件. 系统使用的函数库的目录 也存放了大量的脚本库文件 ,程序在执行过程中,需要调用时会用到
- /lib64:存放64位系统上的辅助共享库文件.
- /etc: 系统配置文件存放的目录,该目录存放系统的大部分配置文件和子目录,不建议在此目录下存放可执行文件 。
- /home:普通用户主目录,当新建账户时,都会分配在此,建议单独分区,并分配额外空间用于存储数据。
- /root:系统管理员root的宿主目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
- /media:便携式移动设备挂载点目录.
- /mnt:临时文件系统挂载点.
- /dev:设备(device)文件目录,存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件 (b 随机访问,c 线性访问)
- /opt:第三方应用程序的安装位置.
- /srv:服务启动之后需要访问的数据目录,存放系统上运行的服务用到的数据,如www服务需要访问的网页数据存放在/srv/www内。
- /tmp:存储临时文件, 任何人都可以访问,重要数据一定不要放在此目录下。
- /usr:应用程序存放目录,/usr/bin 存放保证系统拥有完整功能而提供的应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件,_/usr/local 存放软件升级包,第三方应用程序的安装位置,/usr/share/doc _系统说明文件存放目录。
- /var:放置系统中经常要发生变化的文件,如日志文件。/var/log 日志目录及文件./var/tmp:保存系统两次重启之间产生的临时数据.
- /proc: 用于输出内核与进程信息相关的虚拟文件系统,目录中的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间
- **/sys **:用于输出当前系统上硬件设备相关的虚拟文件系统.
- /selinux:存放selinux相关的信息安全策略等信息.
7、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
cp -r /etc/* /home/nameke/workdir/ chown -R nameke:nameke /home/nameke/workdir/ [nameke@vb01 ~/workdir]$ ls -d /home/nameke/workdir/[!^[:alpha:]][[:alpha:]]* /home/nameke/workdir/1abao.log /home/nameke/workdir/4da46o.log /home/nameke/workdir/1baa24test /home/nameke/workdir/_dirtest123 [nameke@vb01 ~/workdir]$ ls -d /home/nameke/workdir/[^[:alpha:]][[:alpha:]]* /home/nameke/workdir/1abao.log /home/nameke/workdir/4da46o.log /home/nameke/workdir/1baa24test /home/nameke/workdir/_dirtest123 故命令为: ls -d /home/nameke/workdir/[^[:alpha:]][[:alpha:]]*

8、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[nameke@vb01 ~/workdir]$ ls -d /etc/p* /etc/pam.d /etc/pkcs11 /etc/pm /etc/postfix /etc/printcap /etc/protocols /etc/passwd /etc/pki /etc/polkit-1 /etc/ppp /etc/profile /etc/python /etc/passwd- /etc/plymouth /etc/popt.d /etc/prelink.conf.d /etc/profile.d [nameke@vb01 ~/workdir]$ [nameke@vb01 ~/workdir]$ ls -d /etc/p*[![:digit:]$] /etc/pam.d /etc/pki /etc/popt.d /etc/prelink.conf.d /etc/profile.d /etc/passwd /etc/plymouth /etc/postfix /etc/printcap /etc/protocols /etc/passwd- /etc/pm /etc/ppp /etc/profile /etc/python [nameke@vb01 ~/workdir]$ ls -d /etc/p*[^[:digit:]] /etc/pam.d /etc/pki /etc/popt.d /etc/prelink.conf.d /etc/profile.d /etc/passwd /etc/plymouth /etc/postfix /etc/printcap /etc/protocols /etc/passwd- /etc/pm /etc/ppp /etc/profile /etc/python

9、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
[nameke@vb01 ~]$ cat /etc/issue \S Kernel \r on an \m [nameke@vb01 ~]$ cat /etc/issue|tr "a-z" "A-Z" \S KERNEL \R ON AN \M [nameke@vb01 ~]$ cat /etc/issue|tr "a-z" "A-Z" >/tmp/issue.out [nameke@vb01 ~]$ cat /tmp/issue.out \S KERNEL \R ON AN \M





浙公网安备 33010602011771号