首页 > 技术文章 > 第一周作业

weilanxuesre 2022-03-04 10:57 原文

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 : 从 19701100: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

推荐阅读