Linux 学习笔记
文件权限信息:
[root@www /]# ls -l total 64 dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin 注释 d r-x r-x r-x 2 root root 4096 Dec 14 2012 bin 0 1-3 4-6 7-9 10 11 12 13 14 15 0: 当为 d 则是目录 当为 - 则是文件; 若是 l 则表示为链接文档(link file); 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置); 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。 1-3:属主读写执行权限 4-6:属组读写执行权限 7-9:其他用户读写执行权限 10:链接数 11:属主 12:属组 13:大小 14:时间 15:文件名
更改文件属组:chgrp -r groupname filename
更改文件属主:chown -r username:groupname filename
更改文件权限:
chmod -r 770 filename
注释:r:4 w:2 x:1 7:读写执行 0:无权限 5:读执行 5:读写 ....
单独增减权限:
chmod -r u + r filename
g - w filename
o = rwx filename
a
目录操作:
ls:列出目录及文件名
ls -l:长数据串列出,包含文件的属性与权限等等数据
ls -a:全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来
ls -d:仅列出目录本身,而不是列出目录内的文件数据(常用)
ls -al:将家目录下的所有文件列出来
cd:切换目录
cd /bin/...
cd ../web
pwd:显示当前所在目录
pwd -p:显示出确实的路径,而非使用连结 (link) 路径
mkdir:创建目录
mkdir -p test1/test2:创建多层目录
mkdir -m 777 test3:创建目录并赋权
rmdir:删除空目录
rmdir -p test1/test2
rm:移除文件或目录
cp:复制
cp -r test /home/user1/test
mv:移动
mv test test1
文件管理:
查看: cat:开头开始查看 tac:最后一行开始查看到着写的 nl:带行号查看 more:一页一页的显示内容 less:与more相似,可以向前翻页 head:只看头几行 head -n 20 filename tail:只看尾部几行 tail -n 50 filename:查看尾部50行 tail -f filename:持续侦测后面所接的档
用户及用户组管理
新增用户: useradd -d /home/user1 -m user1 新增用户user1 指定目录 /home/user1 useradd -s /bin/sh -g group -G root,adm user2 新增用户user2 用户组group 同时属于root,adm组
删除用户:
userdel -r user1 删除用户在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录
修改用户:
usermod -d /home/user2 -g group2 user2
口令管理:
passwd user1
新增用户组:
groupadd group1
删除用户组:
groupdel group1
修改用户组
groupmod -n group2 group3
切换用户组
newgrp group1
批量加用户:参考菜鸟教程
磁盘管理:
df:列出文件系统的整体磁盘使用量 df -h 容量结果以易读的容量格式显示出来 du:检查磁盘空间使用量 fdisk:用于磁盘分区 fdisk -l
挂载硬盘:
df -h 查看硬盘
mkdir /home/mnt
mount /dev/hdc6 /home/mnt 挂载硬盘到目录
umont /dev/hdc6 卸载硬盘
扩容硬盘:
fdisk -l 查看硬盘分区情况
检查cylinders分区扇区总量,start end 扇区占用情况,未占满可以删除分区,重建分区,把未使用的扇区使用上
fidsk /dev/hdc5
p --查看现有分区信息
d --删除分区
n --新增分区
p --新建主分区
5 --与删除的分区/dev/sdc5一样
回车 --start 默认1
回车 --end 默认空间全部使用
w --保存退出
检查:
fdisk -l /dev/hdc5
e2fsck -f /dev/hdc5 检查扩容的分区是否ok
如果磁盘扇区已经把空间全部使用,可以通过给虚拟硬盘新增逻辑卷的方式扩容
fdisk /dev/hdc5
p --查看现有分区信息 检查下id:8e逻辑盘可扩容,不是的话需要调整为8e
t --修改磁盘类型
8e --更改类型 linux lvm
w --保存退出
pvscan --扫描系统连接的所有硬盘
pvcreate /dev/sdb1 --新建物理卷共分配使用 分区也可以做成物理卷,pvcreate /dev/hdc{6,7,8,9}
vgscan --查找系统中存在的lvm卷组
vgextend cl /dev/sdb1 --新硬盘扩容到vg中
lvscan --扫描逻辑卷
lvextend -L +1G /dev/hdc5 cl --给逻辑卷扩容1G
df -h --查看未扩容前
resize2fs /dev/hdc5 --重新加载逻辑卷
df -h --查看扩容后
文本编辑
vi text.txt 编辑文本,或者vim
i 进入输入模式
esc 推出输入模式
:wq 保存退出
:!q 不保存退出
yum命令
yum check-update 列出所有要更新的软件
yum update 更新所有软件
yum install package 安装指定软件
yum update package 更新指定软件
yum list 列出可以安装的软件
yum remove package 卸载指定软件
yum clean 清楚缓存目录软件包及旧的header
shell脚本
vi test.sh #! /bin/bash echo "hello world !!"
注释:#!约定标记,标识用什么解释器执行
chmod +x ./test.sh
#执行权限
#变量
server_name="server1"
echo $server_name
echo ${server_name}
#设置只读变量,就不能再定义变量
readonly server_name
#删除变量
unset server_name
#变量长度
echo ${#server_name}
#截取字符串
echo ${server_name:0:4}
#数组
array_name={arr1 arr2 arr3}
#读取数组
echo ${array_name[0]}
echo ${array_name[*]}
echo ${array_name[@]}
#数组元素个数
echo ${#array_name[*]}
#数组元素长度
echo ${#array_name[0]}
#带参数执行脚本,脚本内接受参数
./text.sh 1 2 3
#! /bin/bash
echo ${0}
echo ${1}
echo ${2}
echo ${3}
#输出所有参数
echo ${*}
#参数个数
echo ${#}
#运算符使用
val=`expr 2 + 2` #注意保留空格
var2=`expr 2 \* 2` #注意乘号需要反斜杠
echo $val
# -eq 检测是否相等
if [ $val -eq $val2 ]
then
echo '==='
else
echo '!=='
fi
# -ne 检查是否不相等
# -gt 左边大于右边
# -lt 左边小于右边
# -ge 左边大于等于右边
# -le 左边小于等于右边
# ! 非
# -o || 类似or
# -a && 类似and
# -z 字符串长度为0返回true
# -n 字符串长度不为0返回true
# $ 字符串不为空返回true
#输出
printf "%-10s %-8s %-4s\n" 1 2 3
echo 1 2 3
#for 循环
for i in 1 2 3 4 5
do
echo $i
done
#while
int=1
while(($int<=5))
do
echo $int
let "int++"
done
#函数
function 1 2
function(){
varchar=hello
echo $1
echo $2
return ${varchar}
}
输入输出重定向
command > file
command < file
command >> file 追加方式