第一周作业
1.Linux=Linux内核+ GNU工具,主要的Linux发行版本如下
1)红帽
2)debian
2.安装centos7和ubuntu18.04.6
3.配置环境变量
实现执行history的时候可以查看执行命令的时间
第一步修改关于history的配置文件家目录下的.bash_profile
echo 'HISTTIMEFORMAT="%F %T"' > ~/.bash_profile
第二步让此文件生效
. ~/.bash_profile
4.Linux哲学思想
- 链接小型单一的程序,完成复杂任务
- 一切皆文件(包括硬件)
- 尽量避免与用户交互
- 配置数据存储在文本文件中
5.Linux的几个简单常用命令
1)echo
echo命令用于在终端设备上输出字符串或变量提取后的值
echo是一个内建命令:
[root@centos7 ~]# type echo echo is a shell builtin
单独使用echo时默认输出空格
[root@centos7 ~]# echo [root@centos7 ~]#
语法:
echo [-neE] [arg …]
常用选项:
-n 不输出结尾的换行符 -e “\a” 发出警告音 -e “\b” 删除前面的一个字符 -e “\c” 结尾不加换行符,不换行输出,若 "\c" 后面不存在字符,作用相当于 echo -n;若 "\c" 后面存在字符,后面的字符不会输出 -e “\f” 换行,但是换行后的新行开头位置连接着上一行的行尾 -e “\n” 换行,光标移至行首 -e “\r” 表示 "\r" 后面的字符覆盖 "\r" 前面的同等长度的字符(从首字符开始覆盖) -e "\t" 插入 tab -e "\v" 与 "\f" 相同 -e "\\" 插入 \ 字符 -E 禁止反斜杠转移,与-e参数功能相反
输出一段字符串:
[root@centos7 ~]# echo "hello world" hello world
输出命令结果:
[root@centos7 ~]# echo `hostname` centos7.localdomain
按照命令原格式输出:
[root@centos7 ~]# echo "`ifconfig`" eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.244.133 netmask 255.255.255.0 broadcast 192.168.244.255 inet6 fe80::dd0:9461:d545:2936 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:6d:d7:6b txqueuelen 1000 (Ethernet) RX packets 616 bytes 50369 (49.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 462 bytes 58957 (57.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 50 bytes 4220 (4.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 50 bytes 4220 (4.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:0d:91:f4 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
输出变量内容:
[root@centos7 ~]# echo $PS1 [\u@\h \W]\$
因为echo并不会识别变量,所以在变量前要加一个$以此让echo识别变量。
转义输出:
[root@centos7 ~]# echo \$PS1 $PS1
echo重定向
[root@centos7 ~]# echo "hello world" > /data/test.txt [root@centos7 ~]# cat /data/test.txt hello world
2)screen命令
用于多重视窗管理程序。
screen是一个外部命令
root@ubuntu1804:~# type screen
screen is /usr/bin/screen
语法:
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]
参数说明:
-A 将所有的视窗都调整为目前终端机的大小。 -d<作业名称> 将指定的screen作业离线。 -h<行数> 指定视窗的缓冲区行数。 -m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。 -r<作业名称> 恢复离线的screen作业。 -R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。 -s<shell> 指定建立新视窗时,所要执行的shell。 -S<作业名称> 指定screen作业的名称。 -v 显示版本信息。 -x 恢复之前离线的screen作业。 -ls或--list 显示目前所有的screen作业。 -wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
创建一个新会话:
screen -S weilan
3)date命令
显示日期修改日期的命令。
[root@centos7 ~]# type date date is /usr/bin/date
语法:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT]
date [MMDDhhmm[[CC]YY][.ss]]
FORMAT格式:
% : 印出 % %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)
[MMDDhhmm[CC]YY][.ss]设置时间格式说明:
MM:表示月份
DD:表示日期
hh:表示小时
mm:表示分钟
CC:表示当用四位数字书写年份的前两个数字
YY:表示当前用四位数字写年份的前两个数字
显示默认日期:
[root@centos7 ~]# date Fri Mar 4 10:45:04 CST 2022
显示昨天的日期:
[root@centos7 ~]# date -d '-1 day' +%F 2022-03-03
设置时间为2018年3月14日3点01分50秒
[root@centos7 ~]# date 031403012018.50 Wed Mar 14 03:01:50 CST 2018
4)ifconfig命令
配置网络接口,语法如下:
ifconfig [-a][-s][interface] ifconfig interface option | address ...
说明:
仅执行ifconfig命令,不带任何参数时,表示显示当前激活的接口;
-a:表示显示所有接口配置信息包括状态为down的接口;
-s:显示接口的简短列表,和netstat -i一样;
interface:指定的接口名称,例如eth0;
options:
up:激活接口
down:禁用接口
address:
IP/NETMAST[up]:设定ip地址和掩码(使用掩码前缀格式),up表示激活
IP netmask NETMASK:设定ip地址和掩码
范例:配置eth0网卡地址为192.168.93.128/24
ifconfig eth1 192.168.93.128/24 up ifconfig eth1 192.168.93.128 network 255.255.255.0 up
范例:激活eth0接口
ifconfig eth0 up
范例:临时down掉eth0接口
ifconfig eth0 down
范例:配置eth0网卡别名为eth0:0,ip为192.168.93.255
ifconfig eth0:0 192.168.93.255/24 up
注意:ifconfig命令均是临时的,并没有写到文件中。
5)export命令
创建和显示全局变量
export是一个内部命令:
[root@centos7 ~]# type export
export is a shell builtin
语法:
export [-fnp][变量名称]=[变量设置值]
创建一个全局变量:
[root@centos7 ~]# export weilan=888 [root@centos7 ~]# echo $weilan 888
查看系统全局变量:
[root@centos7 ~]# export
6.Linux发行版的系统目录名称命名规则以及用途
文件目录:
Linux文件目录结构是一个倒树状结构,从根(/)开始依次往下,根文件系统为rootfs:root filesystem;
文件名称区分大小写是由文件系统决定的,CentOS6.x默认文件系统为ext4,CentOS7.x上默认文件系统是xfs;
以点(.)开头的文件为隐藏文件,文件路径以(/)分割;
文件有俩类数据:元数据和数据;
文件系统分层结构:LSB Linux Standard Base
FHS:(Filesystem Hierarchy Standard)文件系统层次结构标准,想了解更多请访问:http://www.pathname.com/fhs/
[root@centos7 /]# tree -L 1 . ├── bin 二进制程序 ├── boot 启动相关,grub,kernel,initrafs等 ├── data 自己创建的数据目录 ├── dev 设备文件 ├── etc 系统程序配置文件 ├── home 普通用户家目录 ├── lib 库文件 ├── lib64 64库文件 ├── lost+found ext4文件系统生成,用于存放无家可归的文件,比如断电造成文件系统错乱 ├── media 通常用于光盘挂载 ├── misc 杂项,用户在此文件夹下执行 cd cd/ 可自动挂载光盘 ├── mnt 挂载点 ├── net 伪文件系统 ├── opt 第三方软件目录,已弃用 ├── proc 伪文件系统 ├── root root用户的家目录 ├── sbin 只有管理员可以执行的程序 ├── selinux 和SELinux相关 ├── srv 一些服务启动后所需要的文件 ├── sys 伪文件系统 ├── tmp 临时文件夹,其权限为777,内容定期清理 ├── usr 第二层根,非系统应用存放于此 └── var 软件产生的文件,列如/var/ftp/pub存放于此 23 directories, 0 files
文件命名规则:
文件名最长255个字节 包括路径在内文件名最长4095个字节 Linux中文件所对应的颜色:蓝色-->目录;绿色-->可执行文件;红色-->压缩文件;浅蓝色-->链接文件;灰色-->其他文件 文件名不能包含“/”,其他字符都合法 文件名称区分大小写(ext4)
basename 取文件路径基名
root@ubuntu1804:/etc/netplan# basename /etc/netplan/01-netcfg.yaml 01-netcfg.yaml
dirname 取文件路径目录名
root@ubuntu1804:/etc/netplan# dirname /etc/netplan/01-netcfg.yaml /etc/netplan
Linux下的文件类型:
-:普通文件
d:目录文件
b:块设备
c:字符设备
l:符号链接
p:管道文件pipe
s:套接字文件socket
记录于2022年3月4日20:57 --weilan