【Linux学习笔记】Linux的基本知识

目录

一、配置虚拟机网络

二、网络信息

三、配置NAT模式

四、Linux设置IP地址

五、Linux简介

六、Linux目录结构

七、命令格式

八、重启与关机

九、改变路径命名

十、当前路径命令

十一、查看目录下的内容

十二、创建新目录

十三、创建空文件

十四、删除空的目录

十五、删除文件或目录

十六、复制文件或目录

十八、查看文件内容

十九、查找文件

二十、编辑器

二十一、压缩文件(.tar.gz)

二十二、压缩文件(.zip)

二十三、创建用户组

二十四、删除用户组

二十五、修改用户组

二十六、查看组信息

二十七、创建用户

二十八、删除用户

二十九、修改用户

三十、用户口令的管理

三十一、查看用户信息

三十二、切换用户

三十三、文件基本属性与权限

三十四、shell编程

三十五、设置防火墙

三十六、设置linux系统时间

三十七、设置时区

三十八、linux同步网络时间


一、配置虚拟机网络

1、桥接模式:虚拟机与主机共享一个路由,在同一个网段,相当于做主机的局域网中多了一台电脑

2、NAT模式:虚拟机与主机共享一个专网,这个专网只有两台机器主机与虚拟机,可以相互通讯,

主机路由网络中不存在此电脑,虚拟机要访问外网必须靠主机IP进行转发

3、仅主机模式:虚拟机与主机共享一个专网,这个专网只有两台机器主机与虚拟机,只能相互通讯,

主机路由网络中不存在此电脑,所以不能上外网

二、网络信息

IP地址:网络中的唯一标识

子网掩码:组局域网使用,一个网段最多使用255个IP,如果不够需要增加其他网段,

所有网段保证子网掩码相同就能做一个局域网中

网关:路由器的IP地址

DNS:解析域名             江西电信DNS:202.101.224.68或202.101.224.69

三、配置NAT模式

1、在虚拟网络编辑器中选择VMnet8 NAT模式,点击NAT设置,把网关设置一下,

相当于设置虚拟机与主机专网的网关IP

2、在DHCP服务中设置子网IP、子网掩码,所有的设置必须在同一个网段

3、选择虚拟机右键,选择设置,选择网络适配器,从自定义中选择对应的虚拟网络

4、进入系统使用ifconfig命令查看IP地址

四、Linux设置IP地址

Linux设置获取IP地址方式有两种:

1、自动获取动态IP:默认方式不需要配置

2、固定设置静态IP:步骤如下:

a、命令:cd /etc/sysconfig/network-scripts

b、命令:vi ifcfg-ens33

c、修改以下内容:

ONBOOT=no改为yes

BOOTPROTO=dhcp改为static

增加以下内容

IPADDR=192.168.92.128

NETMASK=255.255.255.0

GATEWAY=192.168.92.2

DNS1=202.101.224.68

d、保存退出,重启网络服务,命令:systemctl restart network.service

e、使用ifconfig查看IP

五、Linux简介

Linux 英文解释为 Linux is not Unix。

Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的,

Linux 是一套免费使用和自由传播的类似 Unix 操作系统,是一个多用户、多任务、支持多线程和多 CPU 的操作系统。

Linux是建立在 Unix之上的,所以Linux命令适用Unix,两种操作系统的命令有细微的差异,Linux命令严格区分大小写

Linux发行版本:Ubuntu、Redhat、Centos

六、Linux目录结构

Linux没有分盘的概念,所有的目录结构成一个树状结构,根目录是/,根下目录分别如下:

1、bin:是Binary的缩写, 这个目录存放着最经常使用的命令。

2、boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

3、dev :dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备。

4、etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。

5、home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

6、lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

7、media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

8、mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

9、opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

10、proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

11、root:该目录为系统管理员,也称作超级权限者的用户主目录。

12、sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

13、selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

14、srv:该目录存放一些服务启动之后需要提取的数据。

15、sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

16、tmp:这个目录是用来存放一些临时文件的。

17、usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/usr/bin:

系统用户使用的应用程序。

/usr/sbin:

超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:内核源代码默认的放置目录。

18、var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

七、命令格式

命令格式:命令名 -选项 命令参数;

命令名 选项 参数 三者用空格隔开;

命令名必须得有,-选项和命令参数可以没有;

使用man可以查看命令的使用,比如:man ls

登录系统后,第一眼看到的内容是:

[root@localhost ~]#

[]:这是提示符的分隔符号,没有特殊含义。

root:显示的是当前的登录用户,笔者现在使用的是 root 用户登录。

@:分隔符号,没有特殊含义。

localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。

~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。

#:命令提示符,Linux 用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是 #;

    如果是普通用户,提示符就是 $。

八、重启与关机

Shutdown –h now 立马关机

Shutdown –h 20:25 系统会在今天20:25关机

Shutdown –h +10 十分钟后关机

Shutdown –r now 系统立马重启

Shutdown –r +10 系统十分钟后重启

reboot 就是重启,等同于 shutdown –r now

halt 关闭系统,等同于shutdown –h now 和 poweroff

九、改变路径命名

cd   change director  改变路径

命令格式:cd  路径

绝对路径:以/开头

相对路径:不以/开头

cd -        快速回到之前的路径,后退

cd ../      回到上一层目录

十、当前路径命令

命令格式:pwd

十一、查看目录下的内容

命令格式:ls  选项    路径

选项

-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)(常用)

-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出(常用)

-r 将文件以相反次序显示(原定依英文字母次序)

-t 将文件依建立时间之先后次序列出

-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)

-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"

-R 若目录下有文件,则以下之文件亦皆依序列出

选项可以组合使用,例如:ls -al        显示所有文件及目录,并且按详细列表列出

命令中路径不写,显示当前目录下的文件

以.开头都是隐藏文件

十二、创建新目录

命令格式:mkdir 选项 目录名称

选项

-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~

-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

十三、创建空文件

命令格式:touch 文件路径

十四、删除空的目录

命令格式:rmdir 选项 目录名称

选项

-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除。

例如:rmdir -p aaa/bbb             如果aaa目录是空的,一并会被删除,递归删除空目录

十五、删除文件或目录

命令格式:rm [-fir] 文件或目录

选项

-i 删除前逐一询问确认。

-f 即使原档案属性设为只读,亦直接删除,无需逐一确认。

-r 递归删除啊!最常用在目录的删除了!

十六、复制文件或目录

命令格式:cp 选项 源文件路径  目标目录路径

选项

-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)

-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;

-f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;

-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;

-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);

-r:递归持续复制,用於目录的复制行为;(常用)

-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;

-u:若 destination 比 source 旧才升级 destination !

案例

1、把ifcfg-nes33复制到/opt目录

cp -ai ifcfg-nes33 /opt

十七、移动文件与目录或修改文件、文件夹名称

命令格式:mv 选项 源文件路径  目标目录路径

选项

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

-u :若目标文件已经存在,且 source 比较新,才会升级 (update)

命令格式                              运行结果

mv 文件名 文件名                将源文件名改为目标文件名

mv 文件名 目录名                将文件移动到目标目录

mv 目录名 目录名             目标目录已存在,将源目录移动到目标目录;

                                   目标目录不存在则改名

mv 目录名 文件名                         出错

实例

将文件 aaa 更名为 bbb :

mv aaa bbb

将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。

mv info/ logs

再如将/usr/student下的所有文件和目录移到当前目录下,命令行为:

mv /usr/student/*  .

十八、查看文件内容

cat  由第一行开始显示文件内容

tac  从最后一行开始显示,可以看出 tac 是 cat 的倒著写!

nl   显示的时候,顺道输出行号!

more 一页一页的显示文件内容

less 与 more 类似,但是比 more 更好的是,他可以往前翻页!

head 只看头部几行

tail 只看尾部几行

命令:cat 文件名

  more 文件名

十九、查找文件

命令格式:find 目录路径  规则表达式

规则表达式 中可使用的选项有二三十个之多,在此只介绍最常用的部份。

-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件

-amin n : 在过去 n 分钟内被读取过

-anewer file : 比文件 file 更晚被读取过的文件

-atime n : 在过去n天内被读取过的文件

-cmin n : 在过去 n 分钟内被修改过

-cnewer file :比文件 file 更新的文件

-ctime n : 在过去n天内被修改过的文件

-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name

-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写

-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。

-type c : 文件类型是 c 的文件,文件类型如下:

d: 目录

c: 字型装置文件

b: 区块装置文件

p: 具名贮列

f: 一般文件

l: 符号连结

实例

1、查找/ home目录以及子目录下的所有文件,名称为test。

find /home -name test

2、查找/ home目录以及子目录下的所有文件,名称为test。

find /home -name test

3、查找/home目录以及子目录下的所有文件,名称为test,不区分大小写

find /home -iname test

4、在/home目录中查找名称为test的所有目录。

find /home -type d -name test

5、在/home目录中查找名称为test的所有文件。

find /home -type f -name test

6、在/home目录中查找所有目录。

find /home -type d

7、在/home目录中查找所有文件。

find /home -type f

8、在/home目录中查找所有.txt文件。

find /home -name *.txt

9、在home目录中查找所有空文件

find /home -type f -empty

10、在home目录中查找所有空目录

find /home -type d -empty

11、在home目录中查找最近 20 天内更新过的文件

find /home -ctime -20

12、在home目录中查找最近 20 天内读取过的文件

find /home -atime -20

13、在home目录中查找最近 1小时内更新过的文件

find /home -cmin -60

14、在home目录中查找最近 1小时内读取过的文件

find /home -amin -60

15、在home目录中查找小于50M的文件

find /home -size -50M

16、在home目录中查找大于50M小于100M的文件

find /home -size +50M-size -100M

二十、编辑器

vi/vim是编辑文件的编辑器, 共分为三种模式,

命令模式(Command mode)

输入模式(Insert mode)

底线命令模式(Last line mode)

命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符,

以下是常用的几个命令:

i 切换到输入模式,以输入字符。

x 删除当前光标所在处的字符。

: 切换到底线命令模式,以在最底一行输入命令。

输入模式:

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符

ENTER,回车键,换行

BACK SPACE,退格键,删除光标前一个字符

DEL,删除键,删除光标后一个字符

方向键,在文本中移动光标

HOME/END,移动光标到行首/行尾

Page Up/Page Down,上/下翻页

Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

ESC,退出输入模式,切换到命令模式

/关键字,在内容中搜索关键字

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多

在底线命令模式中,基本的命令有(已经省略了冒号):

:q! 退出程序,但不保存

:w! 保存文件,但不退出程序

:wq!保存文件,并退出程序

按ESC键可随时退出底线命令模式

:q!    退而不保

:w!    保而不退

:wq!   又保又退

二十一、压缩文件(.tar.gz)

命令格式:tar 选项 压缩包名 文件或目录名

实例:

1、把test目录打包成test.tar.gz

tar -czvf test.tar.gz test/

2、查看test.tar.gz压缩包中的内容

tar -tzvf test.tar.gz

.

3、解压test.tar.gz压缩包

tar -xzvf test.tar.gz

二十二、压缩文件(.zip)

如果操作系统没有此命令需要安装此命令,安装命令如下:

yum install -y unzip zip

1、把test目录打包成test.zip

zip -r test.zip test/

2、解压test.zip压缩包

unzip test.zip

二十三、创建用户组

命令格式:groupadd 选项 组名

选项:

-g GID 指定新用户组的组标识号(GID)

-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

实例

1、增加了一个新组ztkj,新组的组标识号是在当前已有的最大组标识号的基础上加1

groupadd ztkj

2、增加了一个新组yup,同时指定新组的组标识号是101

groupadd -g 101 yup

3、增加一个新组yup,与root组id相同

groupadd -o -g 0 yup

注:group Id前面999个被系统占用,自定义的组从1000开始

二十四、删除用户组

命令格式:groupdel 组名

注:如果用户组下有用户是无法删除的

二十五、修改用户组

命令格式:groupmod 选项 组名

选项:

-g GID 为用户组指定新的组标识号

-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同

-n新用户组 将用户组的名字改为新名字

实例

1、此命令将组ztkj的组标识号修改为102。

groupmod -g 102 ztkj

2、此命令将组yup的标识号改为10000,组名修改为gsyx。

groupmod –g 10000 -n  gsyx yup

二十六、查看组信息

用户组的所有信息都存放在/etc/group文件中,所以查看此文件信息就能查看到创建组的信息,命令如下:

cat/etc/group

二十七、创建用户

命令格式:useradd 选项 用户名

选项:

-c comment 指定一段注释性描述。

-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

-g 用户组 指定用户所属的用户组。

-G 用户组,用户组 指定用户所属的附加组。

-s Shell文件 指定用户的登录Shell。

-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

-m 用户的名称,就是用户名,可以省略不写

实例

1、创建用户test,并且设置用户主目录(/home/test)

useradd –d  /home/test -m test

2、创建用户test,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于admin和root用户组,

其中group用户组是其主组。

useradd -s /bin/sh -g group –G adm,root test

3、创建用户test,设置用户主目录(/home/test),用户的登录Shell是 /bin/sh,所属组是group

useradd -g group -d /home/test -s /bin/sh -m test1

4、最简单的创建test用户

useradd  -m test

注:如果创建用户不指定组,那么创建用户时同时也会创建一个新的组,组名与用户名相同

   创建新用户不指定login shell,而默认的是/bin/bash。

login shell  指的是系统给用户的运行环境,用户登录后,要启动一个进程,负责将用户的操作传给内核,

这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。

二十八、删除用户

命令格式:userdel 选项 用户名

选项:

-r,它的作用是用户在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

实例

1、删除用户名test,并且在系统中删除用户所有相关信息

userdel -r test

二十九、修改用户

命令格式:usermod 选项 用户名

选项:

-c comment 指定一段注释性描述。

-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

-g 用户组 指定用户所属的用户组。

-G 用户组,用户组 指定用户所属的附加组。

-s Shell文件 指定用户的登录Shell。

-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

实例

1、用户test的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer

usermod -s /bin/ksh -d /home/z –g developer test

2、用户test名称改成ztkj,部分系统支持

usermod -l ztkjtest

三十、用户口令的管理

命令格式:passwd 选项 用户名

选项:

-l 锁定口令,即禁用账号。

-u 口令解锁。

-d 使账号无口令。

-f 强迫用户下次登录时修改口令。

实例

1、当前用户是test,则下面的命令修改该用户自己的口令

$ passwd

Old password:******

New password:*******

Re-enter new password:*******

2、当前用户是root,修改任何用户的口令

# passwd test

New password:*******

Re-enter new password:*******

3、当前用户是root,修改test用户为空口令,下次登录系统就不再允许该用户登录了

# passwd -d test

4、当前用户是root,锁定test用户使其不能登录

# passwd -l test

5、当前用户是root,解锁test用户

# passwd -u test

6、当前用户是root,强迫test用户下次登录时修改口令

# passwd -f test

三十一、查看用户信息

Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

查看此文件就能查看到用户的信息,命令如下:

cat /etc/passwd

与用户相关的三个系统文件:

/etc/group                  用户组信息文件

/etc/passwd                用户信息文件

/etc/shadow                用户口令信息文件,只用root用户才有权限查看

一个用户会在/etc/passwd文件中占一行,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

系统中有一类用户称为伪用户,这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,

因为它们的登录Shell为空。它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。

如下:

bin 拥有可执行的用户命令文件

sys 拥有系统文件

adm 拥有帐户文件

uucp UUCP使用

lp lp或lpd子系统使用

nobody NFS使用

三十二、切换用户

root用户切换普通用户,命令如下:

su 用户名

普通用户切换root用户,需要输入root用户的密码,命令如下:

su root

password:

三十三、文件基本属性与权限

当使用ls -l或ll命令查看文件时,文件呈现如下信息:

[root@localhost opt]# ll

total 7396

drwxr-xr-x. 2 root root    4096 Sep 15 04:15 javajpg

drwxr-xr-x. 3 root root      71 Dec 28  2017 libevent

drwxr-xr-x. 2 root root     141 Jan  4  2018 magent

drwxr-xr-x. 3 root root      59 Dec 28  2017 memcached

drwxr-xr-x. 2 root root      51 Jan 10  2018 mongodb

drwxr-xr-x. 3 root root      53 Jan  3  2018 reids3

-rw-r--r--. 1 root root 7566034 Sep 15 04:30 test.zip

文件信息主要分为:

-rw-r--r--. 1 root root 7566034 Sep 15 04:30 test.zip

#权限 引用计数 所有者 所属组 大小 文件修改时间 文件名

1、文件权限

权限的第一字符代表这个文件是目录、文件或链接文件等等

当为[ d ]则是目录

当为[ - ]则是文件;

若是[ l ]则表示为链接文档(link file);

若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合,如下:

文件类型               属主权限               属组权限             其他用户权限

0                  1    2    3           4    5    6           7    8    9

d                  r    w    x           r    w    x           r    w    x

  目录                 读   写  执行         读   写  执行         读   写  执行

2、更改文件9个属性

命令格式: chmod [参数] 模式 文件或目录

参数:

-c : 若该文件权限确实已经更改,才显示其更改动作

-f : 若该文件权限无法被更改也不要显示错误讯息

-v : 显示权限变更的详细资料

-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

模式分两种:一种是数字,一种是符号。

a、数字模式:

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,

各权限的分数对照表如下:

r:4

w:2

x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others= --- = 0+0+0 = 0

命令:

chmod -R 770 test.zip

b、符号模式:

使用u/g/o来代表owner/group/others三种身份,比如把test.zip权限设置为[-rwxrwx---],

命令如下:

chmod -R u=rwx,g=rwx,o=-  test.zip

注:拥有执行权限,才能进入文件夹

3、更改文件属组

命令格式:chgrp -R 属组名 文件名

4、更改文件属主

命令格式:chown –R 属主名 文件名

注:普通用户不能更改其他用户的所属主与所属组,root用户可以,但是原来的所属用户编辑文件时,

      会把所属主与所属组还原成原始的所属主与所属组

 

文件权限可以通过vi更改所属主与所属组,文件不能控制权限,可以通过上级的文件夹控制,一般

都是通过文件夹来控制权限

三十四、shell编程

1、第一个shell程序

使用vi命令创建test.sh文件,内容如下:

#!/bin/bash

echo "Hello World !"

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

echo 命令用于向窗口输出文本

执行脚本:

chmod +x ./test.sh  #使脚本具有执行权限

./test.sh  #执行脚本

sh test.sh  #执行脚本

2、使用变量

变量名的命名须遵循如下规则:

命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

中间不能有空格,可以使用下划线(_)。

不能使用标点符号。

不能使用bash里的关键字(可用help命令查看保留关键字)。

使用vi命令创建var.sh文件,内容如下:

your_name="qinjx"

echo $your_name

echo ${your_name}

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

your_name="qinjx"

echo "I am good at $your_nameScript"

echo "I am good at ${your_name}Script"

推荐给所有变量加上花括号,这是个好的编程习惯。

3、传递参数

echo "Shell Parameter Instance"

echo "file name:$0"

echo "parameter one:$1"

echo "parameter two:$2"

echo "parameter three:$3"

echo "parameter number:$#"

4、运算符

a=10

b=20

val=$(($a + $b))

echo "a + b : $val"

val=$(($a - $b))

echo "a - b : $val"

val=$(($a * $b))

echo "a * b : $val"

val=$(($b / $a))

echo "b / a : $val"

val=$(($b % $a))

echo "b % a : $val"

if [ $a == $b ]

then

   echo "a 等于 b"

fi

if [ $a != $b ]

then

   echo "a 不等于 b"

fi

小数运算必须使用bc计算器,首先需要安装bc计算器,命令如下:

yum -y install bc

小数运算表达式

val=$(echo "options; expression" | bc)   例如:val=$(echo "scale=2; $a + $b" |bc)

options:用于定义变量,如果没有变量,直接用;隔开,scale=4,表示保留四位小数

expression:运算表达式

5、分支语句(if elif  else)

a=10

b=20

if [ $a != $b ]

then

   echo "$a != $b : a 不等于 b"

else

   echo "$a == $b: a 等于 b"

fi

if [ $a -lt 100 -a $b -gt 15 ]

then

   echo "$a 小于 100 且 $b 大于 15 : 返回 true"

else

   echo "$a 小于 100 且 $b 大于 15 : 返回 false"

fi

if [ $a -lt 100 -o $b -gt 100 ]

then

   echo "$a 小于 100 或 $b 大于 100 : 返回 true"

else

   echo "$a 小于 100 或 $b 大于 100 : 返回 false"

fi

if [ $a -lt 5 -o $b -gt 100 ]

then

   echo "$a 小于 5 或 $b 大于 100 : 返回 true"

else

   echo "$a 小于 5 或 $b 大于 100 : 返回 false"

fi

if [ $a != $b -a $a -lt $b ]

then

   echo "aaaaaa"

elif [ $a == $b -a $a -le $b ]

then

echo "bbbbb"

else

   echo "cccccc"

fi

语法提示:

a、if与[之间必须要有空格

b、[与变量之间必须要有空格

c、变量与符号必须要有空格

d、]与then必须换行

e、then与代码块必须换行

f、elif与上一个代码块必须换行

g、elif与[之间必须要有空格

6、循环语句(for)

从1加到100

sum = 0

for i in {1..100}

do

sum=$(($sum+$i ))

done

echo $sum

7、循环语句(while)

从1加到100

sum = 0

i=1 

while [ $i -le 100 ] 

do

sum=$(($sum+$i ))

i=$(($i+1 )) 

done

echo $sum

三十五、设置防火墙

查询防火墙状态:firewall-cmd --state

关闭防火墙:systemctl stop firewalld.service

开启防火墙: systemctl start firewalld.service

重启防火墙:firewall-cmd --reload

增加开放端口(增加开发端口需要重启防火墙):firewall-cmd --zone=public --add-port=端口号/tcp --permanent

三十六、设置linux系统时间

1、查看系统时间,命令:date

2、设置系统的年月日,命名:date -s 月/日/年     例如:date -s 07/22/2021

3、设置系统的时分秒,命令:date -s 时:分:秒      例如:date -s 16:56:12

4、设置系统的年月日时分秒,命令:date -s "年月日 时:分:秒"  例如:date -s "20210722 16:56:12"

5、查看日历,命令:cal

设置完时间后,重启还是会恢复到以前的时间,设置完时间后一定要进行写入,使用以下命令进行写入:

1、hwclock --systohc

2、clock -w

3、hwclock -w

三十七、设置时区

1、查看时区,命令:date -R

2、设置时区,中国是东八区,命令:timedatectl set-timezone Asia/Shanghai

3、查看时区状态:命令:timedatectl status

三十八、linux同步网络时间

1、同步网络时间要使用到ntp命令,如果没有此命令,执行以下命令进行安装

yum install ntp -y

2、同步网络时间,命令:ntpdate cn.pool.ntp.org

                       ntpdate ntp1.aliyun.com

3、保存同步的时间,命令:hwclock --systohc

                         clock -w

 hwclock -w

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ein hübscher Kerl.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值