linux 系统基础管理命令

linux的文件系统 有 ext2 ext3 ext4 xfs swap
windows 的有 fat vfat ntfs
cd 切换到另外的目录
pwd 显示当前目录
ls 选项 目录
ls -lhd /etc 以长格式显示 并用易读单位显示 和目录本身
ls -R /etc/ 递归 列出目录
lscpu 查看cpu
cat /etc/redhat-release 查看linux的版本
cat /proc/meminfo 查看内存
cat -n /etc/passwd 查看内容并显示行号
tac /etc/passwd 反向查看内容
umane -a 查看 内核
hostname 查看主机名
hostnmaectl set-hostname abc 设置主机名
ifconfig | grep eth0 查看 网卡 信息
ip route 查看路由
ip a 查看网卡信息
powerof 或 shutdown 关机 reboot 重启 halt -f 强制重启
mkdir -p /abc/sa/sd 如果父目录不存在则创建目录
touch abc 创建文件
less /etc/passwd 分屏阅读
more /etc/passwd
head -n 5 /etc/passwd 查看前5行的内容、
tail -n 5 /etc/passwd 查看后5行的内容
tail -f /etc/passwd 动态 查看文件内容
grep -v root /etc/passwd 过滤 没有root 的行 – -v,取反匹配 – -i,忽略大小写
grep -i root /etc/passwd 忽略大小写过滤有root 的行
man 命令 不会找男人
命令 --help 命令不会求帮助
mount /dev/vdb1 /opt 挂载设备到opt目录
umout /opt 取消挂载
mount -a 检测挂载点有没有问题同时挂载 所有

通配符 * 任意多个字符 ? 单个字符
ls -d /m* 列出以m开头的任意多个字符的目录
ls -d /m?? 列出 以m 开头的两个字符的目录
[a-z] 多个字符或连续范围内的一个,若没有则忽略
{aa,dd,cc} 多组不同的字符串,全匹配
ls -d /m[a-y]*
ls -d /m{ss,dfd,dd}

alias 别名名称=“实际的命令” 为命令设置别名
unalias 别名名称 取消别名
cp -rp /etc/ /opt 保持目录的属性复制
rm -rf abc 强制递归删除
mv /ab /opt 移动目录到并改名为opt
ssh -X [email protected] 以图形界面的方式 用root的用户登录到机器

– rpm -q 软件名…
– rpm -ivh 软件名-版本信息.rpm…
– rpm -e 软件名…

[root@server0 ~]# rpm -q firefox #查询是否安装一个程序
rpm -ivh vsftpd-3.0.2-10.el7.x86_64.rpm #安装
[root@server0 ~]# rpm -q vsftpd #查询是否安装成功

[root@server0 ~]# rpm -e vsftpd #卸载vsftpd程序

[root@A ~]# nmcli connection up ‘System eth0’ 激活网卡

指定DNS服务器地址
• 配置文件 /etc/resolv.conf
– 关键记录:nameserver DNS服务器地址

[root@A ~]# vim /etc/resolv.conf
nameserver 172.25.254.254

echo nameserver 172.25.254.254 > /etc/resolv.conf 输入内容 覆盖/etc/resolv.conf
echo 1+1 | bc 用1+1 管道给bc运算计算结果

grep -v ‘^#’ /etc/hhtpd.conf 不过滤以 #开头的行
grep ‘^$’ /etc/hhtpd.conf 匹配空行

[root@server0 ~]# grep ‘nsd01’ /etc/passwd
nsd01❌1002:1002::/home/nsd01:/bin/bash
用户名:密码占位符号 :UID:GID:用户的描述信息:家目录所在位置:解释器
• 使用 useradd 命令
– useradd [选项]… 用户名

• 常用命令选项
– -u 用户id、-d 家目录路径、-s 登录Shell
– -g 基本组、-G 附加组
/sbin/nologin:阻止用户登陆系统(没有可以交互的shell)
[root@server0 ~]# useradd nsd01
[root@server0 ~]# id nsd01
[root@server0 ~]# grep ‘nsd’ /etc/passwd
[root@server0 ~]# useradd -u 1500 nsd02 #指定UID创建
[root@server0 ~]# id nsd02
[root@server0 ~]# useradd -d /opt/abc nsd03 #指定家目录创建
[root@server0 ~]# groupadd tarena #创建组
[root@server0 ~]# useradd -G tarena nsd09 #创建用户加入tarena组
[root@server0 ~]# id nsd09 #查看用户信息

• 使用 passwd 命令
– passwd [用户名]
– echo ‘密码’ | passwd --stdin 用户名

[root@server0 ~]# passwd nsd01

非交互式 设置密码

[root@server0 ~]# echo redhat | passwd --stdin nsd01
存放密码信息的文件/etc/shadow
• 使用 usermod 命令
– usermod [选项]… 用户名

• 常用命令选项
– -u 用户id、-d 家目录路径、-s 登录Shell
– -G 附加组

useradd tom

grep ‘tom’ /etc/passwd

usermod -u 1600 -d /mnt/test -s /sbin/nologin tom

grep ‘tom’ /etc/passwd

删除用户
• 使用 userdel 命令
– userdel [-r] 用户名
[root@server0 ~]# userdel nsd01
[root@server0 ~]# ls /home/

管理组账号
组基本信息存放在 /etc/group 文件
[root@server0 ~]# groupadd stugrp
[root@server0 ~]# grep ‘stugrp’ /etc/group
stugrp❌1702:
组名:组的密码占位符号:GID:组成员的列表

使用 gpasswd 命令
– gpasswd -a 用户名 组名
– gpasswd -d 用户名 组名
– gpasswd -M 用户名列表 组名
[root@server0 ~]# grep ‘stugrp’ /etc/group
[root@server0 ~]# gpasswd -a dc stugrp #添加用户到组
[root@server0 ~]# grep ‘stugrp’ /etc/group
[root@server0 ~]# gpasswd -a kaka stugrp
[root@server0 ~]# grep ‘stugrp’ /etc/group
[root@server0 ~]# gpasswd -d dc stugrp #将用户dc从组中删除
[root@server0 ~]# grep ‘stugrp’ /etc/group
[root@server0 ~]# gpasswd -M ‘dc,jack,kenji’ stugrp #定义组列表
[root@server0 ~]# grep ‘stugrp’ /etc/group
[root@server0 ~]# gpasswd -M ‘’ stugrp #清空组内所有成员
[root@server0 ~]# grep ‘stugrp’ /etc/group

删除组
• 使用 groupdel 命令
– groupdel 组名

su 命令行临时切换身份
su abc

tar备份与恢复
• 归档的含义
– 将许多零散的文件整理为一个文件
– 文件总的大小基本不变
• 压缩的含义
– 按某种算法减小文件所占用空间的大小
– 恢复时按对应的逆向算法解压
Linux独有的压缩工具:
gzip -----> *.gz
bzip2 -----> *.bz2
xz -----> *.xz
tar 是归档工具, 打包
[root@server0 /]# tar -cf 归档文件的名字 被归档文件或目录
• tar 集成备份工具
– -c:创建归档
– -x:释放归档
– -f:指定归档文件名称
– -z、-j、-J:调用 .gz、.bz2、.xz 格式的工具进行处理
– -t:显示归档中的文件清单
– -P:保持归档内文件的绝对路径
[root@server0 /]# tar -zcf /opt/home.tar.gz /home
tar: 从成员名中删除开头的“/”
[root@server0 /]# ls /opt/
[root@server0 /]# tar -jcf /opt/home01.tar.bz2 /home/
tar: 从成员名中删除开头的“/”
[root@server0 /]# ls /opt/
[root@server0 /]# tar -Jcf /opt/home02.tar.xz /home/
tar: 从成员名中删除开头的“/”
[root@server0 /]# ls /opt/
[root@server0 /]# tar -xf /opt/home02.tar.xz -C /mnt/
[root@server0 /]# ls /mnt/

查看包里面有什么内容
[root@server0 /]# tar -tf /opt/home.tar.gz
[root@server0 /]# tar -zcPf /opt/file.tar.gz /home/

使用 tar 工具完成以下备份任务:
– 创建一个名为 /root/backup.tar.bz2 的归档文件
– 其中包含 /usr/local 目录中的内容
[root@server0 /]# tar -jcf /root/backup.tar.bz2 /usr/local/
tar: 从成员名中删除开头的“/”
[root@server0 /]# ls /root/
#查看包里面内容
[root@server0 /]# tar -tf /root/backup.tar.bz2

find 查找文档所在位置
-type 类型 f(文本文件) d(目录) l(快捷方式)
-name 名字
-size 大小 + | -
-user 按照文档所属用户
[root@server0 /]# find /boot/ -type d #目录
[root@server0 /]# find /boot/ -type l #快捷方式
[root@server0 /]# find /boot/ -type f #文本文件
[root@server0 /]# find /root -name “stu*”
[root@server0 /]# find /root -name “stu*” -type f
[root@server0 /]# find /root -name “stu*” -type d
[root@server0 /]# find /boot/ -size +10M
[root@server0 /]# find /boot/ -size -10M

• 使用find命令完成以下任务
– 找出所有用户 student 拥有的文件
[root@server0 /]# find / -user student -type f
[root@server0 /]# find /home -user student
find / -user student -type f -exec cp {} /root/findfiles ;

– 优势:以 {} 代替每一个结果,逐个处理,遇 ; 结束
[root@server0 /]# find /boot/ -size +10M
[root@server0 /]# ls /opt/

find /boot/ -size +10M -exec cp {} /opt/ ;

[root@server0 /]# ls /opt/

vim /opt/abc.txt
– 命令模式下复制、粘贴:
复制1行(yy)、复制3行(3yy)
粘贴到当前行之后(小写p)

– 命令模式下删除:
	 删除单个字符(x)
	 删除到行首(d^)、删除到行尾(d$)
	 删除1行(dd)、删除3行(3dd)
         
– 命令模式下查找关键词: 
	 搜索(/word)切换结果(n、N)
– 在命令模式下大写的C,可以删除光标之后到行尾,并且进入输入模式
– 在命令模式下 小写的 u 为撤销

###########################################################
权限管理
基本权限
• 访问方式(权限)
– 读取:允许查看内容-read r
– 写入:允许修改内容-write w
– 可执行:允许运行和切换-execute x

对于文本文件:
r: cat head tail
w: vim 保存退出
x: 可以执行

• 权限适用对象(归属)
– 所有者:拥有此文件/目录的用户-user u
– 所属组:拥有此文件/目录的组-group g
– 其他用户:除所有者、所属组以外的用户-other o

• 使用 ls -l 命令
– ls -ld 文件或目录…
以 - 开头:文本文件
以 d 开头:目录
以 l 开头:快捷方式
目录的 r 权限:能够 ls 浏览此目录内容
目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/等更改目录内容的操作
目录的 x 权限:能够 cd 切换到此目录

• 使用 chmod 命令
– chmod [-R] 归属关系±=权限类别 文档
[root@server0 ~]# mkdir /nsd01
[root@server0 ~]# chmod u-w /nsd01 #所有者去掉w权限
[root@server0 ~]# chmod g+w /nsd01 #所属组加上w权限
[root@server0 ~]# chmod o=rwx /nsd01 #其他人重新定义权限为rwx
[root@server0 ~]# chmod u=rwx,g=rx,o= /nsd01 #重新定义所有人权限

以root用户新建/nsddir/目录,在此目录下新建readme.txt文件,并进一步完成下列操作
1)使用户zhangsan能够在此目录下创建子目录 切换用户 su - zhangsan
chmod o+w /nsddir/
2)使用户zhangsan不能够在此目录下创建子目录
chmod o-w /nsddir/
3)使用户zhangsan能够修改readme.txt文件
chmod o+w /nsddir/readme.txt
4)调整此目录的权限,使所有用户都不能进入此目录
chmod u-x,g-x,o-x /nsddir/
5)为此目录及其下所有文档设置权限 rwxr-x—
chmod -R u=rwx,g=rx,o=— /nsddir/
[root@server0 /]# chmod u=rwx,g=rwx,o=rwx /public

• 使用 chown 命令
– chown [-R] 属主 文档…
– chown [-R] :属组 文档…
– chown [-R] 属主:属组 文档…
[root@server0 /]# chown zhangsan:tarena /nsd03 #所有者:所属组
[root@server0 /]# chown :root /nsd03 #修改所属组
[root@server0 /]# chown root /nsd03 #修改所有者

附加权限(特殊权限)
Set GID
• 附加在属组的 x 位上
– 属组的权限标识会变为 s
– 适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组
– 继承父目录相同的属组
[root@server0 /]# mkdir /nsd13
[root@server0 /]# chown :tarena /nsd13
[root@server0 /]# mkdir /nsd13/test01
[root@server0 /]# chmod g+s /nsd13/
[root@server0 /]# mkdir /nsd13/test02
[root@server0 /]# ls -ld /nsd13/test02

常用权限
linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人
这些身份对于文档常用的有下面权限:
r:读权限,用户可以读取文档的内容,如用cat,more查看
w:写权限,用户可以编辑文档
x:该目录具有可以被系统执行的权限

其他权限

除了读写执行权限外系统还支持强制位(s权限)和粘滞位(t权限)

s权限
s权限: 设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.
ls -al /usr/bin/passwd
-rwsr-xr-x 1 pythontab pythontab 32988 2018-03-16 14:25 /usr/bin/passwd
我们可以通过字符模式设置s权限:chmod a+s filename,也可以使用绝对模式进行设置:
设置suid:将相应的权限位之前的那一位设置为4;
设置guid:将相应的权限位之前的那一位设置为2;
两者都置位:将相应的权限位之前的那一位设置为4+2=6。

注意:在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效(c h m o d命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效)

t权限
t权限:要删除一个文档,您不一定要有这个文档的写权限,但您一定要有这个文档的上级目录的写权限。也就是说,您即使没有一个文档的写权限,但您有这个文档的上级目录的写权限,您 也能够把这个文档给删除,而假如没有一个目录的写权限,也就不能在这个目录下创建文档。

怎样才能使一个目录既能够让任何用户写入文档,又不让用户删除这个目录下他人的文档,t权限就是能起到这个作用。t权限一般只用在目录上,用在文档上起不到什么作用。

在一个目录上设了t权限位后,(如/home,权限为1777)任何的用户都能够在这个目录下创建文档,但只能删除自己创建的文档(root除外),这就对任何用户能写的目录下的用户文档 启到了保护的作用。
可以通过chmod +t filename 来设置t权限

acl访问控制列表(权限精细的控制)
• 文档归属的局限性
– 任何人只属于三种角色:属主、属组、其他人
– 无法实现更精细的控制
• acl访问策略
– 能够对个别用户、个别组设置独立的权限 实现更精细的控制
– 大多数挂载的EXT3/4、XFS文件系统默认已支持
[root@server0 /]# mkdir /nsd20
[root@server0 /]# ls -ld /nsd20
[root@server0 /]# chmod o=— /nsd20
[root@server0 /]# ls -ld /nsd20
[root@server0 /]# su - zhangsan
[zhangsan@server0 ~]$ cd /nsd20
-bash: cd: /nsd20: Permission denied
[zhangsan@server0 ~]$ exit
[root@server0 /]# setfacl -m u:zhangsan:rx /nsd20
[root@server0 /]# ls -ld /nsd20
[root@server0 /]# su - zhangsan
[root@server0 /]# getfacl /nsd20 查看acl权限
– setfacl -m u:用户名:权限类别 文档…
– setfacl -m g:组名:权限类别 文档…
– setfacl -x 文档… #删除指定的ACL策略
– setfacl -b 文档… #删除所有的ACL策略
[root@server0 /]# mkdir /nsd21
[root@server0 /]# setfacl -m u:dc:rwx /nsd21
[root@server0 /]# setfacl -m u:zhangsan:rx /nsd21
[root@server0 /]# setfacl -m u:lisi:rx /nsd21
[root@server0 /]# getfacl /nsd21 #查看ACL策略
[root@server0 /]# setfacl -x u:zhangsan /nsd21 #删除zhangsan
[root@server0 /]# getfacl /nsd21
[root@server0 /]# setfacl -b /nsd21 #删除所有ACL策略
[root@server0 /]# getfacl /nsd21

你可能感兴趣的:(linux 系统基础管理命令)