[root@localhost~]# 用户名@主机名 家目录 #管理员 $普通用户
[root@192 /]# su root
[root@A /]# pwd
/
[root@A /]# su -l wc
[wc@A ~]$ pwd
/home/wc
[root@192 ~]# cd .
[root@192 ~]# cd ..
[root@192 ~]# cd -
/
[root@192 ~]# cd ~
[root@192 /]# hostname
192.168.71.134
[root@192 /]# hostname A
[root@192 /]# hostnamectl set-hostname A
[root@192 /]# whoami
root
[root@192 /]# passwd
Changing password for user root.
New password:
[root@192 /]# passwd -d USERNAME
[root@A etc]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.5 (Ootpa)
[root@A etc]# uname -r
4.18.0-348.el8.x86_64
[root@A etc]# uname
Linux
[root@A etc]# pstree
[root@A etc]# tree
root@A etc]# tty
/dev/pts/1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XdHzpm59-1659328438707)(%E7%A0%B4%E8%A7%A3%E5%AF%86%E7%A0%81/7.1.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eTQocLRB-1659328438708)(%E7%A0%B4%E8%A7%A3%E5%AF%86%E7%A0%81/7.2.png)]
mount -o remount,rw /sysroot
chroot /sysroot
passwd root
echo redhat | passwd --stdin root
New password:
Retype new passwd:
显示下面表示成功
passwd: all authentication tokens updated successfully/
touch /.autorelabel
sh-4.4# exit
exit
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KZPHKs5x-1659328438709)(%E7%A0%B4%E8%A7%A3%E5%AF%86%E7%A0%81/7.10.png)]
主命令 选项 参数(操作对象)
概念:指定命令的运行特性,指明要运行命令中的哪一个代码功能
短选项:例如-l , -d 如果同意命令同时使用多个短选项,可数多合并,
长选项:例如–help
[root@192 ~]# help cd
[root@192 ~]#cat --help
cat [OPTION]... [FILE]... 表明cat后面可以加上多个可选的选项以及多个可选的文件参数
[root@192 ~]# man help
按键 | 作用 |
---|---|
空格键,PaGe down | 先上一页 |
b,PaGeUP | 先下一页 |
home | 转到首页 |
end | 转到首尾 |
/ | 从上至下搜索关键字如“/cat” |
? | 从下至上搜索关键字如“?cat” |
n | 定位到下一个搜索到的关键字 |
N | 定位到上一个搜索到的关键字 |
q | 退出帮助文档 |
结构名称 | 代表意义 |
---|---|
NAME | 命令的名称 |
SYNOPSIS | 参数的大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示(附带简单说明) |
OVERVIEW | 概述 |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
info与man的用途其实差不多,都是用来查询命令的用法或者是文件的格式。但是与man page不同的 是,info page则是将文件数据拆成一个一个的段落,每个段落用自己的页面来撰写, 并且在各个页面中 还有类似网页的『超链接』来跳到各不同的页面中,每个独立的页面也被称为一个节点(node)。
不过你要查询的目标数据的说明文件必须要以info的格式来写成才能够使用info的特殊功能(例如超链 接)。 而这个支持info命令的文件默认是放置在/usr/share/info/这个目录当中的。
[root@192 ~]# info info
快捷键 | 作用 |
---|---|
上箭头 | 向上移动一行 |
下箭头 | 向下移动一行 |
PgUp | 向上翻一页 |
PgDn | 向下翻一页 |
Tab | 在有*符号的节点进行切换 |
回车 | 进入有*符号的子页面,查看详细帮助信息 |
u | 进入上一层信息 |
n | 进入下一小节信息 |
p | 回到上一小节信息 |
s或/ | 在info page中使用关键字搜索 |
? | 查看帮助信息 |
q | 退出 |
data命令用于显示或设置系统的时间与日期,语法格式为:date[OPTION]…[+FORMAT]
用户只需要在date命令后输入以+开头的参数,就可以按照指定的格式输出系统时间或日期。
参数 | 作用 |
---|---|
%Y | 完整年份(2022) |
%m | 月份(1-12) |
%d | 本月中的第几天 |
%H | 小时(00–23) |
%M | 分钟(00–59) |
%j | 今年中的第几天(从01-01开始计算) |
[root@192 ~]# date
Sun Jul 31 04:40:49 CST 2022
[root@192 ~]# date "+%j"
212
[root@192 ~]# date "+%Y-%m-%d %H:%m:%S"
2022-07-31 04:07:50
[root@192 ~]# date +'%F %T'
2022-07-31 04:45:48
[root@192 ~]# date 073104502022
Sun Jul 31 04:50:00 CST 2022
root@192 ~]# date -s "20220731 4:52:50"
Sun Jul 31 04:52:50 CST 2022
timedatectl命令用于设置系统的时间,英文全称为:“time date control",语法格式为:timedatectl[OPTIONS…] COMMAND …
参数 | 作用 |
---|---|
statuc | 显示状态信息 |
list-timezones | 列出已知时区 |
set-timezone | 设置生效时区 |
set-time | 设置系统时间 |
[root@192 ~]# timedatectl status
Local time: Sun 2022-07-31 04:58:58 CST
Universal time: Sat 2022-07-30 20:58:58 UTC
RTC time: Sat 2022-07-30 20:59:08
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
[root@192 ~]# timedatectl set-timezone Asia/Shanghai
[root@192 ~]# timedatectl set-time 2022-07-31
[root@192 ~]# timedatectl set-time 5:03
选项 | 功能 |
---|---|
-l | 以长格式显示文件和目录的详细信息,ls命令默认只显示名称的短格式 |
-d | 显示指定目录本身的信息,而不显示目录下的各个文件和子目录的信息 |
-c | 按文件的修改时间排序显示 |
-h | 显示出目录和文件的大小,默认单位是字节,与-l选项 配合使用 |
-R | 以递归的方式显示指定目录及其子目录中的所有内容 |
-a | 显示所有文件,包括名称以”.“开头的隐藏目录和隐藏文件 |
-A | 与-a相同,区别是不显示".“和表示父目录的”…" |
-i | 显示文件索引点号。一个索引节点代表一个文件,每个文件都有一个编号,称为索引点号inode |
-s | 按照文件大小排序 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wV8Xjzmc-1659328438710)(%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE/Linux%E7%9B%AE%E5%BD%95.png)]
使用ls-l 查看第一个字符 | 文件类型 | 说明 |
---|---|---|
- | 普通文件 | 类似于windows的记事本 |
d | 目录文件 | 类似于windows文件夹 |
c | 字符设备文件 | 串行端口设备,顺序读写,键盘 |
b | 块设备文件 | 可供存储的接口设备,随机读写,硬盘 |
p | 管道文件 | 用于进程间的通信 |
s | 套接字文件 | 网络通信,监听客户端,客户端通过套接字数据通信 |
l | 软连接或符号链接 | |
硬链接 |
[root@192 ~]# ll /usr/bin/ls
-rwxr-xr-x. 1 root root 143224 Jul 10 2021 /usr/bin/ls
[root@192 ~]# ll -d /home
drwxr-xr-x. 3 root root 4096 Jul 27 11:43 /home
[root@192 ~]# ll /dev/tty
crw-rw-rw-. 1 root tty 5, 0 Jul 27 11:46 /dev/tty
[root@192 ~]# ll /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 Jul 27 11:46 /dev/sr0
[root@192 ~]# ll /dev/nvme0n1
brw-rw----. 1 root disk 259, 0 Jul 27 11:46 /dev/nvme0n1
[root@192 ~]# ll //usr/bin/yum
lrwxrwxrwx. 1 root root 5 Sep 13 2021 //usr/bin/yum -> dnf-3
文件名 | 描述 |
---|---|
/ | 根目录,其他所有目录都是其子目录 |
/boot | 存放系统启动时所需要的文件,这些文件若损害,会导致系统无法启动 |
/root | 超级用户的个人目录,普通用户没有权限访问 |
/home | 存放一般用户的个人目录 |
/bin | Binary的缩写,存放普通用户可执行的程序或命令 |
/sbin | 和/bin类似,只用root用户可以使用 |
/lib | 是库(library) 英文缩写,存放系统的各种库文件 |
/lib64 | 存放系统本身需要用到64为程序的共享函数库 |
/usr | 一般用户程序安装所在的目录,用于安装各种 应用程序 |
/opt | 该目录通常给第三方应用程序使用 |
/etc | 存放系统管理是所需要的各种配置文件和子目录 |
/var | 通常各种系统日志文件放在这里 |
/run | 保存自系统启动以来描述系统的文件 |
/dev | dev是设备(device)的英文缩写,包含所有的设备文件 |
/mnt和/media | 可以临时将别的文件系统挂载这个目录下,为其他的文件系统提供安装点 |
/tmp | 存放临时文件,三十天回收 |
/srv | srv是服务(server)的缩写,服务启动之后所需要访问的数据目录 |
/sys | 将内核的一些信息映射文件,以供应用程序所用 |
/proc | 可以在这个目录下获取系统信息,这些信息是在内存中由系统自己产生的 |
语法为:mkdir [-p] 【/路径/】目录名
du语法格式为:【选项】【目录名】
选项 | 功能 |
---|---|
-a | 统计磁盘占用时包括所有的文件,而不仅仅统计目录 |
-s | 只统计每个文件所占用空间总的大小,而不是统计每个子目录,文件的大小 |
-h | 以K.M.G为单位显示磁盘使用情况,以提高信息的可读性 |
语法格式:rm -r [-f] 目录文件名
-r 递归删除 目录及其所有文件
-f 不需要确认 强制执行yes
语法格式:touch [OPTION]… FILE…
1.如果文件已经存在,更新文件的三个时间,stat可以查看文件的详细信息
[root@192 ~]# stat /etc/hostname
File: /etc/hostname
Size: 22 Blocks: 8 IO Block: 4096 regular file
Device: 10301h/66305d Inode: 949361 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:hostname_etc_t:s0
Access: 2022-07-30 19:43:02.634011009 +0800
Modify: 2022-07-27 11:48:00.513470620 +0800
Change: 2022-07-27 11:48:00.513470620 +0800
Birth: 2022-07-27 11:43:26.718122830 +0800
**atime,**即access time 查看一下文件内容(cat),文件的atime时间会更新
mtime,即modify time 是在写入文件时随文件内容的更改而更改,是指文件内容最后一次被修改的时间。
**ctime,**即change time 元素据【文件的属性,大小,文件名等】被改变,是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容更改而更改,即文件状态最后一次被改变的时间。
[root@192 ~]# touch /etc/hostname
[root@192 ~]# date
Sun Jul 31 07:54:00 CST 2022
[root@192 ~]# stat /etc/hostname
File: /etc/hostname
Size: 22 Blocks: 8 IO Block: 4096 regular file
Device: 10301h/66305d Inode: 949361 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:hostname_etc_t:s0
Access: 2022-07-31 07:53:56.264077320 +0800
Modify: 2022-07-31 07:53:56.264077320 +0800
Change: 2022-07-31 07:53:56.264077320 +0800
Birth: 2022-07-27 11:43:26.718122830 +0800
[root@192 ~]# hostnamectl set-hostname server
[root@192 ~]# cat /etc/hostname
server
[root@192 ~]# stat /etc/hostname
File: /etc/hostname
Size: 7 Blocks: 8 IO Block: 4096 regular file
Device: 10301h/66305d Inode: 917509 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:hostname_etc_t:s0
Access: 2022-07-31 07:54:24.634077800 +0800
Modify: 2022-07-31 07:54:19.207077708 +0800
Change: 2022-07-31 07:54:19.207077708 +0800
Birth: 2022-07-31 07:54:19.207077708 +0800
创建多个普通文件:
方法1:touch 文件名1 文件名2 文件名3
方法2: touch {文件名1,文件名2,文件名3}
方法3: touch abc{1,2,3}
格式:rm [-f] 文件名
使用形式 | 功能 |
---|---|
命令 1 >文件or命令 >文件 | 标准输出不显示在屏幕,以覆盖的方式写入到指定的文件中,文件不存在就创建 |
命令 2>文件 | 命令执行错误不显示在屏幕,以覆盖的方式写入到指定文件,文件不存在就创建 |
命令 2 >/dev/null | 命令执行错误不显示在屏幕,写入到空设备文件中,一段时间就会将错误信息丢掉 |
命令 & >文件 or命令 >&文件 | 命令执行正确和不正确都不显示在屏幕,以覆盖的方式写入到指定的文件中,文件不存在就创建 |
命令 >> 文件 | 将命令执行正确以追加方式写入指定文件,不覆盖原文件内容,文件不存在就创建 |
命令 < 文件 | 使用命令从指定的文件中读取数据作为输入 |
命令 << 文件 | 在命令行读取数据作为 输入,知道遇到指定的结束标识符 |
[root@localhost ~]# date 1> date.txt
[root@localhost ~]# date >>date.txt
[root@localhost ~]# ls /home/ /aaaaaaaa >list.txt
ls: 无法访问/aaaaaaaaa: 没有那个文件或目录
//正确结果重定向到list.txt
//将错误结果重定向到error.txt中
[root@localhost ~]# ls /home/ /aaaaaa/>list.txt 2>error.txt
[root@localhost ~]# cat error.txt
ls: cannot access '/aaaaaa/': No such file or directory
[root@localhost ~]# cat list.txt
/home/:
wc
[root@localhost ~]# ls /home/ /aaaaaaa &>list.txt
查看
[root@localhost ~]# cat list.txt
ls: cannot access '/aaaaaaa': No such file or directory
/home/:
wc
[root@localhost ~]# ls /home/ /aaaaaaa >list.txt 2>&1
[root@localhost ~]# cat list.txt
ls: cannot access '/aaaaaaa': No such file or directory
/home/:
wc
//将产生的错误 丢到null中
[root@localhost ~]# ls /home/ /aaaaaaaa &>list.txt 2>/dev/null
[root@localhost ~]# cat list.txt
/home/:
wc
//将产生的错误 丢到null中
[root@localhost ~]# ls /home/ /aaaaaaaa &>/dev/null
[root@localhost ~]# cat list.txt
/home/:
wc
标准的输入重定向:< 或0< 0<<或<<
[root@localhost ~]# echo test > file
[root@localhost ~]# cat < file
test
[root@localhost ~]# cat > file3 < aa bb cc
> end
[root@localhost ~]# cat file3
aa bb cc
[root@localhost ~]# mysql -uroot -p123456 < bbs.sql
[root@localhost ~]# mail -s "ssss" alice #没有改变输入的方向,
默认键盘
111
222
333
^D
[root@localhost ~]# su - alice
[alice@localhost ~]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/alice": 1 message 1 new
\>N 1 [email protected] Mon Oct 29 14:09 18/657 "ssss"
&
[root@localhost ~]# mail -s "test01" alice < /etc/hosts #输入重定向,来自于文件
[root@localhost ~]# dd if=/dev/zero of=/file1.txt bs=1M count=2
[root@localhost ~]# dd /file2.txt bs=1M count=2
[root@localhost ~]# at now +5 min
at> useradd yang99
at>
job 1 at 2015-06-09 11:57
[root@localhost ~]# vim at.txt
useradd yang100
useradd yang102
[root@localhost ~]# at now +2 min < at.txt
job 2 at 2015-06-09 11:55
使用文件描述符的重定向都使用了&符号:
使用 | 意义 |
---|---|
cmd >&n | 把输出文件送到描述符n |
cmd m>&n | 把输出到文件符m的信息重定向到文件描述符n |
cmd >&- | 关闭标准输出 |
cmd <&n | 输入来自文件描述符n |
cmd m<&n | m来自文件描述符n |
cmd <&- | 关闭标准输入 |
cmd <&n- | 移动输入文件描述符n而非复制它 |
cmd >&n- | 移动输出文件描述符 n而非复制它 |
[root@localhost ~]# 2>&1
[root@localhost ~]# cat 1
ls: cannot access '/aaaaaaa': No such file or directory
[root@localhost ~]# echo bingbing
bingbing
[root@localhost ~]# echo $SHELL
/bin/bash
[root@localhost ~]# echo $PS1
[\u@\h \W]\$
参数 | 含义 |
---|---|
\d | 代表日期,格式为 Mon Aug 1 |
\H | 完整的主机名称 |
\h | 仅取主机的第一个名字 |
\t | 显示时间为24小时格式 HH:MM:SS |
\T | 显示时间为12小时格式 |
\A | 显示时间为24小时格式: HH:MM |
\u | 当前用户的账号名称 |
\v | BASH的版本信息 |
\w | 完整的工作目录 |
\W | 利用basename取得工作目录名称,所以指挥列出最后一个目录 |
\# | 下达的第几个命令 |
\$ | 提示字符,如果是root就 # 如果是普通用户就$ |
root@localhost ~]# PS1="[\u@ \t \w]"
[root@ 11:13:45 ~]
[root@ 11:13:45 ~]echo test > /root/test/file
-bash: /root/test/file: No such file or directory
[root@ 11:15:54 ~]echo test2 >> /root/test/file
-bash: /root/test/file: No such file or directory
用于两个命令或多个命令相连接,将管道符左边命令的输出作为管道符右边命令的输入
读取标准输入的数据,将其内容输出到文件的同时输出到屏幕(把输出保存到文件中,又想在屏幕上看到内容)
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时输出到文件
tee [-ai][--help][--version][文件...]
参数 | 作用 |
---|---|
-a 或者-append | 附加到现有文件的后面,而非覆盖他 |
-ih或者–ignore-interrupts | 忽略中断信号 |
–help | 在线帮助 |
[root@master test]#tee file
[root@ 11:53:08 ~]cat /etc/group | tee /root/file
[root@ 12:01:22 ~]tee -a file
ddd
ddd
[root@ 12:01:34 ~]tee -a file1 file2 file3
1、#创建目录
在/mnt下创建boot和sysroot目 t#cd /mnt在/mnt/boot下创建grub目录
在/mnt/sysroot下创建proc,sys,bin,sbin,lib,usr,var,etc,dev,home,root,tmp
在/mnt/sysroot/usr下创建bin,sbin,lib
在/mnt/sysroot/lib下创建modules在/mnt/sysroot/var下创建run,log,lock在/mnt/sysroot/etc下创建init.d
mkdir -p /mnt/{boot/grub,sysroot/{proc,sys,bin,sbin,lib/moudules,usr/{bin,sbin,lib},var/{run,log,lock},etc/init.d,home,root,tmp}}
[root@ 12:26:49 /tmp]tree
用tree查看
2.如何一次性在/test目录创建以abc表示的100个文件,例如abc1,abc2,abc3,.abc100
[root@ 12:28:38 /tmp]rm -rf abc{1,2,3} /test
1.手动调整当前主机时间(时区和时间更改)
[root@192 ~]# timedatectl set-timezone Asia/Shanghai
[root@192 ~]# timedatectl set-time 2022-07-31
[root@192 ~]# timedatectl set-time 8:18:50
2.查看系统时间按照年月日 时分秒 格式显示并将结果写入time文件
[root@192 ~]# date +'%F %T' > /time
[root@192 ~]# cat /time
2022-07-31 08:23:03
3.查看主机/etc/下是否存在group文件,是什么类型文件
[root@192 ~]# ll /etc/group
-rw-r--r--. 1 root root 978 Jul 27 11:43 /etc/group
4.查看/etc/sysconfig目录文件的属性
[root@192 ~]# ll -d /etc/sysconfig
drwxr-xr-x. 5 root root 4096 Jul 27 11:43 /etc/sysconfig
5.在root用户的家目录下创建file文件,在/pub创建该文件的软连接文件newfile,在/test创建硬链接文件file.lnk
[root@192 ~]# ln -s /root/file /pub/newfile
[root@192 ~]# mkdir /test
[root@192 ~]# ln /root/file /test/file.lnk
6.在文件中编写一下内容:
Good good study,day day up …
[root@192 ~]# vim aaa.txt
[root@192 ~]# cat aaa.txt
Good good study,day day up.....
[root@192 ~]# echo "Good good study,day day up....." >> aaa.txt
[root@192 ~]# cat aaa.txt
[root@192 ~]# tee << end >> aaa.txt
> Good good study,day day up....
> end
[root@192 ~]# cat aaa.txt
Good good study,day day up.....
Good good study,day day up.....
Good good study,day day up....
[root@192 ~]# cat << EOF >> aaa.txt
>AA
>AA
>AAA
>EOF
2022-07-31 08:23:03
3.查看主机/etc/下是否存在group文件,是什么类型文件
```vbscript
[root@192 ~]# ll /etc/group
-rw-r--r--. 1 root root 978 Jul 27 11:43 /etc/group
4.查看/etc/sysconfig目录文件的属性
[root@192 ~]# ll -d /etc/sysconfig
drwxr-xr-x. 5 root root 4096 Jul 27 11:43 /etc/sysconfig
5.在root用户的家目录下创建file文件,在/pub创建该文件的软连接文件newfile,在/test创建硬链接文件file.lnk
[root@192 ~]# ln -s /root/file /pub/newfile
[root@192 ~]# mkdir /test
[root@192 ~]# ln /root/file /test/file.lnk
6.在文件中编写一下内容:
Good good study,day day up …
[root@192 ~]# vim aaa.txt
[root@192 ~]# cat aaa.txt
Good good study,day day up.....
[root@192 ~]# echo "Good good study,day day up....." >> aaa.txt
[root@192 ~]# cat aaa.txt
[root@192 ~]# tee << end >> aaa.txt
> Good good study,day day up....
> end
[root@192 ~]# cat aaa.txt
Good good study,day day up.....
Good good study,day day up.....
Good good study,day day up....
[root@192 ~]# cat << EOF >> aaa.txt
>AA
>AA
>AAA
>EOF