LINUX

修改日期命令

使用date命令修正系统时间,改为当前日期时间

date -s "2022-09-27 17:00:00"

img

shutdown + 各种关机重启命令

使用shutdown命令发出警告信息,查看其他控制台上的用户是否收到信息。

shutdown -r +2 "shutDown Now"

tty1输入命令

img

Tty2收到信息

img

还有其他的关机命令halt、poweroff、init

重启命令:reboot

用户相关

useradd 增加用户

logname和whoami的区别

img

由图,logname显示的是vty5转换之前的登录的用户,而whoami是当前通过su命令转换到的正在使用的超级用户的用户名

su 用户名 切换用户

超级用户# 下使用su切换可以直接切

用户的/home

用命令直接删除目录/home,删除/home目录后用前面自建的用户登录,会出现什么情况?猜测该现象的原因?

rm -rf /home

img

Home目录被删除,登录的用户不能切换到/home目录对应的用户的文件夹

,于是登录开始的目录就变成了根目录

对文件进行操作

创建文件:用cat、vi、touch命令均可

ll显示出当前文件夹下的文件的全属性

ll其实相当于 ls -al

img

更改文件访问权限

文字设定法

chmod u-w+xs,g+ws,o-r+x cj10031

数字设定法

chmod 6561 cj10032

img

第一位是标识文件属性(目录or文件) 每三位代表一组权限,共九位,分别代表当前用户 用户组 其他用户 的权限

数字: 4读 2写 1可执行 如果加起来7 代表为 rwx 如果加起来为2 代表 -w- S表示sgid或suid被设置 -s和S一样的意思,但是它具有x 可执行权限

suid/sgid是为了使“没有取得特权用户要完成一项必须要有特权才可以执行的任务”而产生的。 一般用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内用户增加SET位权限。执行文件被设置了SUID、SGID权限后,任何用户执行该文件时,将获得该文件属主、属组账号对应的身份。在许多环境中,suid 和 sgid 很管用,但是不恰当地使用这些位可能使系统的安全遭到破坏。所以应该尽量避免使用SET位权限程序。(passwd 命令是为数不多的必须使用“suid”的命令之一)。

  • suid(set User ID,set UID)的意思是进程执行一个文件时通常保持进程拥有者的UID。然而,如果设置了可执行文件的suid位,进程就获得了该文件拥有者的UID。

  • sgid(set Group ID,set GID)意思也是一样,只是把上面的进程拥有者改成进程组就好了。

在一些需要root权限的地方,可以让其他用户执行root所属的文件时,也能够暂时有root的UID执行

当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t。 使用chmod命令设置目录权限时,+t、-t权限模式可分别用于添加、移除粘滞位权限。

如果是4位数表示权限

第一位变成一个新的权限位,也是一个三位二进数的和

代表的是s和t的设置:

11 10 9 8 7 6 5 4 3 2 1 0
S  G  T r w x r w x r w x

更改文件所有者

chown [可选] user[:group] file ...

新文件拥有者为tom 新文件所属group为users  更改的文件为d.key和e.scrt
chown tom:users file d.key e.scrt

新文件拥有者为tom  更改的文件为d.key和e.scrt
chown tom file d.key e.scrt

chgrp更改所属组

  • R 递归式地改变指定目录及其下的所有子目录和文件的属组。
chgrp - R book /opt/local /book

用tar命令实现如下备份和恢复

(备份文件均放在/root目录下,做本实验前必须先将系统时间设置为2022年9月27日)

img

对/home目录进行压缩备份(采用gzip压缩),备份文件名为home.tar.gz

tar zcvf /home.tar.gz /home

img

b.对/home目录进行压缩备份(采用bzip2压缩),备份文件名为home.tar.bz2,比较二种工具的压缩能力

tar jcvf /home.tar.bz2 /home

img

Bzip2的压缩能力更强

在/home目录下建立一个文件(文件命名用自己拼音的首字母+1,如姓名张三,则该文件为zs1)

vi cj1

img

在/home目录下建立目录test,在/home/test目录下建立一个文件(文件命名用自己拼音的首字母+1,如姓名张三,则该文件为zs1)

(以上两个文件用vi编辑创建,内容任意)

mkdir test

vi ./test/cj1

img

对/home目录进行增量备份,备份2022年9月27日以来变化的文件,备份文件名为home.20220927.tar

tar -N '2022-09-27' -cvf /home.20220927.tar /home

更改运行级别

Linux 的运行级别是指操作系统当前正在运行的功能级别,级别是从 0 到 6。CentOS7 系统之前的版本是通过 /etc/inittab 文件来定义系统,而 CentOS7 用的是 /lib/systemd/system/runlevel*。

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动。
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆。
运行级别2:多用户状态 (没有NFS)。
运行级别3:完全的多用户状态 (有NFS),登陆后进入控制台命令行模式。
运行级别4:不可用。
运行级别5:完全的多用户状态,登陆后进入图形GUI模式。
运行级别6:系统正常关闭并重启。

设置运行级别:

systemctl set-default multi-user.target 设置到运行级别3 也就是命令行模式

这样设置的话,重启有效

还可以直接指定 用init命令

init 3 切换到命令行

init5 切换到多用户GUI模式

用init命令切换的话,重启会失效

分区及挂载

增加1个新的10G的Sata硬盘,并用fdisk命令对其进行分区,用mkfs命令进行格式化,用mount命令进行挂接
挂接完成后运行如下l两个命令,可以显示出分区以及挂接的结果
命令1:mount |grep /dev/sd
命令2:df –h

fdisk

fdisk 命令是 Linux 系统中的一个命令,用于管理磁盘分区。它可以用来查看、创建、调整大小、删除、移动和复制分区。fdisk 命令支持 MBR、Sun、SGI、BSD 分区表,但是不支持 GUID 分区表(GPT)。

下面是 fdisk 命令的基本语法:

fdisk [-l] [设备名称]
其中,-l 选项用于列出系统中所有的磁盘设备以及分区表;设备名称指定要对哪个磁盘进行操作。

mkfs

mkfs 命令是 Linux 系统中的一个命令,用于在特定的分区上建立 Linux 文件系统。当运行 mkfs 时,可以指定全局选项,也可以指定 mkfs 要创建的文件系统类型(如:ext3、ext4、msdos)的特定选项,全局选项必须位于特定类型选项的前面。

下面是 mkfs 命令的基本语法:

mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
其中,-V 选项用于显示版本信息与详细的使用方法;-t <文件系统类型> 选项用于指定要建立何种文件系统;fs-options 指定建立文件系统时的参数;filesys 指定要对哪个文件系统进行操作;blocks 给定 block 的大小。

mount:

mount 命令是 Linux 系统中的一个命令,用于挂载文件系统。其基本命令格式为:

mount -t type [-o options] device dir
其中,type 指定挂载的文件系统类型,一般不用指定,mount 命令能够自行判断;options 指定挂载的选项,如读写权限等;device 指定要挂载的设备,比如磁盘、光驱等;dir 指定把文件系统挂载到哪个目录。

目前windows下的操作也是如此,对于一块全新的硬盘,先进行格式化,选择引导格式MBR OR GPT ,然后会建立起文件系统(默认为NTFS),然后自动挂载到盘符下,windows并不是一切皆文件的,因此这里会跟linux有点不同

在 Windows 中,格式化硬盘时可以选择的引导格式有两种:MBR 和 GPT。MBR(Master Boot Record)是一种旧的分区表格式,它支持最多 2TB 的硬盘容量。GPT(GUID Partition Table)是一种新的分区表格式,它支持最多 9.4ZB 的硬盘容量。

除了较老的主板 (貌似志强1230v2搭配的H61主板都支持GPT引导了,所以现在默认GPT吧)

管道命令的使用

列表分页查看/etc目录下的所有文件和子目录

ls -a -R /etc | less
使用管道符将ls的输出用less命令分页展示出来

img

利用tar命令和gzip命令完成对/home目录的打包和压缩,不使用tar中的z参数

tar -cvf - /home | gzip -qc > home.tar.gz
Tar 中的 f后接- 表示输出在当前目录下,但不产生文件,会由后面的管道符接受并作为gzip的指向的输入

搭配一些操作符,可以实现排序,去重等

cat a | sort | uniq

批量杀死指定关键词的进程

ps aux|grep '字符串' |grep -v grep|awk '{print $2}'|xargs kill -9[15]

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

print $2表示输出第二个字段, 正好为PID号

xargs表示使用标准输入作为kill命令的参数.

进程相关

ps aux 查看所有当前进程


top动态查看当前进程


kill -9 PID 以9的信号量通知进程,代表着强制杀死进程 , 生产环境尽量不要使用此命令,如果是mysql等数据库,使用该命令可能会造成数据丢失,或者失去数据一致性

尽量使用 kill -15 代表正常执行完成后退出进程


执行进程 +上 & 参数会变成守护进程,即使退出(Ctrl c)也会继续执行 , 对SIGINT信号免疫,直接关掉终端连接,会杀死(因为对SIGHUP信号不免疫)


nohup命令,用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。(对SIGHUB免疫,但是对SIGINT不免疫),用ctrl c发出SIGINT信号会结束掉。

因此如果想创建真正的守护进程 , 尽量使用 nohup 1.sh &

nohup /root/runoob.sh > runoob.log 2>&1 &
2>&1 解释:

将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

0 – stdin (standard input,标准输入)
1 – stdout (standard output,标准输出)
2 – stderr (standard error,标准错误输出)
 posted on 2023-05-05 22:26    阅读(83)  评论(0编辑  收藏  举报