栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux课堂总结

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux课堂总结

Linux课堂总结 课堂提问: 1、文件权限和目录权限的区别:

文件权限

r:可读取此文件的实际内容,如读取文本文件的文字内容等。

w:可以编辑、新增或者修改该文件的内容,但不含删除文件。

x:该文件内容为指令,具有可以被系统执行的权限。

对于文件的rwx来说,主要都是针对 文件的内容 来说的

目录权限

目录的主要内容在记录文件名列表

r:表示具有读取目录结构列表的权限

w:具有移动该目录结构列表的权限,建立新的文件与目录,删除已经存在的文件与目录 ( 对文件名增删查改 )

x:是否可以切换cd,用户能否进入该目录

Linux特权:

SUID:只能作用在二进制程序上,不能作用在脚本上,且设置在目录上无意义 ;执行suid权限的程序时**,**此用户将继承此程序的所有者权限

SGID:执行sgid权限的程序时**,**此用户将继承此程序的所属组权限,可作用于目录上。

Stick-bit:对于一个多人可写的目录,如果设置了sticky,则每个用户仅能删除和改名自己的文件或目录,粘滞位。

Linux7种文件类型:

1、 - 普通文件

2、b 块设备文件

3、c 字符设备文件

4、d 目录

5、l 符号链接文件

6、p 命名管道文件

7、s socket文件(套接字文件,支持虚拟文件)

2、3统称为设备文件,块设备文件包括:硬盘、光盘…一次读取若干个字符,字符设备文件包括:输入输出设备…一个字符一个字符的读取,

第一章 Linux常用命令

1、man用来提供在线帮助,使用权限是所有用户

man+需要帮助的命令

2、help 显示命令的一些帮助信息,如果内容超出了一个屏幕,可通过管道使用more分屏显示信息

例:ls --help | more

3、ls显示目录内容

-a 不隐藏以 . 字符开始的项目,列出所有文件

-A 列出除了 . 及 … 以外的任何项目

-d 对于目录列出目录本身而非目录内的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-app7KmRW-1653832251154)(D:大二下课程Linuximage-20220526144427140.png)]

-l 以长格式显示制定目标的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B9ZlEPPs-1653832251155)(D:大二下课程Linuximage-20220526144529225.png)]

10个字符(文件类型+文件主权限+文件组权限+others)+硬链接数+文件主+文件大小+时间+文件名

-F 在文件名后显示文件类型说明符。/: 目录,*:可执行,@:符号链接,|:管道,=:socket文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A8B2NmYq-1653832251155)(D:大二下课程Linuximage-20220526144744485.png)]

软连接:

​ 类同与windos的快捷方式,给文件创建一个快速的访问路径,它依赖于原文件,与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。当原文件出现问题后,该链接不可用。

ln -s file1path file2path

给文件file1 创建软连接file2

硬链接:

在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。

硬连接的作用是允许一个文件拥有多个有效路径名

命令 ln file1 file2

给文件file1 创建硬连接file2

4、mkdir 建立子目录

mkdir [参数] [目录名]

mkdir zb //在当前目录下创建zb目录

-m 设定权限模式

参数:-p 创建多级目录

5、rmdir 删除目录 (目录为空才可)

rmdir 目录名

6、cd 切换目录

cd 目录名

7、vi 文本编辑器

vi 文件名

在键盘上按i键,进入插入状态,俺ESC键进入命令状态,按+“:” ,进入last行模式,输入wq,保存文件并退出

8、mv 用来为文件或目录改名,或者将一个目录转移到另一个目录中,权限为所有用户

改名:mv a.txt aaa.txt

​ cp 原文件名 目标文件名

移动:mv /usr/cbu@]}引用所有元素值

若用“${数组名[*/@]}”引用时,*拓展为一个词,@拓展为多个词

获得数组大小:${#数组名[@]}

环境变量

Linux环境(Shell环境)由许多变量组成,这些变量决定了用户环境的外观及Shell默认行为,环境变量是被导出的变量。

环境变量可以被当前Shell下启动的子进程所继承,而局部变量不被继承;而且子进程的环境变量独立于父进程,子进程中对环境变量的修改不影响父进程变量的值。

常用环境变量

​ $HOME 用户的注册目录(用户主目录);同~

​ $SHELL 设置用户的Shell类型

​ $USER 保存当前的用户名

​ $PATH 定义查找命令的目录列表,目录名用冒号隔开

​ $PWD 保存用户当前在文件系统的位置

​ $PS1 定义Shell的主提示符

​ $PS2 域内分隔符,包括:空格、跳格、换行

变量导出–export

export变量列表

​ 将用户变量导出为环境变量

​ export var1 var2

​ export var=abc

declare [选项] 变量名

​ -a 声明变量为数组

​ -i 声明为整形

​ -x 声明为环境变量

​ -r 声明为只读变量

位置参数

位置参数及引用

​ 位置参数也称为命令行参数,即:组成命令行的所有元素

​ 在Shell脚本中通过$0、$1 … 进行引用位置参数

为位置参数赋值

​ set 参数值列表

位置参数移动

​ shift [n] 将位置参数(除 $0 )左移n个位置,默认为1

$? 最后一次执行命令的返回码

$$ 当前脚本自己的PID

$ ! 脚本进程最近启动的后台进程的PID

$# 命令行参数的个数

$0 脚本文件本身的名字

$1,$2 第一、第二个命令行参数

“$*” 将所有命令行参数作为一个整体单词来看待

“$@” 将命令行参数 作为多个单词看待

输入/输出

echo–显示命令

​ echo [option][string]

将string的内容按照option指定的方法送到屏幕上进行显示

​ -n 输出后不换行

​ -e 对字符串中的特殊字符进行特殊翻译

​ n 换行

​ t 跳格

read–从键盘读取用户输入到变量中

​ 格式:read 变量名列表

​ read 变量名列表 < file

test测试与 [ ]

格式:test 条件 或 [ 条件 ]

​ 注意:[ 条件 ] 条件和[]前后必须有空格

其中条件:

​ (1)文件特性检测

​ -f 普通文件 -d 目录 -s 文件大小非零 -r 可读 -w 可写 -x 可执行 -L/h 符号链接文件

​ (2)字符串比较

​ -z str 字符串长度等于0

​ -n str 字符串长度不等于0

​ str1 = str2 str1 与 str2 相等

​ str1 != str2 str1与str2不相等

​ (3)整数比较

​ -eq =

​ -gt >

​ -ge >=

​ -ne <>

​ -lt <

​ -le <=

​ (4)逻辑运算

​ !NOT -o OR -a AND

注意:可以用( )来改变运算的优先级,但括号必须转义,如:

​ [ ( $a -lt 0 -o $a -eq 10 ) -a $b -gt 100 ]

特殊条件测试:

​ 不做任何事,返回0;

​ true:总是返回0;

​ false:总是返回255;

#!/bin/bash
echo -n enter filename:
read  fname
echo -n enter words:
read words
echo $words 2>/dev/null >$fname
if [ $? –eq 0 ]
    then
	echo Write successfully
else
	echo write error
fi

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7Q6YkHW-1653832251158)(D:大二下课程Linuximage-20220529174606337.png)]

shell脚本运行条件

#!/bin/sh
count=3
while [ $count -gt 0 ]
  do
	echo -en "Login name:"
	read logname
	echo -en "Password:"
	read pwd
        [ $logname = "root" -a $pwd = "12345" ] && {
	echo "Welcome Here!!!"
	count=0
	}
	let count=count-1
        sleep 5 
  done
结构控制–while
while read vars
do
	command list
done 

遍历file中的行,每读取一行将行中的内容作为read的输入传递给变量,并执行循环体

循环结构–for
for  var  
	do
		command_list	
     done
	从shell的位置变量中取值
例:显示输入的参量
#!/bin/bash
echo you enter $# vars
echo They are:
count=0
for var 
do
	echo  “$count.  $var ”
	let count=count + 1
done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kZLOvYGf-1653832251159)(D:大二下课程Linuximage-20220529175233657.png)]

例:备份指定目录中的所有文件到指定目录中
#!/bin/bash 
[ ! -d $1 -o ! -d $2 ]&&{ 
	echo arguments error;exit 1;
}
for file in $1/* 
do
	 if test -f $file –a –r $file 
	     then
		 cp $file $2 
	fi
done
for((e1;e2;e3))
do
	命令列表
done
Break、Continue、Exit

Break [n] 退出n层循环

continue [n] 跳到第n层循环继续

exit [n] 退出脚本,并设置退出码

函数

格式:

function name(){
	command list
	[ return n ]
}

其中return用于带回函数的返回码(0 ~ 255)

注意:函数必须先定义后使用

函数在当前函数下运行,和调用它的脚本共享变量;而且可以把变量作为定位参数来赋值的方式传递变量

数值处理 let命令

​ let 赋值表达式

​ 使用C的表达式语法;在表达式中引用变量时,前可不加"$";按长整型求值,不检查溢出。

​ 注意:表达式中有特殊字符时,必须用双引号括起来。

​ 指数 运算符:**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SMzyX65W-1653832251159)(D:大二下课程Linuximage-20220529185040870.png)]

$((表达式))扩展

​ 对表达式进行计算、并替换,表达式构成规则同C

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1NLptgov-1653832251159)(D:大二下课程Linuximage-20220529185119795.png)]

expr命令

​ expr表达式

​ 表达式中的变量要用$进行引用,表达式中的每个元素必须用空格隔开

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7zU2cywx-1653832251160)(D:大二下课程Linuximage-20220529185247741.png)]

shell内置命令 eval–命令分析

eval 命令字符串

功能;首先对“命令字符串”进行shell替换,然后执行该命令

#将输出 i 和 第i个参数
for((i=1;i<=$#;i++))
do
	eval echo  $i. $$i
done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7QG6llG-1653832251160)(D:大二下课程Linuximage-20220529190028100.png)]

exec命令

exec 命令

用执行命令所启动的进程替代当前shell进程。

source

source 脚本名 或 .脚本名

功能:将指定脚本在当前shell中执行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i7etlQ5V-1653832251160)(D:大二下课程Linuximage-20220529190243566.png)]

Shell脚本跟踪与测试

通过 b a s h − n v x   脚 本 名 bash -nvx 脚本名 bash−nvx 脚本名,执行脚本

​ -n仅作语法检查 无结果输出

​ -x 显示对命令行完成参数替换后的结果(跟踪模式)

​ -v 在执行命令前将命令原样输出一次

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H5tLU1K4-1653832251161)(D:大二下课程Linuximage-20220529190850681.png)]

第三章 C语言开发工具 工作模式

1、末行模式

2、命令模式

3、输入方式

注:vi启动后,直接进入命令模式

命令模式通过: 进入 末行模式

命令模式通过 i,a,o,O 进入 输入模式

输入模式 通过 ESC 进入命令模式

启动与退出 启动

vim [文件名]

退出

:wq

:q!

进入输入模式

i i i 在光标所在字母前插入,进入输入模式

a a a 在光标所在字母之后插入,进入输入模式

o o o 在当前行之下插入一个新行,进入输入模式

O O O 在当前行之上插入一个新行,进入输入模式

删除、替换

[ n ]   x [n] x [n] x 从光标当前字符开始的n个字符

[ n ]   d d [n] dd [n] dd 从当前行向后的n行

$d $^ 从光标当前位置删除到行首

$d $$ 从光标当前位置删除到行末

r r r 将当前光标处的字符替换为r后键入的字符

R   s R s R s 用字符串的内容替换从当前光标开始的相应字符,直到Esc

u   / . u /. u /. 取消 / 重复上一次操作

c t r l + r ctrl +r ctrl+r 撤销取消

复制、粘贴

[n] yy 复制当前行 / 当前行开始的n行

y $ / ^ / w / % 复制指定内容

:l1,l2y 复制 l1 行到 l2 行的内容

[n]p 粘贴

Vi简单配置

set nu 给每行加行号

set nonu 取消行号显示

set ts=4 设置Tab建跳格数

set sm 括号匹配

设置c语言格式的自动缩进
编辑 用户主目录中的 .vimrc文件
set cindent
set softtabstop=4
set autoindent
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号