linux基本命令及语法
基本命令用思维导图的方式为各位看官奉上
用户与组的管理
1.用户管理
用户:
- 超级用户
- 普通用户
- 虚拟用户:不能登录系统,存在主要是方便系统管理,满足响应系统进程对文件属主的要求。
用户组:
- 主要组(主组):创建用户是默认创建。
- 附属组:用户加入的组。
用户配置文件:/etc/passwd
root:x:0:0:root:/root:/bin/bash
root:用户名
口令:密码站位符(不显示密码),“x”
用户标识号(UID):"0"
用户组标识号(GID):"0"
注释性描述:“root”
用户主目录:“/root”
/bin/bash:用户可以登录系统
用户密码配置文件:/etc/shadow
tom:$1$jXCBeo2F$VvQgqxWNFVGHs9DBJY92t.:18317:0:99999:7:::
从左到右:
tom:用户名
$1$jXCBeo2F$VvQgqxWNFVGHs9DBJY92t;用户密码
18371 :最后一次修改时间
0 :最小时间间隔
99999 :最大时间间隔
7 :警告时间
不活动时间:失效时间:标志
创建用户:
- 指定登录类型:
默认:/bin/bash
例:useradd -s /bin/nologin lisi
lisi :用户名
- 创建时设置真实姓名,电话号码,公司地址,公司电话:
useradd -c tom-sing,tf5jie,028-85699999,13911202319 tom
用户:tom
真实姓名:tom-sing
公司地址:tf5jie
公司电话:028-85699999
电话号码:13911202319
- 修改用户名为jack,修改用户jack的注释名为jack-sing和登录类型为/bin/nologin
usermod -l jack -s /bin/nologin tom
chfn -f jack-sing jack```
- 删除用户tom
userdel -r tom
- 设置jack用户的密码最大有效期为30天,提前9天警告,失效时间为40天:
chage -l jack
chage -M 90 -W 9 -m 40 jack
- 修改tom用户的注释信息,电话号码:15822534848,公司地址:scfd,公司电话:028-88888888
chfn -h 15822534848 -o scfd -p 028-88888888 tom
2.用户组管理
用户组配置文件:/etc/group
用户组密码配置文件:/etc/gshadow
- 新建用户组:groupadd 组名
groupadd group01
- 查看组是否创建成功:
cat /etc/group | grep group01
- 将用户添加到组:gpasswd -a 用户名 组名
gpasswd -a stu1 group01
- 查看用户属于哪个组:
groups stu1或id stu1
- 从组中删除用户:gpasswd -d 用户名 组名
gpasswd -d stu1 group01
- 设置组的管理员:管理员具有向改组添加,删除成员的权限(管理员身份)。
gpasswd -A stu1 group01
- 查看该组的组长:
cat /etc/gshadow
group01:!:stu1:stu1,stu2,stu3
第三个字段表示为该组的组长。
-
为组设置密码(其他用户可以临时加入组并具有组的权限):
gpasswd 组名
-
不同组成员临时进入:newgrp 组名(再次进入没有权限)
查看当前登录用户:“who am i”
改所有者和所属组:chown stu1:group01 file
只能删除自己建立的文件而不能删除别人建立的文件
SBIT:粘滞位权限(强制位权限)
添加SBIT权限:chmod o+t cwfiles/scfiels/xsfiels/
- 为用户stu1进行提权操作,让他只具有用户与用户组的管理权限
vim /etc/sudoers 并添加如下内容
Cmnd_Alias USERADMINCMD =
/usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/passwd,/usr/bin/usermod
Cmd_Alias GROUPADMINCMD =
/usr/sbin/groupadd,/usr/sbin/groupdel,/usr/sbin/gpasswd
stu1 ALL=(ALL) USERADMINCMD,GROUPADMINCMD
进程管理
1.运行级别
- 查看当前运行急别:
runlevel
- 切换运行级别:
init 级别数字(1-7)
init 0 关机:poweroff.target
init 1 单用户模式,仅用于root用户对系统进行维护时:rescue.target
init 2 多用户模式(没有NFS):multi-user.target
init 3 完全多用户模式,即多用户文本界面模式,是标准的运行级别 :multi-
user.target
init 4 特定运行级别,基本不用的用户模式 :multi-user.target
init 5 Xll,Linux 系统的图形界面运行级别 :graphical.target
inti 6 重启 :reboot.target
- 更改开机启动级别:
cd /etc/systemd/system
ls -l default.target
删除 default.target再重新创建一个,在创建一个链接到/lib/systemd/system/ 下的某一个
方法二直接设置:
#systemctl set-default runlevel3.target
systemctl set-default runlevel5.target
2.服务的管理
systemctl 选项 服务名
选项:stop(停止),
开机自启动:systemctl enable 服务名称
systemctl disable 服务名称
查看是否开机自启:systemctl is-enabled 服务名称
3.查看进程
ps 抓取进程的当前状态,静态显示
top 动态查看
终止进程:kill
4.进程调度
- 一次性调度:
at -f 文件名 -m 时间
例:at -f aa -m now+1minutes 1分钟后执行aa文件中的命令
- 周期性调度:
crontab :周期性调度
5.后台程序
- 程序放到后台:
vim 1.txt &
- 查看后台运行程序:
bg :
jobs -l :查看后台运行程序及PID号
fg 1 :将后台程序调入前台运行
ctrl+z :切换到后台
kill -9 进程号 :强制杀死
链接文件
1.软连接
所谓的快捷方式
ln -s 源文件 链接文件
ln -s 1.txt ln.txt
2.硬连接
副本,源文件没了还是可以用
ln 源文件 链接文件
名字别名
vim /etc/sysconfig/network-scripts/ifcfg-eth0
简化:
alias eth0='vim /etc/sysconfig/network-scripts/ifcfg-eth0'
执行eth0就等于执行命令
查看别名:alias 或 alias eth0
删除别名:unalias eth0
sudo提权
1.sudo配置
- 查看sudo软件包:
#rpm -qi sudo
- sudoers的模板配置文件:
#cat /etc/sudoers
2.配置普通用户
所有权限
添加:用户名 ...
例:xingxing ALL=(ALL) ALL
不输入密码:xingixng ALL=(ALL) NOPASSWD:ALL
部分权限:
cmnd_Alias 名称随便取(sss)=/usr/sbin/ip,/usr/sbin/ifconfig,/usr/sbin/route
fedora ALL=(ALL) sss
grep命令
cat /etc/passwd | grep ^a :查看以a开头的
cat /etc/passwd | grep ^$ :空行
cat /etc/passwd | grep a$ :a结尾
周期性调度命令crontab
- crontab命令
crontab -e :为自己制定计划 :文件存放在/var/spool/cron/
crontab -e -u 用户名 :为指定用户制定计划
30 23 * * * /usr/bin/cp /var/log/yum.log /mnt/bak/
分钟 小时 日期 月份 星期 命令(完整路径) 命令
每天23:30 执行cp拷贝文件
crontab -l -u student :查看student用户任务列表
crontab -r -u student :删除student用户任务列表
磁盘分区与文件系统挂载
1.磁盘在linux中的表示方法
硬盘的类型:
IDE接口 hda hdb .....
hda1 hda2 hda3 .......
SATA接口 SCSI接口 USB
sda sdb
sda1 sda2 sda3 ......
所有磁盘设备及分区都以文件的形式存储在/dev/,但是这些文件不能直接使用,如果要往这些分区内写入数据就需要挂载分区。
2.查询设备名
fdisk -l
所有磁盘及分区在系统中都以文件的形式存在,不能直接使用。
存放目录:/dev/
3.磁盘分区
磁盘分区必须挂载以后才能通过挂载目录向分区写入数据。
1、基本磁盘分区:
(1)最多可以分为四个主分区(包含扩展分区:只能有一个,将剩余的所有空间包含在内)。
(2)主分区和扩展分区的编号:1-4为主分区和扩展分区的编号。
(3)扩展分区不能直接使用,必须在扩展分区上建立逻辑分区并格式化后才能使用。
(4)逻辑分区编号从5开始。
(5)对新加的磁盘进行分区:(分2个主分区,1个扩展分区,2个逻辑分区)
fdisk 磁盘设备名
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types 显示所有分区类型
m print this menu
n add a new partition 新建分区
o create a new empty DOS partition table
p print the partition table 显示分区表
q quit without saving changes
s create a new empty Sun disklabel
t change a partition’s system id 修改分区类型
u change display/entry units
v verify the partition table
w write table to disk and exit 保存并出退出
x extra functionality (experts only)
2.对磁盘进行格式化:mkfs -t 分区类型(ext2 ext3 ext4) 磁盘分区名
mkfs -t ext4 /dev/sdb1
3.新建挂载点,并将分区进行挂载:
mount [-t 文件系统类型] 设备分区名 挂载点
如何查看已经挂载成功:mount (mount | grep sdb1)
取消挂载:umount 挂载点
4.挂载光驱设备:
光驱设备在Linux系统中的表示方法:/dev/sr0
光驱设备文件系统类型:iso9660
将光盘挂载到/mnt/cdrom目录:
5.永久挂载:使用mount命令挂载只是临时的,如果重启系统后就失效了。
[root@www cdrom]# vim /etc/fstab
[root@www cdrom]# mount -a
6.卸载文件系统:
unmount [设备名或挂载点]
#unmount /dev/sdb1 //指定设备名卸载
#unmount /mnt/sdb1 //指定挂载点卸载
LVM逻辑卷管理
磁盘分区最多只能分4个主分区,如果需要更多分区,就需要创建扩展分区,并建立多个逻辑分区。分区的扩展往往当你的/sdb1 10G已经用完,不能直接再扩展,如果使用逻辑卷,那么扩展就非常方便。
1.制作逻辑卷
1. 添加硬盘,重启系统
2. 使用fdisk -l 查看新增的硬盘
3. pv--->vg -->LV:pv物理卷 ,vg卷组,LV逻辑卷
4. 转换磁盘为物理卷:pvcreate /dev/sdb ,查看pvscan或显示pvdisplay /dev/sdb
5. 删除:pvremove /dev/sdb
6. 制作卷组:vgcreate Wgroups /dev/sdb ,查看:vgdisplay Wgroups
7. 创建逻辑卷:lvcreate -L +1G -n web Wgroups ,查看 lvdisplay /dev/Wgroups/web
2.格式化
mkfs -t 类型 逻辑卷
#mkfs -t ext4 /dev/Wgroups/web
3.挂载逻辑卷
1. 首先新建一个空目录:mkdir /mnt/web
2. 使用命令进行挂载:mount -t 类型 /dev/Wgroups/web /mnt/web
例:mount -t ext4 /dev/Wgroups/web /mnt/web
3. df -HT :显示系统所有挂载情况
4.进入逻辑卷
#cd /mnt/web/
#touch file1
5.取消挂载
umount /mnt/web
cd /mnt/web
ls :没有文件
重新挂载友能看到文件
6.扩容逻辑卷
- 查看卷组:
vgdiplay Wgroups
1. 新加一块硬盘并创建为pv
2. pvcreate /dev/sdc
3. 扩容卷组:vgextend /dev/Wgroups /dev/sdc
4. 扩容逻辑卷:lvextend -L +1G /dev/Wgroups/web
5. 刷新:resize2fs /dev/Wgroups/web
6. 删除逻辑卷的方法:
创建:pv-->vg-->lv
删除:lv-->vg-->pv
7. 将ftp逻辑卷缩减500M,将web卷扩容500M:
lvreduce -L -500M /dev/Wgroups/FTP
lvextend -L +500M /dev/Wgroups/web
quota磁盘配额管理(用户使用空间)
1.添加挂载
#vim /etc/fstab
2.添加内容
#edquota -u ftp01 :ftp01为用户名
/dev/Wgroups/FTP /mnt/FTP ext4 defaults,usrquota,grpquota 0 0
3.刷新
mount -a 查看是否成功:
mount | grep FTP
4.生成配置文件
quotacheck -cvug /mnt/FTP
/mnt/FTP:为挂载的路径
5.刷新配额
quotaon -ugv /mnt/FTP/
6.添加权限
setfacl -m u:ftp01:rwx FTP/
7.edquota -u ftp01
8.切换用户
#su ftp01
9.验证
dd if=/dev/zero of=/mnt/FTP/aa bs=1KB count=450
- 用户组权限设置