linux运维常用命令复习笔记汇总(上)(笔记个人用)

linux运维常用命令学习汇总(上篇)

  • 1.文件管理
  • 2.用户和用户组管理
  • 3.权限
  • 4.进程管理

##########1.文件管理

ls cd pwd touch vim cat head grep more tail -n

mkdir -p(连同父目录一同创建) 文件路径
cp -r(递归复制目录) 源文件路径(可多个,空格隔开) 目标文件夹
mv 源文件路径(可多个,空格隔开) 目标文件夹
rm -rf 文件或文件夹

附:使用mv是注意源与目标的名称重复问题,同时 为文件或者文件夹才能覆盖,同一路径下移动则是重命名的效果。rm的使用搭配管道符会加速,另外rm从某种意义上说是偏违法行为需要谨慎使用,建议rm前先cp备份或者该用mv。区别好操作对象是普通文件还是目录,搭配*使用

mkdir /home/{1,2}: /home/1,/home/2
mkdir /home/{a/{b,c},d} -v(查看创建过程):
/home/a /home/a/b /home/a/c /home/d

#######################用户与用户管理
/etc/passwd:
用户名:密码:uid:gid:描述:HOME:shell
(uid:0特权用户roor 1~999系统用户1000+普通用户,shell是命令解释器,定义接收执行命令 bash /bin/bash /sbin/nologin没有shell,不让指定用户登录与操作系统)

/etc/shadow:
用户:口令:最后一次修改时间(1970.1.1):最小间隔时间(两次修改密码的时间间隔):最大时间间隔(x天必须修改密码)(密码有效期):警告时间(提示该密码时间,剩x天到最大时间间隔,这天开始提示改密码):不活动时间(用户不登录系统,超x天后冻结账号):失效时间(x天后账号失效):保留
!!密码过期 *账号被锁定

/etc/group:
组名:密码:gid:组员
通常一个组中的成员相同,便于用户授权,管理员组wheel
useradd会同时创建于用户同名的组 -u指定uid -d指定家目录 (家目录默认在/home下,也可以搭配自己创建的家目录,不过建议同时准备好各个文件夹)-g指定用户的基本组 -G指定用户的附加组
useradd要搭配上passwd用效果才完整

相关常用命令:id passwd whoami
userdel 会删除与用户同名的组 -r连同家目录一并删除
usermod 修改用户属性,与useradd参数相似,-s shell(只要不是正常的shell,都无法登录系统获得操作系统的可用途径,例如shell设置为a与设置为/sbin/nologin的效果是一样的 -g -G
groupadd 组名 -g gid
groupdel 组名

gpasswd -d 用户名 组名 -a添加 -M设置组的成员列表 -A设置组的管理员列表 -R限制其成员访问组1、gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow的管理工具,用于指定要管理的工作组。

2、选项详解:

  -a : 添加用户到组

  -d : 从组删除用户

  -A:指定管理员

  -M:指定组成员和-A的用途差不多;

  -r:删除密码;

  -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。

3、实例:

 3.1 将userA添加到groupB用户组里面:  

gpasswd -a userA groupB
  注意:添加用户到某一个组可以使用 usermod -G groupB userA 这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉,

             所以想要添加一个用户到一个组,同时保留以前添加的组时,请使用gpasswd这个命令来添加操作用户。

 3.2 将userA设置为groupA的群组管理员:

gpasswd -A userA groupA

groupmod -g
groupmod –n 新组名 原组名,为一个组更改名字 修改的是/etc/group文件
语  法:groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]
补充说明:需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。
参  数:
 -g <群组识别码>  设置欲使用的群组识别码。 groupmod -g 505 bbb //把bbb组的识别码改为505(原来是504!)
 -o  重复使用群组识别码。

-n <新群组名称>  设置欲使用的群组名称。 groupmod -n bbb aaa //把aaa组名改成bbb.

/etc/gshadow不太用的上感觉
基本组:会随用户创建而创建,组名与用户名是相同的
附加组:相对用户而言的组,可多个
有效组:顾名思义就是有效【狗头】,会影响用户创建的文件等等的默认属组
groups:可以查看用户的有效组,第一个输出的是有效组
newgrp:切换有效组,可以是切换前提是你支持这个用户组,可以用exit退出newgrp的环境
从某个组中删除某个用户也可以用ggroupadd重新设置一次该用户的组相关属性。
groupdel不能删除用户的主组

提权就是对普通用户提升权限,获得root的权利
永久提权:su -用户名
临时提权:sudo 完成部分特权命令 用户名 登录的主机=命令
使用方法是sudo 命令

vim /etc/sudoers %wheel ALL=(ALL) ALL
%是组,没有%是用户
user 登录的主机=(代表的用户)命令
允许whell用户组中的用户在不输入该用户的密码的情况下使用所有命令,将用户加入这个组中即useradd 用户名 -G 组

####################################权限管理
普通权限(基本权限UGO):
三类对象属主u,属组g,其他人o,特殊对象a.(eg:±,u=7,u=rwx,u+r,u=r-x)
权限的三种普通类型读r4,写w2,执行x1(目录要有x权限才能进入使之变成工作目录,文件中的命令要有执行权限才生效)

chmod 选项 对象赋值符权限 文件或目录 -R(连同目录底下的文件一同设置)
ls命令:
类型权限 链接 属主 属组 大小 时间 文件名
常用参数-aldh
交互式命令read -p " "变量(常用于shell脚本中)

(/root特殊,普通用户即使有权限页操作不了) chown 属主.属租(用户名和组名可单个,单个组名时.组名)文件 chgrp 组名 文件

ACL权限(Access Control List):

setfacl 【选项】 对象(u,g,o):对象名(用户名可以是先不存在):权限(rwx) 文件名
选项:-m设置 -x删除 -b删除所有的ACL参数 -k删除默认的ACL参数 -R递归设置 -d设置默认的ACLj即回复默认ACL权限,只对目录有效,该目录下新建的数据会引用此默认值
eg⭕️:rwx
getfacl filename

linux运维常用命令复习笔记汇总(上)(笔记个人用)_第1张图片

对一个文件使用ls时看到有个+为附加权限ACL,注意此时权限叠加了,ls显示的不够直观容易误导一定要用getfal查看,两者显示的有偏差,以getfacl为准

watch -n 数字 “命令”:每个“几秒“刷新一次,便于观察

特殊权限:
suid(4)属主执行位,sgid属组执行位,sbit其他人执行位。临时提权效果
suid:当一个用户调用该文件时拥有属主的能力
eg:chmod u+s 文件名(文件本身没有执行权限会显示为S)
通常root运行执行文件页就是命令是是root超管权限,其他用户使用的是用户的权限
1.仅对二进制程序有效
2.执行者对该程序有x权限
3.本权限仅在执行该程序过程中有效
4.执行者经具有该文件拥有者的权限

sgid:当一个用户调用该文件时拥有属组的能力
1.对二进制程序有效
2.执行者最该程序要有x权限
3.执行者将拥有属组的权限
4.对目录有效
5.用户对于此目录有r与x权限时,该用户可以进入此目录
6.用户在此目录下的有效用户组将会变成该目录的用户组
7.用途:若用户在此目录下有w权限(可以建立文件),则用户建立的新文件的用户组与此目录的用户组相同

sbit:
1.对目录有效
2.用户对此目录有w与x权限,即写入的权限
3.用户在该目录下建立的文件或目录,只有自己和root菜油权利删除该文件

eg:chmod 7555 文件名 ——>r-sr-sr-t

隐藏权限:

chattr:
erg:chattr -i filename\dir
a文件值允许追加操作(日志文件)
A不允许更新文件的访问时间
c文件在磁盘上自动压缩
d不能只用dump命令备份文件
D更改会同步保存在磁盘上
i不能更改和重命名和删除文件(只有root能设置此属性)
lsattr:
eg:lasttr filename|dir
a 显示所有文件包括隐藏文件的隐藏权限
d 仅目录
R 连同子目录的数据一起列出来

权限掩码:

umask 掩码(例如0022) 临时修改系统的掩码权限

默认0122,则默认创建的文件权限0644,目录0755。
文件一般会默认拿掉执行权,是系统保护自身的动作。
linux运维常用命令复习笔记汇总(上)(笔记个人用)_第2张图片

#########################进程管理

磁盘即外存中的文件加载到内存中成为进程,加载到内存中会获得cpu网络资源等等,cpu的操作对象是内存。
系统进程system,所有进程都是系统进程的后代,都可以创建子进程,拥有状态,running® sleep(S)zombie(Z)stop(T)
进程可以理解为一个执行中的文件,拥有状态。子进程有父进程fork出来,具备一定的父进程资源,可以继承父进程的环境变量(当用户取得一个shell时,系统会给他分配一定的内存空间,父进程的export行为会是的变量成为环境变量到这么个内存空间中,子进程所以可以使用该变量。父进程一般不具备子进程的变量)(括号里是我的理解,一直懒得看计算机概论方面的东西所以智力的理解可能会有些许不太正确的地方,欢迎读者朋友留言评论指出,另外写到这里时我去终端进行了几次简单的进程间的变量探究,总结出一个现象不影响实际的操作,过程留意下父子进程的变量变化就ok了,影响不大,读者也可以看看相关书或资料来加深理解)

(说到书,推荐鸟哥的私房菜那两本书,大一下买的,我入坑linux的书籍,近期有一本刘遄老师《linux就该这么学》,我找了pdf版看了大概,还行吧,就是有些关于服务器的内容比鸟哥的服务器篇新一些毕竟是新书,基本的系统操作教学齐全,多了一些新一点的东西,快速入门值得选,缺点就是远远没有鸟哥的那两本书来的详细和系统,鸟哥的书前期入门用,后期当工具书用很舒服,前期看时耐心一点就行。说这么多也因为看到最近很多网友在争论这两款书,尤其是知乎部分哗众取宠写水文的“白吃”,连这两款书都没看过的人,在那里搞一棍打死行为,无脑吹捧其中牟一本。。。)

静态查看进程ps(process status)
常用的是ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
除了常见的几项,其中VSZ为占用的虚拟内存(硬盘),RSS为占用的实际内存
TTY为该进程所在的终端入pts/0和?(字符界面multi-user.target),START是该进程启动的时间
进程号pid
ps -l:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
ps aux --sort 列名:
eg:ps aux --sort=+%cpu或ps aux --sort=-PID
ps axo: 自定义显示
eg:ps aox 列名,列名列名

动态查看进程top

惯用的运行文件方式./
sleep 20 让系统休眠20秒,可中断,一般测试使用。

转下篇了,累,整理复习笔记比我想象的要累,一下午就这丁点,本来还想把当初鸟哥那两本书的学习笔记整理成成一篇文章想想还是算了,三分钟热度【狗头】。

你可能感兴趣的:(主要#笔记资料,linux,centos,运维)