linux 随笔

chown
chown 所属用户 所属文件
chown jason jaosn.txt

chgrp
chgrp 所属组 所属文件
chgrp gg jason.txt

umask -S 查看系统默认缺省值权限

修改权限:777-755 022
umask 022

find
find [收索范围][匹配条件]

find / -name jj
find / -iname jj
find / -name *jj*
find / -name *jj
find / -name *jj
find / -name jj*
find / -name jj???

find / -size +204800
find / -size -204800
find /home -user jj

find /etc -cmin -5 5分钟内修改

-amin 访问时间 access
-cmin 文件属性 change
-mmin 文件内容 modify

find /etc -size +1000 -a -size -333333 大于1000 小于3333

find /etc -size +1000 -o -size -333333 大于1000 或者小于3333

locate
updatedb

which
whereis
grep -i sousou /etc/ss.d
grep -v ^# /etc/inittab 排除查找

关机重启命令
shutdown
init

cat /etc/inittab
#修改系统默认运行级别
id:3:initdefault;

查看系统运行级别
runlevel

退出登录
logout

一、软件包管理简介
1、RPM包命名原则
httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd 软件包名
2.2.15 软件版本
15 软件发布的次数
el6.centos 适合的Linux平台
i686 适合的硬件平台
rpm rpm包扩展名

2、RPM包依赖性
?树形依赖: a?b?c
?环形依赖: a?b?c?a
?模块依赖: 模块依赖查询网站:
www.rpmfind.net
二、RPM包管理-rpm命令管理

1、包全名与包名
? 包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
? 包名:操作已经安装的软件包时,使用包名。
是搜索/var/lib/rpm/中的数据库

2、RPM安装
rpm –ivh 包全名
选项:
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
–nodeps 不检测依赖性

3、RPM包升级
rpm -Uvh 包全名
选项:
-U(upgrade) 升级 3、卸载
rpm -e 包名
选项:
-e(erase) 卸载
–nodeps 不检查依赖性

4、查询是否安装
[root@localhost ~]# rpm -q 包名

#查询包是否安装
选项:
-q 查询(query)
[root@localhost ~]# rpm –qa

#查询所有已经安装的RPM包
选项:
-a 所有(all)

5、查询软件包详细信息
[root@localhost ~]# rpm –qi 包名
选项:
-i 查询软件信息(information)
-p 查询未安装包信息(package)

6、查询包中文件安装位置
[root@localhost ~]# rpm –ql 包名
选项:
-l 列表(list)
-p 查询未安装包信息(package)

7、查询系统文件属于哪个RPM包
[root@localhost ~]# rpm –qf 系统文件名
选项:
-f 查询系统文件属于哪个软件包(file)

8、查询软件包的依赖性
[root@localhost ~]# rpm –qR 包名
选项:
-R 查询软件包的依赖性(requires)
-p 查询未安装包信息(package)

1、RPM包校验
[root@localhost ~]# rpm –V 已安装的包名
选项:
-V 校验指定RPM包中的文件(verify) 验证内容中的8个信息的具体内容如下:
?S 文件大小是否改变
?M 文件的类型或文件的权限(rwx)是否被改变
?5 文件MD5校验和是否改变(可以看成文件内容是否
改变)
?D 设备的中,从代码是否改变
?L 文件路径是否改变
?U 文件的属主(所有者)是否改变
?G 文件的属组是否改变
?T 文件的修改时间是否改变
文件类型
?c 配置文件(config file)
?d 普通文档(documentation)
?g “鬼”文件(ghost file),很少见,就是该文件不
应该被这个RPM包包含
?l 授权文件(license file)
?r 描述文件(read me)
2、RPM包中文件提取
[root@localhost ~]# rpm2cpio 包全名 | \
cpio -idv .文件绝对路径

rpm2cpio
#将rpm包转换为cpio格式的命令
cpio
#是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
[root@localhost ~]# cpio 选项 < [文件|设备] 选项: -i:copy-in模式,还原 -d:还原时自动新建目录 -v:显示还原过程 [root@localhost ~]# rpm -qf /bin/ls #查询ls命令属于哪个软件包 [root@localhost ~]# mv /bin/ls /tmp/ #造成ls命令误删除假象 [root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils- 8.4-19.el6.i686.rpm | cpio -idv ./bin/ls #提取RPM包中ls命令到当前目录的/bin/ls下 [root@localhost ~]# cp /root/bin/ls /bin/ #把ls命令复制会/bin/目录,修复文件丢失 三、RPM包管理-yum在线管理 1、常用yum命令 1)查询 [root@localhost yum.repos.d]# yum list #查询所有可用软件包列表 [root@localhost yum.repos.d]# yum search 关键字 #搜索服务器上所有和关键字相关的包 2)安装 [root@localhost yum.repos.d]# yum –y install 包名 选项: install 安装 -y 自动回答yes 3)升级 [root@localhost yum.repos.d]# yum -y update 包名 选项: update 升级 -y 自动回答yes 4)卸载 [root@localhost yum.repos.d]# yum -y remove 包名 选项: remove 卸载 -y 自动回答yes 2、YUM软件组管理命令 [root@localhost ~]# yum grouplist #列出所有可用的软件组列表 [root@localhost ~]# yum groupinstall 软件组名 #安装指定软件组,组名可以由grouplist查询出来 [root@localhost ~]# yum groupremove 软件组名 #卸载指定软件组 四、源码包管理 五、脚本安装包与软件包选择 1、命令格式与目录处理命令 ls ls -la /etc ls -l 查看详细信息 ls -a 查看隐藏文件 ls -lh 统计文件大小 ls -ld /etc 统计当前文件属性 ls -i 当前文件的ID -为文件 d为目录 l为软连接 ‘-’re-r–r– u g o u所有者 g所属组 o其他 2、目录处理命令 mkdir 文件名 mkdir -p 创建递归文件 eg:mkdir -p ee/ee1 cd 切换目录 pwd 显示当前目录的绝对路径 rmdir 删除空目录 cp 复制文件或者目录 文件复制 cp dd.txt ee/dd.txt 目录复制 cp -r dd ee/dd 3、文件处理命令 touch 文件名 创建文件 cat 文件名 查看文件 cat -n 文件名 查看文件同时标明行号 tac 查看文件 倒序 more 查看大文件 (空格) 或者 f 翻页 enter 换行 q或 Q 退出 less 查看文件 /搜索文件 n 查找搜索的同样 enter 换行 q或 Q 退出 head 查看文件的前几行 head /etc/service 默认查看10行 head -n 8 /etc/service head -n 8 /etc/service tail 查看文件的末几行 tail -n 8 /etc/service tail -f /etc/service 动态的时时信息 4、链接命令 ln -s t.txt t.soft 软链接,相当于win链接 ln t.txt t.hard 拷贝同步更新,不可跨分区,不可将文件目录变为硬链接 权限管理命令 chmod [{ugoa}{+-=}[文件或目录]] r –4 w –2 x –1 文件帮助命令 man 查看配置文件 man passwd 1(命令帮助) 5(配置文件帮助) whatis ls 查看ls简短信息 apropos 配置文件 info date [MMDDhhmm[[CC]YY][.ss]] help umask 用户管理命令 useradd /usr/sbin/useradd passwd 用户名 who 查看当前系统登录的用户 w uptime 压缩解压命令 .gz .tar .zip 压缩文件,不保留源文件 gzip 文件 解压缩 gunzip 文件 gizip -d 文件 tar -czvf aa.tar aa tar -czvf aa.tar.gz aa -c 创建 -v 显示压缩信息 -f 压缩文件 -z 创建打包的同时压缩 -x 解压 zip -r aa.zip aa unzip aa.zip tar -cjf aa.tar.bz2 aa tar -xjf aa.tar.bz2 bzip2 -k aa 生成aa.bz2 bunzip2 -k aa.bz2 -k 保留源文件 网络命令 write < 用户名> (Ctrl + D 保存)
wall [Message]
ping -c 3 192.168.150.130
ifconfig
mail[用户名]
last 用户登录信息

lastlog 查看用户登录信息
lastlog -u ID号

traceroute baidu.com

netstat -tlun 查看本机监听的端口
netstat -an 查看本机所有的网络连接
netstat -rn 查看本地路由表

setup 配置网络

mount 挂载命令

mount /dev/sr0 /mnt/cdrom/ 挂载
umount /dev/sr0 卸载

Vim 工作模式

插入命令

a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行首前插入
o 在光标下插入新行
O 在光标上插入新行

定位命令
:set nu 设置行号
:set nonu
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行

$ 移至行尾
0 移至行首

删除命令
:n1,n2d 删除指定范围的行
D 删除光标所在处到行尾内容
dG 删除光标所在行到文件末尾内容
dd 删除光标所在行,ndd删除n行
nx 删除光标所在处后n个字符
x 删除光标所在处字符

复制和剪切命令
命令 作用
yy 复制当前行
nyy 复制当前行以下n行
dd 剪切当前行
ndd 剪切当前行以下n行
p、P 粘贴在当前光标所在行下
或行上

替换和取消命令
命令 作用
r 取代光标所在处字符
R 从光标所在处开始替换字
符,按Esc结束
u 取消上一步操作

搜索和搜索替换命令
命令 作用
/string 搜索指定字符串
搜索时忽略大小写 :set ic
n 搜索指定字符串的下一个出现位置
:%s/old/new/g 全文替换指定字符串
:n1,n2s/old/new/g 在一定范围内替换指定字符串

保存和退出命令
保存修改并退出(文件所有者
及root可使用)
:wq!
:q! 不保存修改退出
ZZ 快捷键,保存修改并退出
:wq 保存修改并退出
:w new_filename 另存为指定文件
:w 保存修改
命令 作用

权限管理

ll -d 文件 查看文件权限所属组所属用户

1.ACL权限
a.ACL权限简介与开启
df -h 查看当前分区
mount -o remount,acl / 开启ACL支持,重启失效

vi /etc/fstab
修改 /dev/mapper/vg_jason-lv_root / ext4 defaults,acl
mount -o remount /
b.查看与设定ACL权限
getfacle 文件名
查看ACL权限

setfacl 选项 文件名
-m 设定ACL权限
setfacl -m u/g/m:用户名/组名/mask最大权限:权限 文件夹
-x 删除设定的ACL权限
-b 删除所有的ACL权限
-d 设定默认ACL权限
-k 删除默认ACL权限
-R 递归设定ACL权限

c.最大有效权限与删除ACL权限
1、最大有效权限mask
mask是用来指定最大有效权限的。如果
我给用户赋予了ACL权限,是需要和
mask的权限“相与”才能得到用户的真
正权限
setfacl -m m:rx 文件名
setfacl -m m:rx /project/
setfacl -x g:用户组 /project/

2、删除ACL权限
[root@localhost /]# setfacl -x u:用户名 文件名
#删除指定用户的ACL权限

[root@localhost /]# setfacl -x g:组名 文件名
#删除指定用户组的ACL权限
[root@localhost /]# setfacl -b 文件名
#会删除文件的所有的ACL权限
d.默认ACL权限和递归ACl权限
1、递归ACL权限
 递归是父目录在设定ACL权限时,所有的子文
件和子目录也会拥有相同的ACL权限。

 setfacl -m u:用户名:权限 -R 文件名

2、默认ACL权限
默认ACL权限的作用是如果给父目录设定
了默认ACL权限,那么父目录中所有新建
的子文件都会继承父目录的ACL权限。

setfacl -m d:u:用户名:权限 文件名

2.文件特殊权限
a.SetUID
①只有可以执行的二进制程序才能设定SUID权限
②命令执行者要对该程序拥有x(执行)权限
③命令执行者在执行该程序时获得该程序文件属主的身份
(在执行程序的过程中灵魂附体为文件的属主)
④SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

 passwd命令拥有SetUID权限,所以普通可以修
改自己的密码
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 25980 2月 22 2012 /usr/bin/passwd

 cat命令没有SetUID权限,所以普通用户不能查
看/etc/shadow文件内容
[root@localhost ~]# ll /bin/cat
-rwxr-xr-x 1 root root 47976 6月 22 2012 /bin/cat

b、设定SetUID的方法
4代表SUID
 chmod 4755 文件名
 chmod u+s 文件名

c、取消SetUID的方法
chmod 755 文件名
chmod u-s 文件名

d、危险的SetUID
关键目录应严格控制写权限。比如“/”
、“/usr”等
用户的密码设置要严格遵守密码三原则
对系统中默认应该具有SetUID权限的文件
作一列表,定时检查有没有这之外的文件
被设置了SetUID权限

b.SetGID
1、SetGID针对文件的作用
 只有可执行的二进制程序才能设置SGID权限
 命令执行者要对该程序拥有x(执行)权限
 命令执行在执行程序的时候,组身份升级为该
程序文件的属组
 SetGID权限同样只在该程序执行过程中有效,
也就是说组身份改变只在程序执行过程中有效

2、SetGID针对目录的作用
普通用户必须对此目录拥有r和x权限,才
能进入此目录
普通用户在此目录中的有效组会变成此目
录的属组
若普通用户对此目录拥有w权限时,新建
的文件的默认属组是这个目录的属组

3、设定SetGID
2代表SGID
 chmod 2755 文件名
 chmod g+s 文件名
4、取消SetGID
chmod 755 文件名
chmod g-s 文件名

c.Sticky BIT

chattr权限

chattr +i 文件 加上chattr属性
chattr -i 文件
lsattr -a 文件 查看chattr

1、chattr命令格式
[root@localhost ~]# chattr [+-=] [选项] 文件或目录名
+: 增加权限
-: 删除权限
=: 等于某权限
选项
 i:如果对文件设置i属性,那么不允许对文件进行
删除、改名,也不能添加和修改数据;如果对目录
设置i属性,那么只能修改目录下文件的数据,但
不允许建立和删除文件。
 a:如果对文件设置a属性,那么只能在文件中增加
数据,但是不能删除也不能修改数据;如果对目录
设置a属性,那么只允许在目录中建立和修改文件
,但是不允许删除
2、查看文件系统属性
[root@localhost ~]# lsattr 选项 文件名
选项:
-a 显示所有文件和目录
-d 若目标是目录,仅列出目录本身的属
性,而不是子文件的

系统命令sudo权限

1、sudo权限
root把本来只能超级用户执行的命令赋予
普通用户执行。
sudo的操作对象是系统命令

2、sudo使用
[root@localhost ~]# visudo
#实际修改的是/etc/sudoers文件

root ALL=(ALL) ALL
#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
# %wheel ALL=(ALL) ALL
#%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
3、授权sc用户可以重启服务器
[root@localhost ~]# visudo
sc ALL= /sbin/shutdown –r now
4、普通用户执行sudo赋予的命令
[root@localhost ~]# su – sc
[sc@localhost ~]$ sudo -l
#查看可用的sudo命令
[lamp@localhost ~]$ sudo /sbin/shutdown -r now
#普通用户执行sudo赋予的命令

Jason.wang

When you find your talent can't afford to be ambitious, be quiet and study !

You may also like...