Linux 学习笔记

1 文件系统

Linux没有C盘、D盘等盘符概念

Linux 是以 根(顶层目录)(/) 来划分层级关系的

/boot     引导文件夹

/etc       配置文件

/home    普通用户的主目录

/root      管理员的主目录

/bin       命令文件夹

/dev       设备文件夹

2 shell

是命令与操作系统的交互,shell是桥梁

Windows 的shell有 cmd 等

Linux 的 shell 有 bash、sh、csh、zsh 等

3 磁盘操作

3.1 路径

当前路径 ./

上层路径 ../

上上层路径 ../../

家目录     ~            相当于  /home/用户名 或 /root

3.2 cd

进入某个目录的

案例:cd /home/rh      这叫做进入/home/rh 目录

案例:cd ./             进入当前  

案例:cd ../../           进入当前目录的上上层

3.3 pwd

显示当前目录位置

3.4 ls

显示某个目录下的文件或文件夹,默认当期目录

-a (这是参数,是对命令功能的扩充)  显示全部

-l        是用列表方式显示

案例:ls /bin              查看 /bin文件夹的内容

案例:ls /etc/alsc          查看 /etc /alsc文件夹的内容

案例:ls -a /etc/alsc        查看的同时,会显示隐藏

4 目录文件

4.1 mkdir

某个位置,创建文件夹,默认当前位置

-p 创建的同时,还创建父文件夹

案例:mkdir 111           当前位置创建 111 文件夹

案例:mkdir /tmp/22       /tmp位置创建 22 文件夹

案例:mkdir -p 11/22/33    创建 33 文件夹,当 11、22不存在时,加上-p会自动创建

4.2 rmdir

只能删除空的文件夹

4.3 touch

某个位置创建文件,默认当前位置

案例:touch 123.txt          当前位置创建 123.txt 文件

5 移动复制删除

5.1 cp

复制( copy),默认只能复制文件

-r 使得cp 可以复制文件夹

案例:cp 111 222          将111 文件 复制到当前位置,新名字222

案例:cp -r aa /tmp/bb   将当前目录的 aa 文件(或文件夹),复制到 /tmp

5.2 mv

移动(move)移动文件或文件夹

案例:mv 123 345    将123 移动到同位置,并改名345

5.3 rm

删除文件

-r 使得rm 可以删除文件夹

-f  忽略交互提示,直接删

案例:rm 123                 删除文件

案例:rm -r 345               删除文件或文件夹

6 查找

6.1 find

查找文件

格式:find 从哪里查找 -name 要查找的名字

案例:find /tmp -name 123.txt          从/tmp查找123.txt

案例:find / -name 123.txt             全盘查找123.txt

6.2 whereis

查找命令在哪里、源码在哪里、帮助文件在哪里

案例:whereis mkdir

6.3 which

查找命令在哪里

案例:which mkdir

7 权限

7.1 查看权限

ls -l   查看权限,例如显示:-rwxrwxrwx

                          - 表示普通文件,如果是 d 则是文件夹

                          rwx 分三组,分别是 创建者(u)、创建者的组(g)、其他用户(o)

7.2 修改权限

chmod 方式1:用户(ugo)操作符(+-=)权限(rwx)模式

案例:chmod u-w 123   将用户取消写权限

chmod 方式2:八进制模式

r 权值 4

w 权值 2

x 权值 1

案例:chmod 567 123   分析:5 = 4+1   6 = 4+2  7= 4+2+1

此时 相当于设置成  r-x  rw-  rwx

8 链接

8.1 软链接

1 如同快捷方式

2 可以给文件或文件夹创建软链接

3 可以跨分区卷

案例:ln -s 123 222          123 文件或文件夹 创建快捷方式 222

案例:ln -s 123 /tmp/222     123 文件或文件夹 创建快捷方式 222到tmp中

8.2 硬链接

1 是相当于给文件起别名

2 只能给文件创建硬链接

3 不可以跨分区卷

案例:ln 123 222          123 文件 创建 别名 222

案例:ln 123 /tmp/222     123 文件 创建 硬链接 222到tmp中

9 压缩

9.1 压缩文件

默认扩展名为 .tar (无压缩率)

Linux 还支持其他格式的压缩包:.gz  、 .xz   、  .bz2 等(有压缩率)

9.2 压缩格式

-c(创建)       -z(支持 .gz 格式)           <直接写目录>(用于压缩哪里)

tar  -x(解压)       -v(查看详情)                -C (用于解压缩,解压到哪里)

-t(查看)        -f(必写,执行压缩文件)      <不写>

【上面三选一】   【上面任意】                【上面三选一】

9.3 案例

案例:tar -cf 123.tar 555        将555 文件夹 打包 成 123.tar

案例:tar -xzf 123.gz            将123.gz 解压到当前目录

案例:tar -xvf 123.tar -C 555   将123.tar 解压到555 文件夹

案例:tar -tf  123.tar           查看123.tar 内容

10 查看磁盘

10.1 lsblk

查看磁盘

10.2 free

查看内存

11 文件管理

11.1 cat

查看文件所有内容

11.2 head

默认查看文件前10行

11.3 tail

默认查看文件最后10行

11.4 more

分屏查看文件内容

交互命令: 回车 下一行, 空格 或 f 下一屏, b 上一屏 ,  q 退出

11.5 grep

文件内容搜索,返回所在行

用法: grep 要搜索的字符串 文件位置

-n 显示行号

案例:grep a 123.txt     显示包含a的行

12 用户管理(查)

12.1 who

查看当前所有的 登入 用户

12.2 whoami

我是谁

12.3 id

查看指定用户的 uid、gid、groups 编号,默认当前用户

12.4 su

切换用户

用法: su 用户名   ,默认 root

然后,输入 要切换用户的密码

12.5 sudo

使得当前命令,临时具有 root 权限

用法:sudo 命令

然后,输入 当前用户 的密码

注意:要想使用 sudo,满足两个条件

1 知道 当前用户 的密码

2 将当前用户 加入到 /etc/sudoers 中(要想加入,必须知道root密码)

13 用户管理(增)

13.1 useradd

用法:useradd 用户名

参数:

-m  用于同时创建家目录

-g   加入同名用户组

注意:创建用户后,必须立刻创建密码

推荐写法:useradd -m 用户名

13.2 passwd

修改指定用户密码,默认当前用户

用法:passwd用户名

14 用户管理(删)

14.1 userdel

删除指定用户,默认只删除用户,不删除主目录

-r  连同主目录一起删

用法:userdel 用户名

15 用户管理(改)

用法:usermod 参数 用户名

案例:usermod -g 组名 用户名

16挂载和卸载

16.1 mount

挂载,只能root运行

用法:mount     /dev/设备名字    位置

16.2 umount

卸载,只能root运行

用法1:umount  /dev/设备名字   挂载位置          卸载指定位置的设备

用法2:umount  /dev/设备名字                     卸载设备,认真听讲的都懂

17 关机、重启

17.1 poweroff

关机,不需要 root 权限

17.2 reboot

重启,不需要 root 权限

17.3 shutdown

计划关机,需要 root 权限

-h   关机

-r   重启

案例:sudo shutdown -r now      立刻重启

案例:sudo shutdown -h 13:00     下午一点关机

18 帮助

18.1 --help

查看,嵌入到程序内部的帮助

案例:命令 --help

18.2 man

查看man帮助文件

案例:man 命令

18.3 help

查看help帮助文件

案例:help 命令

19 进程

19.1 ps

查看进程

案例:ps -aux             查看进程

19.2 top

动态查看所有进程

案例:top

19.3 kill

杀死进程

用法:kill 操作 进程编号

操作:

-1 重启进程

-9 强制杀死

-15 正常杀死

案例:kill   -9   6666    强制杀死6666编号的进程

20 时间

20.1 cal

默认显示当前月日历

20.2 date

默认显示当前时间

21 环境变量

21.1 alias

当前终端起别名

用法:alias 别名=命令

案例:alias guanji=poweroff

22 shell编程

22.1 基本知识

扩展名 .sh

文件运行

方式1:bash xxx.sh

方式2:./xxx.sh

要求:文件具有可执行权限、

可以指定终端:第一行写:

#!/bin/终端类型

#! /bin/终端类型

注释

单行注释: #

变量

常量,全部是字符串,没有数字,字符,布尔,浮点等

可以不写引号

单引号(支持空格,原样输出)

双引号(支持空格、转义字符)

变量,定义:变量名=常量值

注意:等号两侧不能有空格

只读变量: readonly 变量名

调用:$变量名

参数置换

b等于a的值

如果a不存在,则出错: b=${a?错误,变量不存在}

如果a不存在,则给新的123: b=${a-123}

如果a不存在,则啥也不错: b=${a+123}

如果a不存在,则a和b,都是123: b=${a=123}

位置参数变量

用于 文件执行调用传参、函数调用传参

echo $@  打印传入所有参数形如:”1” ”2” ”3”

echo $*  打印传入所有参数形如:”1 2 3” (有争议)

echo $0  打印文件名

echo $1  打印传入的第一个参数

echo $2  打印传入的第二个有参数

内部变量

echo $HOME

echo $PATH

echo $RANDOM

echo $PWD

echo $?        表示上一条命令的执行状态

0 表示执行成功

非0 表示执行失败

22.2 输入输出

重定向

重定向到文件,文件不存在,则新建

>  覆盖模式

>> 追加模式

<  将文件内容,输入

>& 将命令结果,覆盖模式输出到文件

echo

打印、输出

-n 不换行

-e 强制开启转义(不同shell不一样)

转移字符

\n 换行

\c 不换行,并截断

printf

与 echo 类似,用的不多

read

从键盘输入

-a 当成数组

-p 提示信息

-n 限定输入长度

-r 源字符串模式

没有 -r 当输入 \ ,则 \ 失效

有 -r 当输入 \,则 \ 生效

案例

read a

echo -e $a

输入:123\n456            

结果:123n456

-----------------

read -r a

echo -e $a

输入:123\n456            

结果:123

456

-s 安静模式,用于密码

tee

多用于文件交互,多次输入,Ctrl + C 结束输入,默认覆盖

-a 追加

用法:tee 文件名

22.3 字符串

拼接

挨一块儿,就行

案例:a=111’222’”333”

长度

用法: ${#变量名}

截取

用法:${变量名:位置:长度}

位置:  左边,第一个,是0

右边,第一个是 0-1

长度:如果不写长度,直接截取到尾部

22.4 数组

只有一维,没有多维

定义

案例1:a=(12 34 56 78)

案例2:

a[0]=12

a[1]=34

注意:小括号,空格、回车分隔,可以不定义直接用

数组元素调用

用法:${a[0]} ,一定要用 {} 把数组元素括起来

${a[*]} ${a[@]} 是打印所有元素

数组长度

用法:${#a[*]} ${#a[@]} 数组长度

23 运算度

23.1 算数运算符

Shell 本身,不支持算数运算,但可以使用其他命令,使得支持算术运算

例如:expr

真正用法:$[ 数字 运算符 数字 ]

注意:

支持的运算有:+   -   *   /   %   **

除法是取整运算

** 是 次幂

23.2 关系运算符

用法1:test 变量值 运算符 变量值

注意:

1 必须有空格

2 支持的运算符有:\>  \<  =  ==  !=  -n  -z

这是字符串字符(非数字字符)

3 无显性返回值

4 案例: test 2 \> 100 为真

分析: \> 是 比较字符串,2的ASCII比1大

所以 为真

用法2:test 变量值 操作符 变量值

注意:

1 必须有空格

2 支持的操作符有:-eq    -ne  -gt  - lt  -ge  -le

这是数字字符串

3 无显性返回值

用法3:[ ]

注意:是 test 的简写形式,语法不变 

用法4:增强模式 [[ ]]

注意:是 [] 的增强形式,省掉转义,加上转义会出错

用法5:超强模式 (( ))

注意:支持编程语法,只能纯数字字符串

23.3 逻辑运算符

用法1:test、[]

与: -a   英语单词:and

或: -o   英语单词:or

非: !

用法2: [[  ]]

与: &&

或: ||

非: !

用法2:((  ))

编程语言模式

23.4 文件测试运算符

用法: test   [ ]   [[ ]]

-e  判断          文件或文件夹是否存在

-f  判断是否是    文件

-d  判断是否是    文件夹

-w  判断是否具有  写权限

-r  判断是否具有  读权限

-x  判断是否具有  执行权限

23.5 运算符注意事项

{ }  的运算,里边的变量,不加$一定对,加上就错

(()) 的运算,里边的变量,不加$一定对,加上不一定

[]   的运算,里边的变量,加$一定对,  不加不一定

[[]] 的运算,里边的变量,加$一定对,  不加不一定

24 分支结构

24.1 if … then … else … fi

注意:四个结构,必须在单独行

如果想写一行上,必须 分号 分隔

其他语句,随意换行

24.2 if … then … elif …. then … fi

elif 相当于 嵌套 if ,可以写多个

read a

if ((  a > 90 ));then

  echo 1111

elif  ((  a > 80 ));then

echo 2222

fi

24.3 case … in … esac

a=12

case $a in

11) echo 111;;

12)

 echo 221

echo 222;;

13) echo 333;;

*)  echo 444;;

esac

注意: 11) 表示情况

*) 表示匹配不到时,默认执行的语句

情况的最后,加 ;;

25 循环

25.1 for … in … do … done

a=(1 2 3 4 5 6)

for x in ${a[*]}

do echo $x

done

for x in 1 2 3 4 5 6

do echo $x

done

注意

in 后边是 可遍历常量,不能写括号

25.2 for (( )) … do … done

与编程语言一样

s=0

for(( i=0; i<=100; i++ ))

do

(( s=s+i ))

done

echo $s

25.3 while … do … done

s=0

i=1

while [ $i -le 100 ]

do

s=$[s+i]

i=$[i+1]

done

echo $s

25.4 until … do … done

s=0

i=1

until [ $i -eq 101 ]

do

s=$[s+i]

i=$[i+1]

done

echo $s

注意:

1 until 循环,与while相反

2 until当条件为假,执行循环体

3 until 当条件为真,结束循环体

25.5 控制语句

break

continue

26 函数

26.1 定义函数

方式1

function 函数名() {

… …

}

方式2

函数名() {

… …

}

方式3

function 函数名{

… …

}

26.2 调用函数

函数名

26.3 函数返回值

return

其原理:是返回一个函数执行状态

该状态只能 0-255

一般,我们不用

26.4 作用域

对于变量,默认其作用域 永远是 全局的

要想局部使用变量,加 local 

27 软件安装

27.1 认识一下red hat

Fedora 免费个人版,所有软件都是最新的

Centos Stream  滚动版,过渡版本

RHEL 企业版

27.2 本地安装

安装包扩展名是 .rpm

名字:  软件名称-XXXX.rpm

安装: rpm -ivh 软件名

-i 安装必写的

-v 安装过程

-h 进度条

卸载:rpm -e 软件名称

升级:rpm -U 软件名

查找:rpm -q 软件名称

-q 软件名

-i  详细信息

-l  包含子文件(小写L)

查找全部: rpm -qa

所有软件

可以和管道搭配,rpm -qa | grep abc

27.3 网络安装

增:安装

yum install 软件名称

删:卸载

yum remove 软件名称

改:升级

yum update 软件名称

查:查询

yum search 软件名称    搜索网络中有是否有这个软件

yum list               列出远程所有软件

28 网络(与系统有关)

28.1 命令

查看本地主机名 hostname

临时设置主机名 sudo hostname 主机名字

永久设置主机名 nano /etc/sysconfig/network

查看ip        ifconfig  或 ip a

扫描网络       ping 域名 或 ping [ip]

28.2 网络基本知识

正在上传…重新上传取消

IP:每台电脑,在互联网中,唯一的标志

Mask:划分子网的

Gateway:连接多个不同的子网、网络大门的作用

DNS:用于将字符串网址,转成 数字IP

29服务

restart        重启服务

service 程序名 stop           停止服务

start          开启服务

 status         查看服务

你可能感兴趣的:(linux,bash,运维)