学习Linux笔记
简介
- Linu发行家族:Debian Fedora Suse 其他发行家族
- 宝塔面板:Bt-Panel: http://39.98.121.54:8888/21376444
username: phjzpulb
password: c26f5e04 - 系统启动过程
- 主要目录介绍
- /etc : 存放所有系统管理所需要的文件和目录
- /home: 用户的主目录,一般目录名是以用户的账号命名的
- /lib:Linux库就像Windows里面的的.dll 共享库
- /root:超级目录
- /usr:用户应用程序还有文件都放在这个目录下 类似于 program files
- /var:日志文件
文件属性
-
文件属性
-
权限
-
更改文件属性
chgrp [-R] 属组名 文件名 //-R属性递归更改文件属组,整个目录会更改 chown [-R] 属主名 文件名 //更改属组名 chown [-R] 属主名:属组名 文件名 //同时更改属组名 和 属主名 chmod [-R] xyz 文件或者目录 ###通过数字更改权限,权限分数: r:4 w:2 x:1 chmod [-R] u=...,g=..., o=..., 文件名 ###直接填写属性名字 a为all
文件目录管理
pwd -P(显示出确实的路径)#显示当前目录
cd #切换目录
ls -a(隐藏文件显示参数) -d(仅列出目录本身)-l(列出详细目录)
mkdir -[mp] #m参数是指定属性名字 p参数指定递归创建 创建目录
rmdir [-p] # 删除空的目录 p参数:递归删除 连同上一级目录也删除
cp [-adfilprsu] 来源档 目标档 #复制文件
rm -[fir] 文件或者目录 # 参数f:忽略不存在的文件,不存在警告信息 参数r:递归删除
mv -[fiu] 来源 目标 #移动文件目录,或者修改名称
Linux用户和用户组管理
-
系统用户账号的管理
useradd 选项 用户名 #参数 -c:一段注释描述 -g:所属用户组 -d:用户目录 -s:登录的shell程序 -u:用户号 userdel -r 用户名 #删除用户 参数r:连同目录一起删除 usermod 选项 用户名 #修改账号 su username #更改用户
-
用户组的管理
实际上就是对etc/group文件的更新
groupadd 选项 用户组 #参数g:用户组标识号码 增加新的用户组 groupdel 用户组 # 删除用户组 groupmod 选项 用户组 #参数 g: 新的组标识号 -n新的组名字 newgrp root #一个用户同时在多个组里面 可以使用此命令切换组别 passwd 选项 用户名 #用户口令管理 参数 l:锁定口令禁用帐号 u:口令解锁 d:使帐号无口令 -f:强迫用户下次登录修改口令
-
与用户账号相关的系统文件
-
/etc/passwd文件是用户管理工作的一个文件打开它显示
tanyongfeng:x:1002:1002::/home/tanyongfeng:/bin/bash
其中每一行都对应一个用户,每行记录又被冒号分割为7个字段 具体含义为
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
-
用户名:长度<8个字符,由大小写还有数字以及/组成
-
口令:为了加密,密码在这个文件中显示特殊字符"x".真正加密后的密码在/etc/passwd文件中
-
用户标识:是一个整数代表一个用户名(如果几个用户的标识符号一样,系统把他们看作是一个账户,但是口令等不同) 0是 超级用户的root的标识符 1~99系统保留,普通用户从100开始最大为500
-
组标识符号:对应/etc/group中的每一条记录
-
注解性描述:记录着一些个人情况 可以用作finger命令输出
-
主目录: 用户的起始工作目录
-
登录shell:用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
-
系统中有一类用户成为伪用户:有记录但是不能登录 因为shell为空 为了方便管理 常见伪用户
bin 拥有可执行的用户命令文件 sys 拥有系统文件 adm 拥有帐户文件 uucp UUCP使用 lp lp或lpd子系统使用 nobody NFS使用
-
-
/etc/shadow文件是经过pwconv命令将/etc/passwd文件生成的,只有超级用户才拥有该文件的权限.
mysql:!!:18449:0:99999:7::: 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- 登录名:与用户名一致
- "口令"字段存放的是加密后的用户口令字,长度为13个字符。如果为空,则对应用户没有口令,登录时不需要口令;如果含有不属于集合 中的字符,则对应的用户不能登录。
- 最后一次修改时间:1970年1月1日距离上次修改口令的时间
- "最小时间间隔"指的是两次修改口令之间所需的最小天数
- "最大时间间隔"指的是口令保持有效的最大天数。
- "警告时间"字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
- "不活动时间"表示的是用户没有登录活动但账号仍能保持有效的最大天数。
- "失效时间"字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
-
用户组文件
用户组信息文件保存在 /etc/group文件中
tan4:x:102: 组名:口令:组标识号:组内用户列表
-
批量增加用户方法
-
按照passwd密码格式新建密码文件
us001:X:1000:1000::/home/us001:sbin/bash us002:X:1001:1001::/home/us002:sbin/bash #保存为user.txt
-
运行newusers命令,从刚创建的文件中导入数据,创建用户:
newusers <user.txt
-
创建一个空口令文件内容格式用户名:口令
us001:123456 us002:123456 #保存为pass.txt
-
运行chpasswd命令
chpasswd <pass.txt
-
可以执行命令
vipw
或vi /etc/passwd
检查/etc/passwd
文件是否已经出现这些用户的数据,并且用户的宿主目录是否已经创建
-
-
Linux磁盘管理
- 常用命令
df #列出文件系统的整体的性能问题
du #检查磁盘空间使用量
fdisk #用于磁盘分区
-
命令详解
-
df命令
功能:检查磁盘空间占用量
df [-ahikHtm] [目录或者文件名] #-a:列出所有的文件系统,包括特有的 /proc等文件系统 #-k -m -h:分别以KBytes,MBytes以及自动方式进行显示 #-H:以 M=1000K 取代 M=1024K 的进位方式;
-
du命令
功能:对文件和目录磁盘使用情况的查看
du [-ahskm] 文件或目录名称 #-a:列出所有的文件与目录容量 #-h :同上 #s:列出总量 # -k,-m
-
fdisk
功能:fdisk是Linux的磁盘分区表操作
fdisk [-l] 装置名称
-
磁盘格式化
mkfs [-t 文件系统格式] 装置文件名 #参数 -可以接文件系统格式
-
yum
-
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
-
yum语法
yum [options] [command] [package ...] 参数: options:可选 -h:帮助 -y安装过程选择全为yes -q:不显示安装过程 command :要进行的操作 package:操作的对象
-
常用命令
列出需要更新的软件清单:yum check-update 更新所有的软件命令: yum update 仅安装指定的软件命令: yum install <package_name> 仅更新指定的软件命令: yun update <package_name> 列出所有可以安装的软件 : yum list 删除软件命令 : yum remove <package_name> 查找软件包命令: yum search <keyword> 清除缓存命令: yum clean packages;清除缓存目录下的软件包 yun clean headers : 清除缓存目录下的headers yum clean oldheaders : 清除缓存目录下旧的headers yum clean / yum clean all :清除缓存目录下的软件包以及旧的headers
Shell编程
-
shell脚本是一个应用程序,提供通过界面访问系统内核的服务。
-
编写shell
-
shell运行方法
1.编写shell脚本,保存为test.sh #!/bin/sh #!是一个约定的标记,告诉系统要用什么脚本需要什么解释器执行,使用那一种Shell echo "hello world!" 2.运行shell脚本 chmod 777 ./test.sh chmod +x ./test.sh #增加运行权限 ./test.sh #作为可执行程序运行脚本 /bin/sh test.sh #作为解释器运行参数 #注意运行时,前面不能“./”应为没有的话,他回去PATH路径下去照 如果文件不在PATH路径下就会报错。
-
Shell变量
1.定义shell变量 your_name="tanyongfeng" #变量名和等号之间不能有空格! #命名只能使用英文字母,数组和下划线。首个字母不能以数字开头 #中间可以有下划线 不能有空格 #关键字问题 2.使用变量 $your_name ${your_name} #使用一个变量只需要在前面加空格就行 #变量名外部的花括号是可选的 3.只读变量 $my_name="tanyongfeng" readonly my_name #使用readonly命令可以将变量定义为只读变量,只读变量不能改变 4.删除变量 unset my_name #删除变量 5.变量类型:局部变量 环境变量(全局变量) shell变量
-
Shell字符串
1.字符串定义 Your_name="pig" str1='You are $Your_name' str2="You are \“$Your_name\”" #单引号中间不能加变量 双引号中间可加变量 #双引号可以出现转移字符 2.获取字符串长度 echo ${#Your_name} #输出3 3.提取子字符串 echo ${Your_name:1:2} #输出pi 4.查找子字符串 echo `expr index "$Your_name" ig` #查找i或者g的位置(哪个字母先出现就先计算哪个) 5.字符串截取 var=http://tanyongfeng.xyz/123.html echo ${#*//} #删除从左开始第一个//之前的字符 输出 tanyongfeng
-
Shell数组
#bash支持一维数组(不知道多维数组),并咩有限定数组的大小。 1.数组的定义 数组名=(值1 值2 值3...) array_name=(value1 value2 value3) #一起赋值 array_name[1]=value1 array_name[3]=value3 ....................#可以使用不连续的下标 2.读取数组 ${数组名[下标]} #获取下标为值的数 ${数组名[@]} #获取全部元素
-
Shell注释
1.开头为#的行就是注释。 2.多行注释 :<<EOF 注释行1 注释行2 ... EOF
-
Shell传递参数
当执行参数的时候,向脚本
-