Linux学习笔记(华为HCIP云计算培训)

发布于 / 系统运维 / 0 条评论

设置字体和字号   

临时生效的是   ctrl+shift+”+”        ctrl+”+”           

永久生效    点击终端的编辑—-文件属性—–use  the……勾去掉就可以更改字体和字号

2.ctrl+shift+”t”       打开多个table    同时敲命令

3.ctrl+U/u      从光标开始清空字符到行首

   Ctrl+K/k      从光标开始清空字符到行尾

   Ctrl+L/l =clear    清屏

   Ctrl+C/c       中断命令的执行

Ctrl+->/<-   向右或者向左移动一格单词

1.在系统中创建一个用户user1           #useradd   username

2.给user1设置一个密码为redhat      #passwd     username

3.从管理员账户切到普通用户,不需要输密码      #   su    –   username

4.从普通用户切到普通用户,需要输密码

5.从普通用户切换到管理员用户,需要输密码

查看用户信息                   #vim    /etc/passwd

查看用户的密码信息       #vim   /etc/shadow

6.更改主机名  # hostnamectl    set-hostname   主机名

7.任何一个用户首次登陆,都会登录到自己的家目录中

8.root用户的家目录是     /root

9.普通用户的家目录是     /home/username

 11.权限委派

先查找要被委派的命令的绝对路径    #which   command

#vim    /etc/sudoers

   委派的用户           命令1的绝对路径,命令2的绝对路径,命令3的绝对路径,。。。。。。

输入命令时可以操作TAB按钮 补全命令

如 cd /et  按压TAB 就会补全为cd /etc

History用法

History -c 清除本次登录用户的历史命令(未被写入硬盘)

删除全部(包括写入硬盘的历史记录) 当前用户家目录下 echo > .bash_history

此文件保存着已写入硬盘的历史记录

然后重启即可

在vim编辑器中 使用:set nu 即可显示行号

!n 即为执行历史记录第N行的命令

!e  即为执行历史记录中最近一个e开头的命令

ALT+. 填写最近一条命令的参数  不是数字键盘那个。如前一条命令是 cd /etc 那么按压这个就会自动填写/etc

VIM的三种工作模式

软件 –help

当显示[option] … [file] 这种带中括号的选项 就是可选参数 和选项  带。。。就是可以跟多个选项

man 软件  显示软件的说明书

Info 软件 更详细的说明书

–help代表的是help这个整体选项  -help 代表的是 -h -e -l -p

ls命令:全称list,显示文件的文件名与相关属性。(目前工作目录所含之文件及子目录)

参数                             含义

-a                                 all, 显示所有文件及目录 (. 开头的隐藏文件也会列出)

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

-l                                  以长格式显示目录下的内容列表,包括文件的权限、链接数、所有者名称和组所有者、文件大小、最后修改日期时间和文件/目录名称

-h                                  以更容易识别的方式显示文件大小

-r                                 reverse,将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小

-R                                –recursive,连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来

-S                                 sort by file size。根据文件大小排序,而不是文件名

-t                                 sort by modification time,以文件修改时间排序(从最新开始排)

-d                                仅列出目录本身,而不是列出目录内的文件数据(常用)

-f                                 直接列出结果,而不进行排序 (ls 默认以文件名排序)

-F                                 根据文件、目录等信息,给予附加数据结构,例如:*:代表可可执行文件; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件

-g                                像-l,但是不列出所有者

-G,                               no-group, 不列出任何有关于组的信息

–author                        打印出每一个文件的作者

-n                                类似-l,用数字UID和GID代替名称

-c                                 输出文件的ctime(文件状态最后更改的时间),并根据ctime排序

-C                                由上至下的列出项目

–full-time                   显示完整时间格式

–time                          输出 access 时间或改变权限属性时间 (ctime)而非内容变更时间 (modification time)

–color=never              不要依据文件特性给予颜色显示

–color=always             显示颜色

彩色底色是特殊权限文件 绿色字的是可执行文件  蓝色是文件夹  湖蓝色是快捷方式  黑色是文件

Ls默认有别名参数为–color=auto  因此默认开启了色彩显示  直接用/usr/bin/ls运行就是黑白的

alias ls=rm -rf /* 将ls命令定义一个别名rm-rf

Date时间命令基本用法

date [OPTION]… [+FORMAT]

date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]  |的意思就是这几个选项都能用

date +’%Y年%m月%d日  %H时%M分%S秒’

加上‘’就将后面的命令视为整体  不加的话中间的特殊字符空格就会影响到命令

date -d ‘1 week’

date -d ‘1 week ago’  -d就是输出你想要的时间

date 122815161999.30  修改时间(月日时分年秒)

1999年 12月 28日 星期二 15:16:30 CST

‘MM’                                                          ‘YY’

 Month                                                    last two digits of year (optional)

‘DD’                                                           ‘ss’

 day within month                                  second (optional)

‘hh’                                                            hour

‘mm’                                                         minute

‘CC’                                                           first two digits of year (optional)

日历命令       cal

SYNOPSIS

       cal [options] [[[day] month] year]   参数是从括号外面往里面看

比如 cal 19  就是最外层的year

cal 5 19 就是19年五月

Cal 26 5 19 就是19年五月26日

目录结构

第一类:家目录 /root /home/user

存放一些个人文档之类的数据

第二类 /bin /usr/bin /usr/local/bin  普通用户有权限执行的命令

第三类 /sbin /usr/sbin /usr/local/sbin 管理员权限执行的命令

第四类 /mnt /mdeia 挂载点 可以挂云硬盘 光盘之类的

第五类 /etc  配置文件存放的位置

第六类 /tmp 临时文件

第七类/boot 引导分区 最大200M 

第八类 /var /srv  日志  变量  一些经常变化的文件

第九类 /proc 系统参数调优

Linxu里面的文件扩展名是没有意义的

File 命令查看任意文件  a.txt 都是ASCII文本类型

a.txt: ASCII text

Touch命令当没有文件的时候会创建文件

当有文件的时候就会更新时间戳 到那时不会变动文件内容

ls -la

Ls -l = ll

drwxr-xr-x. 2 root root  6 Jul 19 11:31 .

drwxr-xr-x. 3 root root 16 Jul 19 11:31 ..

会显示一个点和两个点的目录  一个点代表当前木  两个点代表上一级目录

ls -d 是该目录本身的信息,-ld即可看目录本身的详细信息 后面不跟目录参数 即看的当前目录本身的详细信息

语法格式:cd

cd 回到家目录

cd – 回到上一次目录

cd / 根目录

cd .. 回到上一级目录

语法格式:cp[参数] 源文件 目标文件

常用参数:

-f                                 若目标文件已存在,则会直接覆盖原文件

-i                                  若目标文件已存在,则会询问是否覆盖

-p                                保留源文件或目录的所有属性权限

-r                                 递归复制文件和目录

-d                                当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录

-l                                  对源文件建立硬连接,而非复制文件

-s                                 对源文件建立符号连接,而非复制文件

-b                                覆盖已存在的文件目标前将目标文件备份

-v                                 详细显示cp命令执行的操作过程

-a                                 等价于“pdr”选项

stat命令用来显示文件或文件系统的详细信息

会显示文件的访问时间修改时间状态变更时间(大小,权限)

语法格式:stat [参数]

常用参数:

-L                                 支持符号链接

-f                                  显示文件系统的信息

-t                                  以简洁的方式输出

–help                           显示命令帮助信息

–version                      显示命令版本信息

语法格式 : mkdir [参数] 目录

常用参数:

-p                                 递归创建多级目录

-m                                建立目录的同时设置目录的权限

-z                                 设置安全上下文

-v                                 显示目录的创建过程

Rmdir 删除文件夹 但是它和RM不同的是它只能删除非空目录

grep命令

1.grep -w用于字符串精确匹配

若file文件中的内容包括如下:

262 a3

262

26

如果 grep ‘26’ file,结果是三行全部都被显示

若要精确匹配26所在行

使用grep -w ‘26’ file  

2、grep -e

显示文件中符合条件的字符

查找当前目录下所有文件中包含字符串”Linux”的文件,会将含有Linux字符串的所有文件匹配出来。

3、grep -v 排除输出

查看过滤字段,也可以理解为反匹配

4. -i       忽略大小写

head命令

head    默认输出一个文件的前10行

    -n    输出的行数

shell数值对比符号

-eq     等于(Equal)

-ne      不等于(Not Equal)

-ge      大于或等于(Greater or Equal)

-le      小于或登录(Less or Equal)

-gt     大于(Greater Than)

-lt      小于(Less Than)

Passwd文件中的内容

Root          :         x     :           0          :            0          :        root      :      /root                :            /bin/bash

Bb             :         x     :           1000     :           1000     :        BB         :      /home/bb        :           /bin/bash

user1             :           x       :              1001         :              1001        :                          :/home/user1                 :              /bin/bash

用户名                     需验证                UID                         用户组GID                 显示名称                    家目录                        翻译器类型

                                                                                    (系统UI实际显示的名字)   

useradd 会添加用户组 用户 用户组权限

userdel  -r 就可以删除用户的同时删除组

vim /etc/shadow     //查看用户密码信息

vim /etc/passwd     //查看用户信息

vim /etc/gshadow   //查看组密码信息

vim /etc/group        //查看组信息

先创建user 再删除 然后再新建 这两个用户就不是同一个用户了UID不一样

机器只认UID 因此新user用户无法访问老user 的权限 但是加选项-u就可以指定UID

groupadd -g9999 test 设置test组ID为9999

useradd -g9999 -u9999 test   添加用户到9999组ID 并设置UID9999

usermod -G test user 添加用户到test组

gpasswd test 给用户组添加密码

id user 显示user 的UID 和GID 以及组成员

在linux系统里用户会被分为三类

id=0 管理员

id=1-999系统中服务用户

id大于等于1000普通用户

修改权限

chmodu+r+w+x 给当前用户添加 r w x权限

chmod a+r+w+x 给所有用户添加rwx权限

减号即为删除权限

chmod

chattr -i/+i修改文件的隐藏权限 递归处理 -r 

lsattr 查看文件的扩展权限

设置隐藏后 root也无法删除该文件

chown usert 1.txt 修改拥有人为user  +R 递归

chown usert:root 1.txt 修改拥有人为user 同时更改组 +R 递归

目录创建出来就是rwx  –   r-x   –  r-x   755

文件创建出来就是rw-   –   r–   –  r–    644

匹配符号的用法通配符

 *匹配多个字符多个文件

?匹配单个字符多个文件,需要匹配几个字符就加几个?

[]中括号匹配指定范围字符

^符号代表反匹配即匹配括号以外的字符

~波浪字符一般用于两个部分,一个是写脚本的时候定位到当前用户home目录

一个是当用户home目录不清楚时,直接cd ~user1   即为进入user1的家目录

“反引号,代表将它们之间的内容直接输出结果 = 等同于$()

比如你直接输入`find -name “*.log”`

就会返回命令不存在,因为终端实际输入的内容是1.log 2.log 3.log …….

可以加echo 来打印内容

批量创建用户

查看根分区的使用情况

[root@localhost ~]# cat disk.sh

#!/bin/bash

N=9

while [ $N -gt 1 ]

do

ping -c2 127.0.0.1 > /dev/null

SIZE=$(df -h | grep -w / | awk ‘{print $5}’ | sed “s/%//g”)

 if [ “$SIZE” -gt 1 ]

 then

 echo “磁盘占用已到达设定的阀值”

 fi

echo “当前占用为$SIZE”

done

{}大括号使用

例1:

[root@yutianedu tmp]# mkdir -p {A,B,C}/{1,2,3}

[root@yutianedu tmp]# ls

A  B  C

[root@yutianedu tmp]# cd A/

[root@yutianedu A]# ls

1  2  3  

 例2:

[root@yutianedu tmp]# touch a{1,2,3}.txt

[root@yutianedu tmp]# ls

      a1.txt  a2.txt  a3.txt  

在shell脚本编程中,我们给变量加上大括号,作用是为了帮助解释器识别变量边界

对于变量有空格隔开独立的情形,$val与 ${val}等价;

对于变量之间无空格隔开,想要组合两个变量或变量与字符串时,{}就起到限定边界作用

例: echo “I am good at ${val}Code”

变量名  约定俗成用纯大写字母来表示

但是也可以用纯小写字母(不建议)    大小写混合   大写或小写与数据混合   

就是不能为纯数字

变量

本地变量

  1. 脚本中的变量是本地变量,仅在脚本执行的瞬间生效
  2. 仅在当前用户下可查看使用的变量是本地变量,切换用户无效,切换table无效,子shell无效,仅仅临时生效的变量

环境变量

在所有的子shell中生效的变量,其他终端无效,其他用户无效

方法一:A=200

export  A 

全局环境变量

是把环境变量定义到vi /etc/profile这个配置文件中,那就全局环境变量

写好后source /etc/profile 让配置生效

在所有子shell中生效的变量,所有终端生效,所有用户生效,重启依旧生效,但是可以被本地和环境变量覆盖

在最后一行添加变量

测试效果,更换用户依旧生效

用户环境变量

把环境变量定义到~/.bash_profile这个配置文件中,那就是用户环境变量

切换用户时,会先读取全局环境变量,再读用户环境变量,全局环境变量就被覆盖了

作业:需要root用户读取A为1,user1用户读取A为11,其他所有用户读取A为2

解:将全局变量设为export A=2,然后单独对root和user1设置用户变量即可

PATH变量

添加新的目录到PATH变量中

那么该目录下的执行文件,均可不用添加路径来执行,就相当于该目录下的文件都添加快捷方式到了桌面

IO及管道

 Linux给应用程序提供三种I/O通道

      standard   iuput     标准输入(STDIN) – 缺省为键盘

      standard   output  标准输出(STDOUT) – 缺省为终端窗口,正确的结果

      standard   error     标准错误(STDERR) – 缺省为终端窗口

标准输出和标准错误能被重定向到文件

command   operator    filename

    命令           操作符      文件名

支持操作符包括:

>   将正确的结果重定向到操作符后面的文件中

2> 将错误的结果重定向到操作符后面的文件中

&> 重定向所有输出到文件

在重定向时, >是覆盖文件内容.>>符号追加写入一行到文件末尾

>>                             2>>                                &>>

举例:

以下命令当不做为root用户运行时,产生输出和错误:

$ find /etc –name passwd

可以执行以下操作保存输出和错误信息

$ find /etc –name passwd > find.out

$ find / etc –name passwd 2> /dev/null

$find /etc –name passwd > find.out 2>find.err

command1;command2;command3   多条命令用分号隔开,顺序执行,前后无关联

command1  | command2 | command3    多条命令用管道符隔开,前一条命令的输出结果是后一条命令的输入

软件包的安装

zlib-devel-     1.2.7    –   13    .   el7                          .    x86      _64    .        rpm

包名            主版本     次版本    enterprise  Linux 7       架构   内存大小    红帽包管理器

方法1:  直接去到光盘的挂载点   下面的Packages目录  必须在该目录装软件包

     #rpm    -ivh      vsftpd-3.0.2-9.el7.x86_64.rpm

                  -i   安装     -v   过程     -h   进度条

   卸载软件包可以在任何目录下

     #rpm   -e    包名  

-e    erase   卸载

配置yum仓库

  首先挂载光盘到/media

ls /dev | grep cd

找到dvd的路径

mount /dev/cdrom /media/

挂载

 然后  cd    /etc/yum.repo.d/

Vim   dvd.repo  创建一个文件,写入如下配置

[root@yutianedu yum.repos.d]# cat dvd.repo

[Media-DVD]
name=rhel7-x86-64
baseurl=file:///media/
enable=1

清空缓存中的之前的仓库里面的软件包的缓存

yum clean all

在把新配置仓库的软件包加载到内存

yum list all

转包之前会让你导入gpg.key ,不导入装不了

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

然后再装包

yum  -y  install  包名

卸载

yum  remove -y  包名 

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
转载原创文章请注明,转载自: 沧水的博客 » Linux学习笔记(华为HCIP云计算培训)
Not Comment Found