1 访问命令行
1.1 登录Linux系统
图形化:系统菜单-注销-或切换用户
字符界面:Ctrl+alt+F2-F6
在本机上切换用户:su - root
退出登录:ctrl+d、exit、logout)
网络登录:ssh ip、ssh 主机名
[kiosk@foundation0 ~]$ ssh servera
ssh 用户名@ip/主机名
[kiosk@foundation0 ~]$ ssh student@servera
1.2 终端切换
CLI Ctrl+alt+Fx xin (2,6)
GUI Ctrl+alt+F1
1.3 Shell简介
是一个解释器,可以帮助用户将指令信息传递内核
红帽企业Linux中为用户提供的默认shell是bash,bash是与UNIX类似的系统上使用的其中一个最成功的shell改进版本
1.4 基本组成
[kiosk@foundation0 ~]$
[kiosk@foundation0 ~]$ su - root
Password:
Last login: Sat Feb 22 15:11:13 CST 2020 on tty3
[root@foundation0 ~]
ctrl+d or exit 退出登录
注明:
1.bash shell在概念上与微软的cmd相似,但bash具有更加复杂的脚本语言
2.与win系统powershell类似、mac的管理终端使用工具也是使用的bash shell
1.5 GNOME Shell
ALT+F2 输入 gnome-terminal
win+l
init 0 init 6
poweroff reboot
systemctl poweroff systemctl reboot
shutdown -h 20:00 shutdown -r 0
ctrl+alt 上\|下 箭头
1.6 Shell的特性
1.6.1 linux命令语法
完成具体功能的命令、扩展该命令功能的选项、命令要操作的对象
cmd 【-option】 【arg1】 【arg2】
简单的命令示例:
whoami
date
touch file1;mkdir dir1
完成某些工作的指令
扩展命令功能的选项
参数
ls
ls -a
ls -a ~/.bashrc
ls -a -l ~/.bashrc
ls -al ~/.bashrc
1.6.2 命令的基础分类
date +%Y%m%d
date +%Y-%m-%d
passwd
按一下是补全
按两下列出可用命令
tab键 输入单词或命令前面几个首字母后,保证唯一可补全,不唯一可列出能选择的命令
env--能容纳1000条
[root@servera ~]
HISTSIZE=1000
[root@servera ~]
[root@servera ~]
[root@servera ~]
[root@servera ~]
history的其他方法:
!!
!23 历史命令的编号
!h 命令首字母
当前历史命令支持的最大条数
[root@foundation0 /]
HISTSIZE=1000
历史命令存放文件路径
[root@foundation0 /]
HISTFILE=/root/.bash_history
vim /etc/profile
export HISTFILE=/root/.newfile
source /etc/profile
history -w
cat /root/.newfile
ctrl+R 搜索历史命令
1.7 命令行快捷键
快捷键 |
说明 |
ctrl + shift + t |
当前画面添加一个标签 |
ctrl + shift + n |
打开一个新的标签 |
alt + 1,alt + 2 |
切换标签 |
ctrl + shift + =,ctrl + - |
扩大与缩小终端字体 |
ctrl + shift + w |
关闭标签 |
1.8 Shell常用快捷键
快捷键 |
说明 |
ctrl + a |
光标跳至行首 |
ctrl + e |
光标跳至行尾 |
ctrl + u |
从光标所在位置清空至行首 |
ctrl + k |
从光标所在位置清空至行末 |
ctrl + 左箭头 |
光标向左跳一个单词 |
ctrl + 右箭头 |
光标向右跳一个单词 |
ctrl + w |
回删一个单词 |
alt + d |
删除光标后一个单词 |
esc + . 或 alt + . |
调用之前使用过的路径,alt+.一直点可以向上翻阅路径 |
2 从命令行管理文件
2.1 系统目录结构
根(/)目录下每个目录的作用:
目录名 |
作用 |
bin |
用户可执行目录(命令root和普通) |
sbin |
系统可执行目录(命令root) |
lib |
库文件目录(32位) |
lib64 |
库文件目录(64位) |
dev |
设备文件目录dev |
usr |
应用程序目录 |
var |
服务器数据目录(数据日志) |
src |
服务器数据目录 |
etc |
配置文件目录 |
tmp |
临时文件目录 |
boot |
服务器启动目录(内核和启动文件) |
media |
媒介目录(u盘、cdrom) |
mnt |
其他挂载点 |
opt |
第三方应用程序目录 |
proc |
伪文件系统(内核参数、进程信息、硬件信息) |
sys |
伪文件系统(配置文件目录、内核参数、进程信息、硬件信息) |
run |
进程锁目录 |
root |
root管理员家目录 |
home |
普通用户家目录 |
2.2 文件类型
文件类型 |
说明 |
全称 |
- |
普通文件 |
file |
d |
目录文件 |
directory |
c |
字符设备文件 |
character |
b |
块设备文件 |
block |
s |
套接字文件 |
socket |
p |
管道文件 |
pipe |
l |
符号链接文件(软链接) |
symbolic |
2.3 文件名定位文件
[root@foundation0 home]
[root@foundation0 /]
2.4 路径
1.绝对路径(通常以/开头)
例如:根开头 cd /etc/sysconfig
2.相对路径:
非根开头 cd ..
[root@foundation0 yum.repos.d]
/etc/yum.repos.d
cd - 返回之前的目录
cd or cd ~ 家目录
cd . 当前目录
cd .. 上一级目录
ls
ls -a
ls -a /home
ls -a -l
ls -al
[root@foundation0 ~]
.viminfo
[root@foundation0 ~]
-rw-------. 1 root root 2545 Mar 13 13:12 .viminfo
[root@foundation0 ~]
-rw-------. 1 root root 2545 Mar 13 13:12 .viminfo
[root@foundation0 /]
drwxr-xr-x. 4 root root 30 Mar 13 11:38 /home
2.5 查看文件内容
cat cat /etc/passwd
tail tail /var/log/message
tail -n 5 或 tail -5 /var/log/message
head head /var/log/message
head -5 /var/log/message
less less /var/log/message
more more /var/log/message
vim vim /etc/passwd
2.6 命令行管理文件/目录
2.6.1 管理文件/目录的命令
创建 touch mkdir -p
改名 mv mv
移动 mv mv
拷贝 cp cp -r
删除 rm rm -r
touch、mkdir、rm、cp、mv
2.6.2 touch命令(管理文件)
[root@servera opt]
[root@servera opt]
[root@servera opt]
/file4
/tmp/file5
[root@servera opt]
2.6.3 mkdir命令(管理目录)
mkdir
选项: -p:递归创建 -v:显示过程
[root@servera opt]
dir1
[root@servera opt]
[root@servera opt]
dir1 dir2
[root@servera opt]
mkdir: cannot create directory ‘dir3/dir4’: No such file or directory
[root@servera opt]
mkdir: created directory 'dir3'
mkdir: created directory 'dir3/dir4'
[root@servera opt]
dir3:
dir4
dir3/dir4:
[root@servera opt]
dir3/dir4:
total 0
[root@servera opt]
total 0
drwxr-xr-x. 2 root root 6 Mar 13 22:23 dir4
[root@servera opt]
total 0
[root@servera opt]
drwxr-xr-x. 2 root root 6 Mar 13 22:23 dir3/dir4/
2.6.4 rm命令(删除)
[root@servera opt]
[root@servera opt]
dir1 dir2 dir3 file1 file2 file3
[root@servera opt]
rm: remove regular empty file 'file1'? y
[root@servera opt]
rm: remove regular empty file 'file2'? n
[root@servera opt]
[root@servera opt]
dir1 dir2 dir3 file3
[root@servera opt]
[root@servera opt]
dir1 dir2 dir3
[root@servera opt]
rm: cannot remove 'dir1': Is a directory
[root@servera opt]
rm: remove directory 'dir1'? y
[root@servera opt]
[root@servera opt]
dir3
2.6.5 copy命令(复制)
[root@servera opt]
dir1 dir2 file1 file2 file3
[root@servera opt]
[root@servera opt]
/tmp/file1
[root@servera opt]
[root@servera opt]
/tmp/file10
[root@servera opt]
[root@servera opt]
dir1 dir2 file1 file2 file3 man_db.conf
2.6.6 mv命令(移动文件/目录)
[root@servera opt]
[root@servera opt]
dir1 dir2 file2 file3 man_db.conf
[root@servera opt]
[root@servera opt]
dir1 dir2 file3 man_db.conf
[root@servera opt]
[root@servera opt]
dir1 dir2 file30 man_db.conf
[root@servera opt]
[root@servera opt]
dir2 file30 man_db.conf
[root@servera opt]
[root@servera opt]
dir20 file30 man_db.conf
2.7 通配符规则
通配符 |
规则 |
* |
匹配0个或多个任意字符 |
? |
匹配1个任意字符 |
[ ] |
匹配中括号内一个字符 |
[ - ] |
匹配中括号内连续范围的一个字符 |
[ ^ ] |
取反,匹配非中括号内的字符,表示一定有一个字符,但不是中括号内出现的。【^ab】 |
{a,b}或{a..c} |
匹配括号中的字符或连续的字符 |
3 在线获取帮助
3.1 MAN手册说明
命令 |
说明 |
man 1 |
用户命令 |
man 2 |
系统调用 |
man 3 |
库调用 |
man 4 |
特殊文件 |
man 5 |
配置文件 |
man 6 |
游戏 |
man 7 |
杂项 |
man 8 |
系统命令 |
3.2 获取帮助的方法
mandb
man passwd
man -k passwd
man 5 passwd
man setfacl | grep -B 1 lisa
setfacl --help | grep \\-a
setfacl --help | grep -w \\-a
pinfo 回车 u
pinfo ls
rpm -qa | grep httpd
rpm -ql 软件包名称
rpm -qc
4 创建、查看、编辑文本
4.1 VIM的模式分类
模式 |
功能 |
命令模式 |
光标移动、复制、删除 |
输入模式 |
输入文本内容 |
末行模式 |
保存退出、设置环境 |
4.2 VIM的模式说明
4.2.1 命令模式
命令 |
解释 |
h j k l |
左下上右 |
方向键 |
上下左右 |
1G、nG |
n代表一个数字,去第1行或n行 |
gg |
将光标定位到文章的顶端 |
G |
将光标定位到文章的底端($定位光标到行尾,0和^定位光标到行首) |
x,X |
向后删除一个字符、向前删除一个字符 |
dd,ndd |
删除1行,n是一个数字,n行 例如:dgg、dG、d$、d0 D |
yy,nyy |
复制1行,复制n行 |
p,P |
粘贴到下一行,粘贴到上一行 |
u |
撤销 |
ZZ |
保存退出 |
4.2.2 插入模式
a 字符后进入插入模式
i 当前字符位置进入插入模式
o 在下一行新创建一行进入插入模式
A 在行尾进入插入模式
I 在行首进入插入模式
O 在上一行新创建一行进入插入模式
s 删除光标位置字符并进入插入模式
S 删除光标所在行并进入插入模式
4.2.3 末行模式
命令 |
说明 |
w |
保存 |
q |
退出 |
wq |
退出并保存 |
q! |
强制退出 |
x |
保存退出 |
set nu |
设置行号 |
set nonu |
取消行号 |
:w /newfile |
另存为其他文件 例子:”:w /man.txt” |
:r /newfile |
读取/newfile到本文件中 例子: “:r /etc/passwd” |
:! command |
vim编辑过程中,查询linux “:! ls /“ |
: e! |
重新读取文件 |
4.2.4 其他模式
v、V或Ctrl+V
R
/word,?word
n,N
ctrl+v , jjj,I, 写入
4.3 VIM的缩进与保存
:set all
:set autoindent
:set tabstop=2
:set nu
[root@foundation0 ~]
set nu
set tabstop=2
[root@foundation0 ~]
set nu
4.4 VIM的替换
:s/// @@@ AAA ; ;;
:s/old/new/
:s/old/new/g
:
:%s/old/new/g
:
4.5 关于重定向
1=stand,2=error,&=1+2
echo $SHELL
echo 123456 > file1
grep root /etc/passwd > /opt/a.txt
grep apache /etc/passwd > /opt/a.txt
grep -n ^$ /etc/resolv.conf
grep na /etc/resolv.conf > /root/lines.txt
tc/resolv.conf > /root/lines.txt
5 管理本地用户和组
5.1 USER-用户
基本概念:用户用于访问计算机资源
0 超级用户
1000以下 系统用户
1000以上 普通用户
组与用户ID对应(自然创建)
5.1.1 useradd-添加用户
语法:useradd 选项 选项参数 用户名
option:
-u:指定用户uid
-g:指定主要群组
-G:指定附加群组
-s:指定shell环境 /bin/bash /sbin/nolgoin /bin/false
-c:指定描述
-d:指定用户家目录(通常不更改,如果设置,需要是未存在的目录)
例:
useradd user1 创建user1
passwd user1 为user1设置密码
id user1 查询用户信息
5.1.2 用户配置文件
[kiosk@foundation0 ~]$ vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[user1@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
123456
123456
[root@servera /]
[root@servera /]
[root@servera /]
useradd -u 3000 -g devops -s /bin/false -c student -d /tom10dir -G root tom10
5.1.3 usermod-修改用户
语法:usermod 选项 选项参数 用户名
option:
-u:指定用户uid
-g:指定主要群组
-G:指定附加群组
-s:指定shell环境 /bin/bash /sbin/nolgoin /bin/false
-c:指定描述
-d:指定用户家目录(通常不更改,且如设置需要是未存在的目录)
-a:额外指定附加组
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera opt]
[root@servera opt]
5.1.4 userdel-删除用户
语法:userdel 选项 选项参数 用户名
option:
-r:删除用户同时删除邮箱和家目录
[root@servera /]
5.2 PASSWORD-密码
5.2.1 设置密码
语法:passwd 用户名
[root@foundation0 /]
Changing password for user zhangsan.
passwd: all authentication tokens updated successfully.
[root@foundation0 /]
5.2.2 密码配置文件
路径:/etc/shadow
user2:$6$9R47OYVVaxga34EJ$Y3pGf5EnHpn6vfiBk5ZU1U89d7UiySOsnAs/fkFMuPRyhCZAvv0a6UXRVLGXqRUKwP34Sg0W/CYb1VQp7H08L0:20015:0:99999:7:::
说明:
第一列: 用户名
第二列: 密码(有密码状态,无密码状态,!!帐号锁定,* 该帐号永久不能登陆系统)
第三列: 密码的最后一次修改时间(从1970年1月1日至今的天数)18834=今天
第四列: 密码的最小时间(和第三列比较,密码修改相隔时间,或理解为密码自最后一次修改后多少天内不能再重复修改)
第五列: 密码的最大时间(密码有效期) 99999表示永久不过期(和第3列比,相当于自最后一次修改多久后必须变更密码,否则过期)
第六列: 密码过期前警告时间(和第5列比,在过n天你的密码就过期了,需要重设密码。)
第七列: 密码过期后帐号(宽限时间,第五列密码的最大时间到期后,还可以使用系统的宽限时间,该期间中可以继续使用系统,但是再次登入系统时强制修改密码,否则无法进入)
第八列: 帐号有效期(账号失效后,无论密码是否过期都不能使用。)
第九列: 保留列
5.3 GROUP-用户组
5.3.1 groupadd
语法:
groupadd 选项 选项参数 组名
-g:指定组ID
[root@servera /]
[root@servera /]
5.3.2 groupmod
语法:
groupmod 选项 选项参数 组名
-n:更改组名 groupmod -n 新组名 旧组名
[root@servera /]
5.3.3 groupdel
groupdel groupname
[root@foundation0 ~]
5.3.4 gpasswd
加入群组与清除群组成员
gpasswd
-a:添加用户到群组
-d:从组中清除用户
[root@foundation0 ~]
[root@foundation0 ~]
[root@foundation0 ~]
Adding user user2 to group root
[root@foundation0 ~]
Removing user user2 from group root
5.3.5 用户组配置文件
路径:/etc/group
[root@localhost ~]
upup:x:2006:
第一段: 组名
第二段: 组密码占位符号
第三段: gid
第四段: 用户列表
6 控制对文件的访问
6.1 系统安全的技术点对比
防火墙 semanage port ,
selinux semanage ...
软件app semanage boolean
文件系统权限 特殊权限 facl 隐藏权限 semanage fcontext
6.2 文件权限说明
权限表示 |
权限解释 |
r |
read(读) |
w |
write(写) |
x |
execute(执行) |
6.3 权限表示
-rw-r--r--. 1 stu1 class1 35 May 21 14:09 test
rw-r--r--
stu1 所有者
class1 所属组
6.4 系统权限的作用
权限 |
对文件的影响 |
对目录的影响 |
r |
cat |
ls |
w |
vim |
touch,rm,mkdir |
x |
./script |
cd |
6.5 符号修改文件权限
对象 |
设置方式 |
权限 |
u(user) |
+ (添加) |
r |
g(group) |
-(减去) |
w |
o(other) |
= (设置) |
x |
a(all) |
|
s(SUID、SGID)、t(Sbit) |
6.6 数字方式修改文件权限
rwx |
8进制表示 |
数字表示 |
r– |
100 |
4 |
-w- |
010 |
2 |
–x |
001 |
1 |
6.7 文件权限设置-chmod
u g o a + - = r w x s t
[root@node1 opt]
-rw-r--r--. 1 root root 0 Nov 24 04:55 test
[root@node1 opt]
[root@node1 opt]
-rwxr--r--. 1 root root 0 Nov 24 04:55 test
6.8 文件属主和属组-chown
chown 所有者:所属组 文件名
chown 该命令可以作用于文件、目录,修改时保证所有者的用户及组都是存在的。
例:chown user2:user2 newfile
[root@node1 opt]
-rwxr--r--. 1 root root 0 Nov 24 04:55 test
[root@node1 opt]
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@node1 opt]
[root@node1 opt]
-rwxr--r--. 1 student root 0 Nov 24 04:55 test
[root@node1 opt]
-rwxr--r--. 1 student harry 0 Nov 24 04:55 test
[root@node1 opt]
[root@node1 opt]
-rwxr--r--. 1 sally sally 0 Nov 24 04:55 test
[root@node1 opt]
drwxrwxr-x. 2 root root 19 Nov 24 05:15 dir1
[root@node1 opt]
[root@node1 opt]
drwxrwxr-x. 2 sally sally 19 Nov 24 05:15 dir1
6.9 文件默认权限-umask
[root@servera /]
0022
[root@servera /]
修改完后,可以去文件和目录查看权限,看是否和之前不一样,看完改回来
[root@servera /]
[root@servera /]
6.10 umask的计算
文件默认权限666
umask后三位022
快捷方法:变成权限后相减
rw-rw-rw- = 666 文件系统默认权限
----w--w- = 022 umask值
------------------------------
rw-r--r-- = 644 创建文件时的默认权限
目录默认权限777
rwxrwxrwx = 777 目录系统默认权限
----w--w- = 022 umask值
------------------------------
rwxr-xr-x = 755 创建目录时的默认权限
故系统中应设置为:0022
文件权限是r-- --- ---, 400 文件夹是dr-x --- --- 500
umask?
目录
rwxrwxrwx = 777
r-x------ = 500
-------------------
-w-rwxrwx = 277
文件
rw-rw-rw- = 666
-w-rwxrwx = umask
------------------
r------- = 400
参考umask计算方法:https://www.cnblogs.com/wyllearning/p/16482006.html
如果减法时目录和文件权限不一致时,以目录的为准计算umask值
6.10 特殊权限
文件系统权限可以完成一些基本权限功能设置,但有些特殊要求是达不到的,可能需要特殊权限来完成
Linux系统中特殊权限有三个:SUID 4 、SGID 2 、SBIT 1
6.10.1 SUID 4
[student@clear ~]$ cat /etc/shadow
[student@clear ~]$ su - root
[root@clear ~]
[root@clear ~]
-rwsr-xr-x. 1 root root 34512 Aug 13 2018 /usr/bin/cat
[student@clear ~]$ su - studnet
[student@clear ~]$ cat /etc/shadow
1.执行权限位大S是,没有x
2.执行权限位小s是该位,有x
6.10.2 SGID 2
[root@clear opt]
[root@clear opt]
drwxr-sr-x. 2 student student 22 Nov 19 04:51 dir1
[root@clear opt]
[root@clear opt]
-rw-r--r--. 1 root student 0 Nov 19 04:52 dir1/root1.txt
6.10.3 SBIT 1
[root@clear opt]
[root@clear opt]
drwxrwxrwt. 2 root root 6 Nov 19 04:56 /opt/share/
[root@clear opt]
Last login: Sat Nov 19 04:55:24 EST 2022 on pts/0
[student@clear ~]$ touch /opt/share/student.txt.haha
[student@clear ~]$ logout
[root@clear opt]
Last login: Sat Nov 19 04:55:38 EST 2022 on pts/0
[tom@clear ~]$ rm -f /opt/share/student.txt.haha
rm: cannot remove '/opt/share/student.txt.haha': Operation not permitted
7 进程监控及管理
yum install -y psmisc
pstree -p
7.1 查看进程
ps -l
ps aux
ps aux | grep http
[root@servera ~]
ps aux |grep httpd
top
7.2 终止进程
7.2.1 kill命令
-s sig SIG is a signal name
-n sig SIG is a signal number
kill -s SIGKILL httpd
kill -n 9 httpd
[root@node1 /]
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
[root@node1 /]
[1] 1372
[root@node1 /]
[root@node1 /]
[root@node1 /]
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 0 1313 1312 0 80 0 - 59084 - pts/1 00:00:00 bash
0 R 0 1374 1313 0 80 0 - 63799 - pts/1 00:00:00 ps
[1]+ Killed vim 1
7.2.2 killall命令
systemctl start httpd
ps aux | grep httpd
killall httpd
yum provides killall
yum install -y psmisc-23.1-3.el8.x86_64
killall httpd
ps aux | grep httpd
7.3 作业控制jobs
[root@servera ~]
ctrl + z
[root@servera ~]
[1]+ Stopped dd if=/dev/zero of=./bigfile bs=1M count=1000
[root@servera ~]
[1]+ dd if=/dev/zero of=./bigfile bs=1M count=1000 &
[root@servera ~]
[1]+ Running dd if=/dev/zero of=./bigfile bs=1M count=1000 &
[root@servera ~]
[root@servera ~]
[2]- Stopped vim file2
[root@servera ~]
[2]- Killed vim file2
[3]+ Stopped nice -n -10 vim file4
7.4 进程优先级调整
1.进程优先级数字越小,优先级越高
2.优先级不能直接改,可以通过nice值来影响优先级
3.旧优先级 + nice值 = 新优先级
80 -10 = 70
1.产生新进程时,设置nice值
nice -n -5 vim file2 &
2.修改现有进程nice值
renice -n 10 PID
renice -n 10 28183
8 控制服务与守护进程
8.1 服务状态关键字段
字段 |
描述 |
Loaded |
服务单元是否加载到内存 |
Active |
服务单元是否在运行,运行了多久 |
Main PID |
服务的主进程ID,包括命令名称 |
Status |
有关该服务的其他信息 |
8.2 systemctl管理服务
systemctl -t help
systemctl list-units --type service 列出当前服务器加载的服务单元
systemctl status httpd.service 查看某个服务
[root@servera system]
[root@servera system]
active
[root@servera system]
[root@servera system]
enabled
[root@servera system]
Removed /etc/systemd/system/multi-user.target.wants/httpd.service.
[root@servera system]
disabled
1、安装 yum install -y httpd
2、启动 systemctl start httpd.service (单元文件)/usr/lib/systemd/system/
3、查进程 ps aux | grep httpd , 每个服务有自己的守护进程/usr/sbin/httpd
4、查端口 netstat -ntlp ,找到80端口,对应Listen监听状态 对应httpd服务
8.3 服务状态分类
关键字 |
描述 |
loaded |
单元配置文件已处理 |
active(running) |
正在通过一个或多个持续进程与运行 |
active(exited) |
已成功完成一次性配置 |
active(waiting) |
运行中,但正在等待事件 |
inactive |
不在运行 |
enabled |
在系统引导时启动 |
disabled |
未设为在系统引导时启动 |
static |
无法启动,但可以由某一启动的单元自动启动 |
8.4 管理系统服务
语法:systemctl 管理命令 unitname
管理命令 |
描述 |
status |
查看状态 |
start |
开启 |
stop |
关闭 |
restart |
重启 |
reload |
加载配置文件 |
enable |
开机启动 |
disable |
关闭开机启动 |
is-active |
查看服务状态是否启动 |
is-enabled |
查看服务是否开机自启动 |
list-dependencies 【unitname】 |
查看单元依赖 |
mask |
禁止服务,无法启动或开机启动 |
unmask |
解除码 |
9 OPENSSH服务
9.1 ssh常用功能
[root@servera ~]
[root@servera ~]
[root@serverb /]
root@172.25.250.10's password:
newfile 100% 0 0.0KB/s 00:00
[root@servera opt]# ssh root@172.25.250.11 'yum install -y httpd'
ssh root@172.25.250.11 'yum install -y httpd'
9.2 ssh免密登录
[root@servera ssh]
[root@servera ssh]
[root@serverb /]
[root@serverb .ssh]
authorized_keys known_hosts
[root@servera ssh]
9.3 ssh服务控制
[root@serverb ~]
PermitRootLogin no
[root@serverb ~]
9.4 sudo命令
[student@servera ~]$ yum remove -y httpd
Error: This command has to be run under the root user.
[root@servera /]
root ALL=(ALL) ALL
student ALL=(ALL) ALL
[student@servera ~]$ sudo yum remove -y httpd
[sudo] password for student: student
usermod -G wheel tom
%admin ALL=(ALL) NOPASSWD: ALL
[root@serverb ~]
[root@serverb ~]
[root@serverb ~]
[root@serverb ~]
[harry@serverb ~]$ sudo -i
[sudo] password for harry:
10 日志分析与存储
10.1 系统中的日志文件
日志文件 |
存储的消息类型 |
/var/log/messages |
大多数系统日志消息处存放处 |
/var/log/secure |
与安全性和身份验证时间相关的syslog消息 |
/var/log/maillog |
与邮件服务器相关的syslog消息 |
/var/log/cron |
与计划任务执行相关的syslog消息 |
/var/log/boot.log |
与系统启动相关的消息 |
10.1.1 rsyslog服务管理日志
[root@haha log]
[root@clear log]
/etc/logrotate.d/syslog
/etc/rsyslog.conf
/etc/sysconfig/rsyslog
[root@clear log]
10.1.2 记录日志的规则
mail.info /var/log/vsftpd.log
AAAA.BBBB CCCC
AAAA 产生日志的设备(类别)
BBBB 日志的级别
CCCC 保存日志的位置
10.1.3 rsyslog配置文件类别
类别 |
说明 |
Kern |
内核 |
authpriv |
授权和安全 |
cron |
计划任务 |
mail |
邮件 |
daemon |
系统守护进程 |
user |
普通用户级别的 |
syslog |
由rsyslog生成的信息 |
loca10~loca17 |
自定义本地策略 |
* |
所有类别 |
10.1.4 日志级别
等级 |
解释 |
EMERG(紧急) |
会导致主机系统不可用的情况 |
ALERT(警告) |
必须马上采取措施解决的问题 |
CRIT(严重) |
比较严重的情况 |
ERR(错误) |
运行出现错误 |
WARNING(提醒) |
可能会影响系统功能的事件 |
NOTICE(注意) |
不会影响系统但值得注意 |
INFO(信息) |
一般信息 |
DEBUG(调试) |
程序或系统调试信息等 |
* |
所有等级 |
none |
不记录日志 |
*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info
;分号是不同设备等级的分隔符号
-/var/log/maillog
10.1.5 logger发送测试日志
1 查看rsyslog服务是否开启 (默认系统已开启)
[root@servera ~]
2 编辑rsyslog配置文件
[root@servera ~]
local7.* /var/log/boot.log
.
.
*.debug /var/log/messages.debug
3 重启rsyslog日志服务让配置生效
[root@servera ~]
4 开另一个窗口 ctrl+shift+t
[root@servera ~]
5 使用logger命令生成一个user类别,debug级别的日志内容为“Debug test messages”
[root@servera ~]
6 在第4步的窗口中查看新生成日志信息
[root@servera ~]
Jun 18 14:45:31 servera root[29174]: messages haha
10.2 journalctl
journalctl
journalctl -n
journalctl -n 5
journalctl -p err 日志等级
journalctl -f
journalctl -p err
journalctl -p info
(deubg、info、notice、warning、err、crit、alert、emerg)
journalctl --since "2020-02-28 22:53:35" --until "2020-02-28 22:53:40"
10.2.1 journalctl常用字段
常用字段 |
含义 |
_COMM |
命令名称 |
_EXE |
进程的可执行文件的路径 |
_PID |
进程的PID |
_UID |
UID |
_SYSTEM_UNIT |
启动该进程的systemd单元 |
journalctl -o verbose
journalctl _HOSTNAME=localhost
journalctl _HOSTNAME=localhost _PID=1
102.2 保存journal服务文件
mandb
man -k journal
man 5 journald.conf , Storage=
[root@clear journal]
[root@clear journal]
[root@clear journal]
drwxr-sr-x. 4 root systemd-journal 86 Nov 19 04:30 /var/log/journal
[root@clear journal]
[root@clear journal]
total 8192
-rw-r-----. 1 root root 8388608 Nov 19 04:30 system.journal
[root@clear journal]
10.3 准确的系统时间
UTC:通用协调时
(UTC时间0点是北京时间8点,因为中国、新加坡、马来西亚、菲律宾等国的时间与UTC的时差均为+8,也就是UTC+8,所以当UTC时间0点,北京时间即为0+8=8点)
GMT:格林威治标准时间
CST:中国标准时间 (China Standard Time)
(中国大陆、中国香港、中国澳门、中国台湾、蒙古国、新加坡、马来西亚、菲律宾、西澳大利亚州的时间与UTC的时差均为+8,也就是UTC+8)
RTC:(Real-Time Clock)也称为硬件时间:RTC是芯片内置的硬件时钟,只要芯片不断电,即使操作系统关机的时候,RTC时钟也是正常在 走的,所以当操作系统关机重启后,可通过读取RTC时间来更新系统时间
(可通过hwclock命令来获取具体的时间
-r 查看硬件时间
-s 硬件时间设置到系统
-w 系统设置到硬件)
10.3.1 timedatectl命令
[root@servera log]
Local time: Sat 2020-02-29 08:51:49 CST
Universal time: Sat 2020-02-29 00:51:49 UTC
RTC time: Sat 2020-02-29 08:11:07
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
[root@servera log]
[root@servera log]
[root@servera log]
Local time: Sat 2020-02-29 08:55:48 HKT
Universal time: Sat 2020-02-29 00:55:48 UTC
RTC time: Sat 2020-02-29 08:15:06
Time zone: Asia/Hong_Kong (HKT, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
timedatectl set-time "2020-02-30 10:00:00"
Failed to set time: NTP unit is active
timedatectl set-ntp false
timedatectl set-time "2020-02-30 10:00:00"
timedatectl set-ntp true
10.3.2 chrony命令
server
===server选项格式===
server host [ key n ] [ version n ] [ prefer ] [ mode n ] [ minpoll n ] [ maxpoll n ] [ iburst ]
其中host是上层NTP服务器的IP地址或域名,随后所跟的参数解释如下所示:
◆ key: 表示所有发往服务器的报文包含有秘钥加密的认证信息,n是32位的整数,表示秘钥号。
◆ version: 表示发往上层服务器的报文使用的版本号,n默认是3,可以是1或者2。
◆ prefer: 如果有多个server选项,具有该参数的服务器有限使用。
◆ mode: 指定数据报文mode字段的值。
◆ minpoll: 指定与查询该服务器的最小时间间隔为2的n次方秒,n默认为6,范围为4-14。
◆ maxpoll: 指定与查询该服务器的最大时间间隔为2的n次方秒,n默认为10,范围为4-14。
◆ iburst: 当初始同步请求时,采用突发方式接连发送8个报文,时间间隔为2秒。
[root@servera ~]
[root@servera ~]
[root@servera ~]
server classroom.exmaple.com iburst
[root@servera ~]
[root@servera ~]
11 RHEL网络管理
11.1 IPv4地址
IP/(NETMASK\|PREFIX) 172.25.0.9/255.255.0.0 \| 172.25.0.9/16
--- ---------------------- --------------------------------------------
GATEWAY 172.25.x.x
DNS 正向解析 \# host servera, 反向解析 \# host
私有地址:
A 1-127
B 128-191
C 192-223
IP地址分类默认对应的子网掩码掩码:
A:255.0.0.0 11111111.00000000.00000000.00000000 /8
B:255.255.0.0 11111111.11111111.00000000.00000000 /16
C:255.255.255.0 11111111.11111111.11111111.00000000 /24
11.1.1 IP与掩码二进制与运算
网络地址 172.25.0.0 主机位全0
---------- ---------------- -----------
广播地址 172.25.255.255 主机位全1
11.1.2 查看ipv4与ipv6
[root@servera ~]
[root@servera ~]
[root@servera ~]
[root@servera ~]
[root@servera ~]
11.1.3 端口与服务
lsof -i:80 或 netstat
-n:显示接口和端口编号
-t:tcp信息
-u:udp信息
-l:监听状态信息
-a:显示所有信息
-p:显示协议名称而不是端口
netstat -ntlp | grep 80
11.2 网络管理工具
11.2.1 nmcli的概念
1.使用nmcli管理网络服务NetworkManager
2.nmcli工具的功能:查看网络设备、创建网络连接、修改网络配置
3.nmcli的特点及概念:
nmcli工具可以对网卡或网卡配置文件操作
device ---- 网卡设备
connection --- 连接 指的就是网卡配置文件
一个device可以拥有多个connection,同一时间只能启用一个connection,且一个connection只能属于一个device
4.举例:
device-----eth0
connection1 ---- dhcp 自动获取IP
connection2 ---- static 静态IP
11.2.2 nmcli管理网络
mandb
man -k nmcli
nmcli (1)
nmcli-examples (7)
man nmcli | grep -A 2 'nmcli connection add'
-basic
[root@servera ~]
[root@servera ~]
[root@servera ~]
-add---添加
dhcp方式:
[root@servera ~]
[root@servera ~]
static方式:
[root@servera ~]
[root@servera ~]
NAME UUID TYPE DEVICE
Wired connection 1 1f5ad5ae-e926-3f54-9805-33174e63af47 ethernet eth0
static 980f6712-86b7-4d92-bc84-62e677ccabfc ethernet eth1
dhcp 82c4a93f-1ca2-432b-94da-59a6c4f5aaca ethernet --
Wired connection 2 e801f880-78a6-3344-857f-588f7495bb26 ethernet --
[root@servera /]
[root@servera /]
-modify---修改
[root@servera ~]
[root@servera ~]
[root@servera ~]
inet 192.168.0.2/24 brd 192.168.0.255 scope global noprefixroute eth1
[root@servera ~]
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.250.254 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 192.168.0.200 0.0.0.0 UG 101 0 0 eth1
[root@servera ~]
search lab.example.com example.com
nameserver 172.25.250.254
nameserver 114.114.114.114
[root@serverb ~]
Connection 'static' (b85e6a57-b8f7-421f-8d15-9ff5e27cbb85) successfully deleted.
-up_down---启动与关闭网卡
[root@servera /]
-off---关闭网络服务
[root@servera /]
11.2.3 图形化管理工具nmtui
nmtui-edit
图形化管理配置
通过点击设置--network--网卡设置,ipv4address netmask dns gateway
nmtui-edit
[root@servera /]
11.2.4 网卡配置文件
-RHEL8 版本
vim /usr/share/doc/initscripts/sysconfig.txt 帮助手册
修改配置文件方式修改IP
[root@servera ~]
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.25.250.100
PREFIX=24
GATEWAY=172.25.250.254
DNS1=xxxx
加载网卡配置文件方法一:
[root@serverb network-scripts]
[root@serverb network-scripts]
systemctl restart NetworkManager
-RHEL9版本 网卡配置文件位置
[root@node1 system-connections]
11.3 更改网络信息
11.3.1 主机名
[root@servera ~]
servera.lab.example.com
[root@servera ~]
[root@servera ~]
[root@servera ~]
11.3.2 网关(gateway)
nmcli con add con-name xxx ipv4.gateway xxx.xxx.xxx.xxx 配置网关
nmcli con mod xxx ipv4.gateway xxx.xxx.xxx.xxx 修改网关
以上两种改完之后,需要nmcli con up xxx
vim /etc/sysconfig/network-scripts/ifcfg-xxxx
GATEWAY=xxx.xxx.xxx.xxx
修改完后要nmcli con reload ,再nmcli con up xxxx
11.3.3 查看路由及网关
[root@servera ~]
default via 172.25.250.254 dev enp1s0 proto static metric 100
172.25.250.0/24 dev enp1s0 proto kernel scope link src 172.25.250.10 metric 100
[root@servera ~]
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.25.250.254 0.0.0.0 UG 100 0 0 enp1s0
172.25.250.0 0.0.0.0 255.255.255.0 U 100 0 0 enp1s0
[root@servera ~]
ipv4.gateway: 172.25.250.254
[root@servera ~]
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 172.25.250.254 0.0.0.0 UG 0 0 0 enp1s0
172.25.250.0 0.0.0.0 255.255.255.0 U 0 0 0 enp1s0
11.3.4 指定DNS
vim /etc/resolv.conf
nameserver 172.25.250.254
[root@servera ~]
classroom.example.com has address 172.25.254.254
[root@servera ~]
Server: 172.25.250.254
Address: 172.25.250.254
Name: classroom.example.com
Address: 172.25.254.254
[root@servera ~]
12 归档与系统间复制文件
12.1 归档及压缩
-c 创建
-t 查看
-f 指定文件名
-v 显示详细信息
-x 解包
-C 指定解包路径
man tar
tar -cvf /root/etc.tar /etc/
12.1.1 文件及目录打包、解包
[root@servera opt]
etc.tar file1 file2 file3
[root@servera opt]
[root@servera opt]
etc.tar file1 file2 file3 file.tar
[root@servera opt]
[root@servera opt]
file1 rclocal.log
file2 rht-bastion
file3 rht-default
NIC1 rht-vm-hosts
NIC2 systemd-private-ef2feb022cd2465c9dd920878a1d962b-chronyd.service-kRKFp0
[root@servera opt]
[root@servera opt]
etc.tar file1 file2 file3 file.tar
[root@servera opt]
12.1.2 文件压缩
[root@servera opt]
[root@servera opt]
file1.gz: gzip compressed data, was "file1", last modified: Sun Mar 1 05:54:06 2020, from Unix, original size 0
[root@servera opt]
[root@servera opt]
file2.bz2: bzip2 compressed data, block size = 900k
[root@servera opt]
[root@servera opt]
etc.tar file1.gz file2.bz2 file3 file.tar.xz
12.1.3 tar打包并压缩
man tar | grep gzip
-z gzip -j bzip2 -J xz
tar -zcvf /root/etc.tar.gz /etc/
file etc.tar.gz
tar -jcvf /opt.tar.bz2 /opt/
tar -Jcvf /root/etc.tar.gz /etc/
tar -zxvf etc.tar.gz -C /opt/
tar xf etc.tar.gz -C /opt/
12.2 远程传输
12.2.1 远程文件传输
scp servra.txt root@bastion:/opt/
scp root@bastion:/opt/bastion.txt .
ID app roles
---- ------- ----------------
1 ftp client
2 sftp ssh SubService
3 vsftp service
[root@servera opt]
[root@servera opt]
instructor@classroom.example.com's password:
Connected to instructor@classroom.example.com.
sftp> cd /tmp/
sftp> put /opt/put.txt
Uploading /opt/put.txt to /tmp/put.txt
/opt/put.txt 100% 0 0.0KB/s 00:00
sftp> ls
12.2.2 同步文件内容
[root@servera tmp]
[root@servera tmp]
[root@servera tmp]
13 安装和升级软件包
13.1 RPM包管理
13.1.1 rpm包语法
1、互联网(下载光盘镜像.iso)、直接使用网络yum源
2、光盘
-i 安装
-v 显示过程
-h 以易读方式显示进度条
-e 卸载
rpm -ivh xxx.rpm
1. 在f0中进入软件包的存储位置
[root@foundation0 /]
[root@foundation0 Packages]
/content/rhel8.0/x86_64/dvd/AppStream/Packages
2.安装软件
[root@foundation0 Packages]
13.1.2 rpm包查询命令
-q: query 查询,和其他参数配合
-l:list 列出软件包安装后给系统带来的所有文件
-a:all 查看所有已安装的软件包
-c: configure 查看软件包提供的配置文件
rpm -qa | grep telnet
rpm -qc openssh-server-8.0p1-4.el8_1.x86_64
[root@node1 /]
telnet-0.17-73.el8.x86_64
[root@node1 /]
[root@node1 /]
package telnet is not installed
13.2 YUM工具
13.2.1 管理yum源文件
[root@servera /]
[root@servera yum.repos.d]
[root@servera yum.repos.d]
[root@servera yum.repos.d]
[root@servera yum.repos.d]
[AppStream]
name=AppStream
baseurl=http://content.example.com/rhel8.4/x86_64/dvd/AppStream
gpgcheck=0
enabled=1
[BaseOS]
name=BaseOS
baseurl=http://content.example.com/rhel8.4/x86_64/dvd/BaseOS
gpgcheck=0
enabled=1
[root@servera yum.repos.d]
[root@servera yum.repos.d]
[root@servera yum.repos.d]
[root@servera yum.repos.d]
[root@servera yum.repos.d]
13.2.2 yum源命令配置
1 找到提供yum-config-manager命令的软件包名称
[kiosk@foundation0 ~]$ yum provides yum-config-manager
2 安装yum-utils软件
[root@servera ]
3 通过yum-config-manager命令部署yum源
[root@servera ]
[root@servera ]
[root@servera ]
4 命令制作的yum源中没有gpgcheck选项,如何配置?可以通过以下方法:
1、此处可以在/etc/yum.repos.d/xx.repo文件里添加 gpgcheck=0
2、rpm --import ‘公钥地址’ 导入公钥`
[root@servera yum.repos.d]
5.开启或关闭
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
13.2.3 YUM常见的命令
yum list http*
yum search httpd
yum info httpd-manual
[root@servera /]
[root@servera /]
[root@servera /]
[root@servera /]
13.3 第三方YUM源
1.虚拟机联网
虚拟机设置里面NAT选择已连接 nmcli connection up ens192
2.百度搜索(阿里源、华为源...),将.repo文件下载到系统
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
3.验证
cd /etc/yum.repos.d/;ls
yum repolist all
yum install -y vsftpd
14 访问Linux文件系统
14.1 存储管理
14.1.1 文件系统、存储和块设备
块设备 |
含义 |
/dev/sda、/dev/sdb |
STAT/SAS(新SCSI技术)/USB 附加存储 |
/dev/vda、/dev/vdb |
virtio-blk 超虚拟化存储(部分虚拟机) |
/dev/nvme0,/dev/nvme1 |
附加存储 (SSD) |
/dev/mmcblk0、/dev/mmcblk1 |
SD卡 |
14.1.2 磁盘分区
1 分区,gpt方案 ,分2个区,每个1G
[root@servera ~]
Command (m for help): m
d delete a partition
n add a new partition
p print the partition table
w write table to disk and exit
Create a new label
g create a new empty GPT partition table
o create a new empty DOS partition table
Command (m for help): g
Created a new GPT disklabel (GUID: D29B3E19-BA51-1042-BFE6-0FD975D1B7DB).
Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-10485726, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-10485726, default 10485726): +1G
Created a new partition 1 of type 'Linux filesystem' and of size 1 GiB.
Command (m for help): p
Disklabel type: gpt
Device Start End Sectors Size Type
/dev/vdb1 2048 2099199 2097152 1G Linux filesystem
Command (m for help): n
Partition number (2-128, default 2):
First sector (2099200-10485726, default 2099200):
Last sector, +sectors or +size{K,M,G,T,P} (2099200-10485726, default 10485726): +1G
Command (m for help): p
Device Start End Sectors Size Type
/dev/vdb1 2048 2099199 2097152 1G Linux filesystem
/dev/vdb2 2099200 4196351 2097152 1G Linux filesystem
Command (m for help): w
[root@servera ~]
Device Start End Sectors Size Type
/dev/vdb1 2048 2099199 2097152 1G Linux filesystem
/dev/vdb2 2099200 4196351 2097152 1G Linux filesystem
[root@servera ~]
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 252:16 0 5G 0 disk
├─vdb1 252:17 0 1G 0 part
└─vdb2 252:18 0 1G 0 part
2 格式化,将两个分区分别格式化为ext4和xfs文件系统
mkfs -t ext4 /dev/vdb1 mkfs.ext4 /dev/vdb1
[root@servera /]
[root@servera /]
0
[root@servera /]
[root@servera /]
0
[root@servera ~]
[root@servera ~]
NAME FSTYPE LABEL UUID MOUNTPOINT
vdb
├─vdb1 ext4 ecb332da-5bf4-4b86-b92e-d9da25f22a07
└─vdb2 xfs b538bf38-2b33-4d53-a785-372627587c52
3 挂载
创建挂载点 mkdir /mnt/disk1
文件系统:格式化后的设备或分区 挂载点:linux中的空目录
挂载:
mount 文件系统 挂载点 mount /dev/vdb1 /mnt/disk1
卸载:
umount 文件系统/挂载点 umount /dev/vdb1 or umount /mnt/disk1
[root@servera ~]
NAME FSTYPE LABEL UUID MOUNTPOINT
vdb
├─vdb1 ext4 ecb332da-5bf4-4b86-b92e-d9da25f22a07
└─vdb2 xfs b538bf38-2b33-4d53-a785-372627587c52
[root@servera ~]
[root@servera ~]
disk1 disk2
[root@servera ~]
[root@servera ~]
[root@servera ~]
Filesystem Type Size Used Avail Use% Mounted on
/dev/vdb1 ext4 976M 2.6M 907M 1% /mnt/disk1
/dev/vdb2 xfs 1014M 40M 975M 4% /mnt/disk2
[root@servera ~]
/mnt/
├── disk1
│ ├── haha.txt
│ └── lost+found
└── disk2
└── heihei.txt
卸载
[root@servera ~]
[root@servera disk2]
umount: /mnt/disk2: target is busy.
[root@servera disk2]
[root@servera /]
[root@servera /]
tmpfs 183M 0 183M 0% /run/user/0
/dev/vdb1 976M 2.6M 907M 1% /mnt/disk1
14.1.3 检查文件系统
-T 查看文件系统类型
-h 以易读方式列出容量单位
du查看文件大小
[root@servera /]
[root@servera /]
[root@servera /]
24M /etc/
[root@servera /]
8 /etc/man_db.conf
[root@servera /]
8.0K /etc/man_db.conf
[root@servera /]
-rw-r--r--. 1 root root 5165 Nov 7 2018 /etc/man_db.conf
14.2 文件查找
updatedb
locate passwd
locate -i image
locate -n 5 image
find 查找范围 查找条件 动作(可选)
find / -name passwd
-name: 以文件名的形式查找
-size: 根据文件大小 -size 1k :大小为1k的文件,+1k大于1k的文件,-1k小于1k的文件
-user / -uid: 文件所有者 -user studnet :student是用户名,查找student拥有的文件
-group / -gid
-perm: 权限查找 -perm 700 :搜索权限为700的文件
-type: 按文件类型 -type f : f表示文件,d表示目录
-exec: 选项后接Linux指令,操作查找到的文件 command {} ;
find /etc -name sshd_config
find / -user student | xargs ls -l
find / -perm 700 -type d -user student | xargs ls -ld
find /etc -type f -size +3k -and -size -10k
find / -perm -4000 | xargs ls -ld
将系统中student用户的文件复制到/root/studentdir目录中,并且保留权限
[root@servera ~]
将系统中student用户的文件列表保存到/root/studentdir文件中
find / -user student > /root/studentdir
14.3 ln 软链接与硬链接
ln -s dir1 linkdir1
ln 源文件 链接文件
ln /opt/sou_file.txt /opt/link_file.txt
[root@servera opt]
14.4 软链接和硬链接区别
1.命令相同 参数不同
2.硬链接的权限和源文件完全一致、软链接的链接文件权限永远是777,和源文件权限不同
3.硬链接可以删除,移动源文件、软链接不可以删除,移动源文件
4.软链接inode和源文件不同、硬链接的inode的源文件相同
5.软链接可以对目录及文件生效、硬链接只可以对文件操作
6.软链接可以跨文件系统、硬链接不可以跨文件系统