Linux--学习笔记

news2024/10/27 22:46:00

第一章、简单使用Linux

1. Linux系统基本概念

  • 多用户的系统:允许同时有很多个用户登录系统,使用系统里的资源
  • 多任务的系统:允许同时执行多个任务
  • 严格区分大小写:命令,选项,参数,文件名,目录名都严格区分大小写
  • 不管是文件还是目录都是以倒挂的树形结构,存在于系统的“/”根目录下,根目录是Linux系统的起点
  • 对于Linux系统而言,目录/文件没有扩展名一说,扩展名如:.sh(脚本文件) .conf(程序配置文件) .log(日志文件) .rpm(软件包).tar(压缩包)是易于用户和程序本身方便识别
  • Linux系统没有回收站

2.shell命令提示符

[root@localhost ~]#

解释:

  • root:当前登录系统用户名(root超级管理员)
  • localhost :当前主机名
  • :当前用户所在目录( 为家目录) ,root超级管理员家目录:/root
  • #: 当前用户身份是超级管理员

[student@localhost ~]$

  • $:当前用户身份为普通用户,普通用户的家目录:/home/用户名同名

3. 命令行一般命令格式

命令 [-选项]… [参数]…

  • 命令:实现功能的指令
  • 选项:调整命令功能的
  •      短选项:-l -a -d -h(单个字母),短选项可以合并使用:-lad
  •      长选项:–help(单词),长选项通常是不能合并使用的
  • 参数:命令的执行对象,文件/目录/程序等
  • []:可选的
  • …:可以同时有多个

4.查看系统信息相关命令

  • 在终端窗口上输入命令,命令的格式: 主命令 参数 操作对象
查看当前 linux 的发行版信息:
[root@server ~] # cat /etc/redhat-release
Red Hat Enterprise Linux release 9 .1 (Plow)
# Plow RHEL9 的代号

查看内核版本 :

[root@server ~] # uname -r
5 .14.0-162.6.1.el9_1.x86_64
# 分析
5 - 内核版本 .
14 - 主修订版本 .
0 -162 - 次要修订版本 .
6 .1 - 补丁版本 .
x86_64 - 适用平台

查看shell的类型:

# 方法 1
[root@server ~] # cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
# 方法 2
[root@server ~] # chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

查看当前默认的shell:

[root@server ~] # echo $SHELL
/bin/bash

查看网卡信息以及获取ip地址:

 5.切换目录

  • 更改当前的工作目录,即切换目录
  • 绝对路径(以/开始的路径)
  • 相对路径(以当前工作目录开始的路径)
[root@server ~] # cd /
[root@server /] # cd /root
[root@server ~] # cd /home
[root@server home] # cd ~
[root@server ~] # cd /etc
[root@server etc] # cd ..
[root@server /] # cd .

6.通过文件详细属性辨别

  • 文件: - 开头
  • 目录: d 开头
  • 链接文件: l 开头
  • 硬件设备文件:b 开头
  • 字符设备文件:c 开头
  • 管道设备文件:p 开头
  • 套接字: s 开头

7. ls 查看目录/文件命令

  • ls命令(英文全拼:list):用于列出目录下内容及目录和文件详细属性信息
  • 命令格式:ls [-选项…] [参数…]

常用选项:
-a 显示目录下所有内容,包含隐藏的内容
-l 显示目录下的内容及详细属性
-h 以kB、MB、GB单位显示文件内容大小
-d 仅显示目录本身而不显示目录下的内容
-R 递归查看目录下所有内容(从头到尾)
-i 查看文件或目录的inod号

ls命令示例: 

#显示当前所在目录下的所有内容
ls
#查看根目录下所有内容
ls /
#查看/etc目录下所有内容
ls /etc
#查看/bin目录下所有内容
ls /bin
#查看/dev目录下所有内容
ls /dev
#查看目录下所有目录和文件,包括隐藏的内容
ls -a
#以长格式显示目录下所有内容,包括详细的属性信息
ls -l
-rw-------. 1 root root 1584 8月 27 16:41 anaconda-ks.cfg
解释
- --文件类型
1 --代表文件的引用次数
root --文件的所有者
root --文件的所属组
1584 --文件的大小,默认以字节为单位显示大小
8月 27 16:41 --文件最近一次的修改时间
anaconda-ks.cfg --文件名
#以长格式显示目录所有内容,以人性化的方式显示详细的属性信息
ls -l -h
#短选项合并使用
ls -lh
#以长格式显示目录所有内容,以人性化的方式显示详细的属性信息,包括隐藏
的内容
ls -lha
#以长格式显示根目录下所有内容,包括详细的属性信息
ls -l /
lrwxrwxrwx. 1 root root 7 3月 13 17:15 bin ->
usr/bin

 8.命令行快捷键

  • 键盘上下键调出历史命令
  • Ctrl + c:废弃当前命令行中的命令,取消当前执行的命令,例如ping、tail -f
  • Ctrl + l,clear:清屏
  • tab键自动补齐:可补齐命令、文件路径、文件名称、软件名
  • esc +. :将上一条命令参数变成当前命令的执行对象
  • Ctrl + a:将当前光标移动至行首
  • Ctrl + e:将当前光标移动至行尾
  • Ctrl + u 清空至行首
  • Ctrl + w 删除一个单词
  • exit,logout:退出系统(并不是关机,账号退出系统)

第二章、文件管理命令

1. mkdir 创建目录命令

mkdir(英文全拼:make directory)用于创建新目录

  • 命令格式:mkdir [-选项] 目录名
  • 常用选项:

        -p 递归创建多个目录(在一个不存在的目录下创建子目录)

  • 注意事项:

目录还是文件的名字,除了以“/”以外的任意名称,“/”根目录,路径分隔符
文件或目录的名字长度不能超过 255 个字符

mkdir命令示例:

#在当前所在目录创建test目录
mkdir test
#在当前所在目录同时创建多个目录
mkdir test1 test2 test3
#指定在/tmp目录下创建abc目录
mkdir /tmp/abc
#在指定目录下同时创建多个目录
mkdir /tmp/abc1 /tmp/abc2 /tmp/abc3
#在/opt目录下创建student,在当前目录创建student1..3
mkdir /opt/student student1 student2 student3
#mkdir默认无法在一个不存在的目录下创建目录,需要通过-p选项
mkdir /opt/xx/oo
mkdir: 无法创建目录"/opt/xx/oo": 没有那个文件或目录
mkdir /opt/a/b/c/d
mkdir: 无法创建目录"/opt/a/b/c/d": 没有那个文件或目录
#在/opt目录下递归创建目录
mkdir -p /opt/xx/oo
mkdir -p /opt/a/b/c/d
#ls -R选项可以递归目录下所有内容
ls -R /opt/a
/opt/a:
b
/opt/a/b:
c
/opt/a/b/c:
d

2. cd 切换目录命令

cd(英文全拼:change directory)切换目录

命令格式:cd [-选项] [目录名]

  • 提示:如果不指定目录名称,则切换到当前用户的家目录~
  • 常用快捷操作:
    • ~ 表示为家目录(可以直接cd)
    • … 表示上一级目录
    • 可在两路径之间来回切换

3. 绝对路径与相对路径

绝对路径:以/(根)为起点,到达你想去的目标目录称为绝对路径

相对路径:以当前路径为起点,到达你想去的目标目录(必须保证相对路径下存在这个目录)

4. pwd 打印当前所在目录

pwd(英文全拼:print work directory)显示当前所在目录完整路径名称

  • 命令格式:pwd [-选项]
# cd /opt/a/b/c/d
打印当前所在目录绝对路径
pwd

#切换到用户家目录
# cd ~
# pwd
/root
# cd /opt/a/b/c/d
# pwd
/opt/a/b/c/d
# cd
# pwd
/root

# cd /bin
# pwd
/bin
# cd /boot
# pwd
/boot
# ls

# cd /dev
# pwd
/dev
# ls

# cd /etc
# pwd
/etc
# ls

# ls /
bin boot dev etc home lib lib64 media mnt opt
proc root run sbin srv sys tmp usr var

#“.”表示当前所在目录,对于cd命令而言作用不大
# cd .
# cd /opt/a/b/c/d
# pwd
/opt/a/b/c/d

#“..”切换到当前目录的上一级目录
# cd ..
# pwd
/opt/a/b/c

# cd ..
# pwd
/opt/a/b

# cd ..
# cd ..
# pwd
/opt

# cd ..
# cd ..
# cd
# ls

# cd /opt/a/b/c/d
# pwd
/opt/a/b/c/d

"-"可在两个路径之间来回切换
# cd /etc/yum
# cd -
/opt/a/b/c/d

# pwd
/opt/a/b/c/d

# cd -
/etc/ym

# cd -
/opt/a/b/c/d

# cd -
/etc/yum

5. rmdir 删除空目录命令

rmdir(英文全拼:remove directory)删除空目录(了解即可)

  • 命令格式:rmdir [-选项] 目录名
#rmdir只能删除空目录,如果目录下存在数据无法删除
rmdir /opt/a
rmdir: 删除 "/opt/a" 失败: 目录非空

ls -R /opt/a
/opt/a:
b

/opt/a/b:
c

/opt/a/b/c:
d

/opt/a/b/c/d:
rmdir /opt/a/b/c/d
ls -R /opt/a
/opt/a:
b

/opt/a/b:
c

/opt/a/b/c:
rmdir /opt/a/b/c
ls -R /opt/a/b
/opt/a/b:

rmdir /opt/a/b
ls -R /opt/a
/opt/a:

rmdir /opt/a
ls /opt
rh student xx

rmdir /opt/
rmdir: 删除 "/opt/" 失败: 目录非空

6. touch 创建文件命令

touch 命令用于创建新的空白文件

  • 命令格式:touch [-选项] 文件名
#在当前路径创建空文件
touch hello

#在当前路径同时创建多个文件
touch t1 t2 t3 t4

#在指定路径同时创建多个文件
touch /opt/test1 /opt/test2 /opt/test3

#如果存在同名目录时,无法创建
mkdir test
mkdir: 无法创建目录"test": 文件已存在

#如果存在同名文件时,touch命令没有提示,但原有文件不会被覆盖
touch t1

#对于目录而言,只有单个目录的时候,“/”可有可无
ls /opt/
rh student test1 test2 test3 xx

ls /opt
rh student test1 test2 test3 xx

#对于目录而言,查看目录下的内容时,必须要有“/”,如果查看的是目录本
身,可有可无!
ls /opt
ls /opt/xx

#对于文件而言,后边绝对不能有“/”
ls /opt/test1
/opt/test1

ls /opt/test1/
ls: 无法访问/opt/test1/: 不是目录

7. cp 复制命令

cp(英文全拼:copy file)用于复制文件或目录,cp命令在复制时也可修改目录或文件名字

  • 命令格式:cp [-选项] 源文件 目标目录
  • 常用选项:
  • -p或-a #保留源文件属性不变拷贝(如:修改时间、归属关系、权限)
  • -r #复制目录(包含该目录下所有的子目录和文件)
  • 使用. 配合cp命令执行复制(.永远表示当前路径)
#复制当前目录文件到/opt目录(相对路径方式复制)
cp t1 /opt/
#复制文件到/opt目录(绝对路径方式复制)
cp /root/t2 /opt
#同时复制多个文件
cp t3 t4 /opt/
#创建目录
mkdir abc
#使用-r对目录执行复制
cp -r abc /opt
#同时复制多个目录
mkdir abc1 abc2 abc3
cp -r abc1 abc2 abc3 /opt
#复制hello文件到/opt并改名为hello.txt
cp hello /opt/hello.txt
#复制xxxx目录到/opt并改名xxoo
mkdir xxxx
cp -r xxxx /opt/xxoo
#使用“.”配合cp命令执行复制
cd /etc/sysconfig/network-scripts/
cp /root/t1 .
#操持属性不变复制文件
cp -p anaconda-ks.cfg /opt
cp:是否覆盖"/opt/anaconda-ks.cfg"? y
#对比以上两个文件的详细属性信息(最后一次修改时间)
ls -l anaconda-ks.cfg
-rw-------. 1 root root 1800 3月 13 17:34 anaconda-ks.cfg
#这两个操作代表什么意思?
cp -r test /opt/public #拷贝并改名
cp -r test /opt/public #拷贝到该目录下

8. mv 移动命令

mv(英文全拼:move file)用于移动文件或目录到其他位置,也可用于修改目录或文件名

  • 命令格式:mv [-选项] 源文件… 目标路径
  • 使用. 配合mv命令使用
#移动当前路径hello文件到/mnt目录
mv hello /mnt
#同时移动多个文件
mv t1 t2 t3 t4 /mnt
#移动/opt目录下文件到/mnt
mv /opt/test1 /opt/test2 /opt/test3 /mnt/
#移动目录
mv student1 /mnt
#移动文件并改名
mv hello.txt /media/hello
#移动目录并改名
mv test /media/testxx

9. cat 查看文件内容命令

cat (英文全拼:concatenate)命令用于查看文本文件内容

  • 命令格式:cat [选项] 文件名
  • 常用选项
    • -n #查看文件时以行号的形式显示文件内容
#查看文件内容
cat /etc/hosts

#查看网卡文件内容,网卡配置文件
cat /etc/sysconfig/network-scripts/ifcfg-ens32

#查看当前系统用户基本信息文件内容
cat /etc/passwd

#查看当前系统主机名配置文件内容
cat /etc/hostname

#查看当前系统版本信息文件内容
cat /etc/centos-release

#查看当前系统开机自动挂载配置文件内容
cat /etc/fstab

#查看系统组基本信息文件内容
cat /etc/group

#查看存放DNS配置文件信息
cat /etc/resolv.conf

#使用“-n”以行号形式显示文件内容
cat -n /etc/passwd
cat -n /etc/hostname
cat -n /etc/fstab
cat -n /etc/group
cat -n /etc/services

10. less命令

less 常用于查看内容量较大的文件,可以分页显示文件内容

  • 命令格式:less [-选项] 文件
  • 常用选项:-N #以行号形式显示文件内容

使用技巧 :

  • 键盘上下键逐行查看
  • f 向下翻一页
  • b 向上翻一页
  • /字符串 搜索指定字符串(n从上向下定位,N从下向上定位)
  • G 直接跳转到文件最后一行
  • gg 直接跳转到文件行首
  • #查看当前系统主机名配置文件内容
  • :1000 精准的定位到某一行(每次定位需要从第一行开始,否则会
  • 从当前行数开始进行定位
  • q 退出

11. head与tail命令

head命令:用来显示文件开头部分内容,默认显示文件开头 10 行内容

  • 命令格式:head [选项] 文件

  • 常用操作:

    • <行数> #指定显示的行数
head /etc/passwd
head /etc/fstab
head /etc/group
head /etc/hostname
head /etc/hosts
head /etc/sysconfig/network-scripts/ifcfg-ens32

#指定显示文件前多少行内容
head -5 /etc/passwd
head -6 /etc/passwd
head -15 /etc/passwd
head -20 /etc/passwd

tail命令:用来显示文件末尾部分内容,默认显示文件末尾 10 行内容

  • 命令格式:tail [选项] 参数
  • 常用操作:
    • <行数> 显示指定的行数
  • 常用选项:
    • -f #动态显示
tail /etc/passwd

#使用“-n”指定显示文件末尾多少行内容
tail -5 /etc/passwd
tail -5 /etc/sysconfig/network-scripts/ifcfg-ens32

#动态查看文件内容
touch t1
tail -f t1

#另开一个终端向文件写入内容
echo 123 > t1

12. rm删除命令

rm(英文全拼:remove)命令用于删除文件或者目录。

  • 命令格式:rm [-选项…] 目录或文件…
  • 常用选项
    • -f 强制删除
    • -r 删除目录
    • *特殊字符:系统常用符号,匹配所有!
rm /opt/hello.txt
rm:是否删除普通空文件 "/opt/hello.txt"?y

#同时删除目录下指定文件
[root@localhost ~]# rm /opt/t1 /opt/t2 /opt/t3 /opt/t4
rm:是否删除普通空文件 "/opt/t1"?y
rm:是否删除普通空文件 "/opt/t2"?y
rm:是否删除普通空文件 "/opt/t3"?y
rm:是否删除普通空文件 "/opt/t4"?y

#使用“-f”强制删除文件(无需确认,直接删除)
rm -f /mnt/hello

#同时强制删除多个文件
rm -f /mnt/t1 /mnt/t2 /mnt/t3 /mnt/t4

#删除目录
rm -r /opt/abc
rm:是否删除目录 "/opt/abc"?y

#同时删除多个目录
rm -r /opt/abc1 /opt/abc2 /opt/abc3
rm:是否删除目录 "/opt/abc1"?y
rm:是否删除目录 "/opt/abc2"?y
rm:是否删除目录 "/opt/abc3"?y

#同时强制删除多个目录
rm -rf /opt/home /opt/student /opt/xx /opt/xxoo

#rm命令在删除目录时,包含改目录及目录下所有数据全部删除
rm -rf /opt/

#使用“*”通配任意所有字符,删除/mnt目录下所有数据
rm -rf /mnt/*

13. 软连接与硬连接

Linux中的链接文件类似于windows中的快捷方式

软链接特点:可以跨分区,可以对目录进行链接,源文件删除后,链接文件不可用

软链接命令格式:ln -s 源文件路径 目标路径

注意:创建链接文件时一定要写绝对路径,哪怕是在当前路径下,也要写绝对路径

touch hello.soft

#创建软连接(必须要绝对路径创建)
ln -s /root/hello.soft /opt

#查看连接文件详细属性
ls -l /opt/hello.soft
lrwxrwxrwx. 1 root root 16 3月 21 14:28 /opt/hello.soft -
> /root/hello.soft
#提示:链接文件的权限最终取决于源文件的权限
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/Especially_Allen/article/details/139699376

硬链接特点:硬连接不可以跨分区,不可以对目录进行链接,源文件删除后,链接文件仍然可用(类似与对文件做了一个备份)

  • 硬链接命令格式:ln 源文件路径 目标路径
#创建文件,并创建硬连接
[root@localhost ~]# touch hello.hard
[root@localhost ~]# ln /root/hello.hard /opt/
[root@localhost ~]# ls /opt
hello.hard hello.soft test1

#向硬连接的源文件写入内容
root@localhost ~]# echo 123 > /root/hello.hard

#查看源文件内容
[root@localhost ~]# cat /root/hello.hard
123

#查看链接文件内容,以同步更新
[root@localhost ~]# cat /opt/hello.hard
123

#向链接文件写入内容,查看源文件以同步更新
[root@localhost ~]# echo xx >> /opt/hello.hard

#擦看源文件,以同步更新
[root@localhost ~]# cat /root/hello.hard
123
xx

#硬连接文件的特点可以保持文件属性不发生改变
[root@localhost ~]# ls -l /root/hello.hard
-rw-r--r--. 2 root root 7 3月 21 14:55 /root/hello.hard
[root@localhost ~]# ls -l /opt/hello.hard
-rw-r--r--. 2 root root 7 3月 21 14:55 /opt/hello.hard

#并且硬连接文件的i节点号相同
[root@localhost ~]# ls -i /root/hello.hard
33711090 /root/hello.hard
[root@localhost ~]# ls -i /opt/hello.hard
33711090 /opt/hello.hard

#硬连接不允许对目录进行连接
root@localhost ~]# ln /root/test1 /opt
ln: "/root/test1": 不允许将硬链接指向目录

#硬连接源文件删除后,链接文件仍然可用
[root@localhost ~]# rm -f /root/hello.hard
[root@localhost ~]# cat /opt/hello.hard
123
xx

#向硬连接文件写入内容
[root@localhost ~]# echo abc >> /opt/hello.hard
[root@localhost ~]# cat /opt/hello.hard
123
xx
abc

#硬连接不允许跨分区
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.3G 0 rom
[root@localhost ~]# ln /root/hello.soft /boot

ln: 无法创建硬链接"/boot/hello.soft" => "/root/hello.soft":
无效的跨设备连接

第三章:系统常用管理命令

1. --help 命令帮助手册

–help命令长选项:用于查看系统中命令的帮助信息,包括使用方法、选项等…

  • 命令格式:命令 --help

#查看命令帮助手册(命令自带)
cat --help
ls --help

2. man 获取命令帮助手册

man 工具用于查看系统命令的帮助信息,包括使用方法、选项、使用例子等…,对比–help ,man 输出的信息更加详细

  • 命令格式:man [-选项] 命令
  • 常用快捷操作
    • 向下键向下移一行
    • 向上键向上移一行
    • f 向下翻一页
    • b 向上翻一页
    • /关键字 #搜索关键字,配合n(向下查询)、N(向上查询)
    • q 退出

man ls
man cat
man touch
man mkdir

第四章:Linux执行命令

1. vi/vim文本编辑器

Vim是从 vi 发展出来的一个文本编辑器,vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性

安装vim工具:yum -y install vim

vi/vim 共分为三种模式:命令模式、输入模式、底线命令模式(末行模式)

1 )vim 文件名 便进入了命令模式

2 )按键盘a/i进入输入模式

3 )按ESC退出输入模式(回到命令模式)

4 )按英文:(冒号)切换到底线命令模式,wq保存并退出

提示:若文件不存在,则新创建文件并编辑,若文件以存在,则打开文

件并编辑

命令模式下常用的指令:

  • a 切换到输入模式,当前光标向后移动一个位置
  • i 切换到输入模式,当前光标不会移动位置
  • o 切换到输入模式,在当前光标所在的行下,另起一个新行
  • x 在命令模式下删除当前光标所在的单个字符
  • C 删除当前光标及光标后所有内容并进入输入模式
  • u 恢复上一次修改内容,一次恢复一个操作,可多次恢复,直到恢复本次操作初始状态为止
  • ctrl +r 恢复到本次操作的前一个步骤
  • $ 将光标移动至行尾
  • 0 (零) 将光标移动至行首
  • dd 删除一整行内容,配合数字可删除指定范围内的行
  • yy 复制当前行,配合数字可以同时复制多行
  • p 粘贴在当前的光标下一行
  • r 替换字符,一次只能替换一个字符,可以替换多次

底线命令模式常用的指令:

  • :w 保存
  • :q 退出
  • :wq 保存并退出
  • :x 保存并退出
  • ZZ 保存并退出(无需切换到底线命令模式)
  • :q! 退出不保存
  • :wq! 强制保存并退出,适用于只读文件(没有写权限,且只有root可以这样操作)
  • :set nu 以行号形式显示文件内容
  • :set nonu 取消行号显示
  • :行号 快速跳转到指定行
  • :%s 替换文件内容,g替换全文,默认只替换每一行匹配到的第一个关键字(数字s 指定替换的行)
  • G 快速跳转到文件的最后一行
  • gg 快速跳转到文件的行首/关键词 搜索指定的字符,n从上向下快速定位关键字,N从下向上快速定位关键字
  • :nohl 取消高亮显示

2. history 管理命令历史

history命令用于显示历史记录和执行过的命令,登录系统时会读取.bash_history历史文件中记录下的命令,当退出时,会自动保存到历史命令文件,该命令单独使用时,仅显示历史命令。历史命令默认只能存储 1000 条,可以通过/etc/profile文件修改。

  • 命令格式:history [-选项] [参数]
  • 常用选项:
    • -a 追加本次新执行的命令至历史命令文件中
    • -d 删除历史命令中指定的命令
    • -c 清空历史命令列表
  • 快捷操作:
    • !历史命令的编号 #调用命令历史
    • ! 历史命令名称 #调用历史命令中最近执行的命令
查看历史命令
# history

查看记录历史命令文件
# cat .bash_history

将历史命令同步至历史命令配置文件中
# history -a

删除历史命令中655条命令历史
# history -d 655
# history -d 637

清空缓存中所有历史命令
# history -c

删除历史命令配置文件(该文件删除后系统会再次自动创建)
# rm -rf .bash_history

快速调用历史命令中第N条
# !3

调用历史命令中以cat开头的命令(就近原则)
# !cat

重复执行上一条命令
# !!

历史命令默认只能记录1000条,可以通过/etc/profile文件修改
# vim /etc/profile
...
46 HISTSIZE=100

3. date日期时间管理

  • date命令用于显示或设置系统日期与时间
  • 命令格式:date [+格式符] #查看系统日期时间
  • 命令格式:date [-选项] #设置日期时间
  • 常用选项:-s 设置日期时间
  • 格式符:
  1. +%Y 年份
  2. +%B 月份
  3. +%d 日
  4. +%H 时
  5. +%M 分
  6. +%S 秒
  7. +%F 年-月-日
  8. +%X 时:分:秒
显示系统日期与时间
# date
提示:CST表示时区(亚洲上海)
只显示年分
# date +%Y

只显示月份
# date +%B

只显示几号
# date +%d

只显示小时
# date +%H

只显示分钟
# date +%M

只显示秒
# date +%S

显示年月日
# date +%F

显示时分秒
# date +%X

显示年月日时分秒
# date +%F%X

可以自定义分隔符“-”
# date +%F-%X
# date +%F:%X

修改系统年月日
# date -s 2020-03-28

修改系统时分秒
# date -s 17:16:00

修改年月日时分秒
# date -s '2021-03-28 17:17:00'
2021年 03月 28日 星期日 17:17:00 CST
#解释:
''单引号:引用整体,屏蔽特殊符号的功能
""双引号:引用整体,不会屏蔽特殊符号的功能

cal显示日历
# cal
三月 2021
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

显示指定的全年月份
# cal 2021

#修改系统时区(注意大写的字母,严格区分大小写)
timedatectl set-timezone Asia/Shanghai

4. wc统计命令

wc 用于统计文件的字节数、行数,并将统计的结果输出到屏幕

  • 命令格式:wc [-选项] 文件名
  • 常用选项:
    • -l 统计行数

# wc /etc/passwd
43 87 2259 /etc/passwd
行数 单词 字节 文件名

统计文件字节数
# wc -c /etc/passwd
2259 /etc/passwd

统计文件行数
# wc -l /etc/passwd
43 /etc/passwd

# wc -l /etc/fstab
11 /etc/fstab

5. 管道符

管道符 | 将命令的输出结果交给另外一条命令作为参数继续处理

查看/etc/passwd文件前6-10行内容,其余数据不要显示
# cat -n /etc/passwd|head|tail -5
# ifconfig ens32 |head -2
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu
1500
inet 192.168.0.40 netmask 255.255.255.0
broadcast 192.168.0.255

6. grep文件内容过滤

grep用于查找文件中符合条件的字符串,并把匹配到的字符串的行打印出来

  • 命令格式:grep [-选项] “查找条件” 目标文件
  • 常用选项:
    • -n #以行号形式输出
    • -i #忽略字符串大小写
    • -v #排除匹配的内容
    • ^ 常用的特殊符号,在grep中可用来匹配以什么开头的关键字
    • $ 常用的特殊符号,在grep中可用来匹配以什么结尾的关键字
    • ^$ 在grep中可用来匹配空行
过滤包含root关键字的行
# grep root /etc/passwd

以行号形式过滤包含root关键字的行
# grep -n root /etc/passwd

忽略大小写过滤
# grep -ni user /etc/passwd

排除包含#号的行
# grep -n -v '^#' /etc/fstab

过滤以root开头的行
# grep ^root /etc/passwd

过滤以root结尾的行
# grep -n 'root$' /etc/passwd
# grep -n 'bash$' /etc/passwd

通过grep过滤一个文件中有效的配置
# egrep -nv "#|^$" /etc/login.defs

7. 重定向操作

将前面命令的输出结果,写入到其他的文本文件中

重定向的表示符号:

  • > 覆盖重定向,只收集正确的命令结果
  • >> 追加重定向输出,只收集正确的命令结果
  • << 输入重定向,需要从命令行中获取内容,将内容写入到文件中
  • 2> 只收集错误的输出结果(覆盖)
  • 2>> 只收集错误的输出结果(追加)
  • &> 正确错误都收集(覆盖)
  • &>> 正确错误都收集(追加)
将命令的输出结果以覆盖的方式重定向到文件中,(>附带创建文件功能)
ping -c2 www.baidu.com > up.txt
ping -c2 www.dhjgdhjg.com > up.txt

重定向输入(>覆盖)以EOF开始,以EOF结束,中间写入内容
# cat > xxxx.txt <<EOF
hello
Linux
EOF
重定向输入(需要配合重定向输出一起使用)
# cat >> xxxx.txt <<EOF
> 你好
> EOF

“>”只收集正确的输出结果,不收集错误的输出结果
# ls xxooooxx > /opt/xx.txt
ls: 无法访问xxooooxx: 没有那个文件或目录

“2>”只收集错误的输出结果,不收集正确的输出结果
# ls xxooooxx 2> /opt/xx.txt
# cat /opt/xx.txt
ls: 无法访问xxooooxx: 没有那个文件或目录

“2>”以覆盖的方式将输出结果重定向到文件中
# cat /etc/abc 2> /opt/ens32.bak
# cat /opt/ens32.bak
cat: /etc/abc: 没有那个文件或目录

“2>>”以追加的方式将输出结果重定向到文件中
# ls /etc/abcd 2>> /opt/ens32.bak
# cat /opt/ens32.bak
cat: /etc/abc: 没有那个文件或目录
ls: 无法访问/etc/abcd: 没有那个文件或目录

“&>”以覆盖的方式将正确输出与错误输出重定向到文件中
# lscat &> /opt/abc.txt
# cat /opt/abc.txt

# ls /etc/passwd &> /opt/pass.bak
# cat /opt/pass.bak

# free -h &> /opt/pass.bak
# cat /opt/pass.bak

“&>”以追加的方式将正确输出与错误输出重定向到文件中
# ifconfig ens32 | head -2 &>> /opt/pass.bak
# cat /opt/pass.bak

以覆盖方式将正确输出与错误输出重定向到不同文件中
# ll -d /root/ bcd >a.txt 2>b.txt

# cat a.txt
dr-xr-x---. 24 root root 4096 3月 28 18:07 /root/

# cat b.txt
ls: 无法访问bcd: 没有那个文件或目录

8. echo命令

echo命令用于输出指定的字符串和变量

  • 命令格式:echo [-选项] [参数]

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bi
n

# echo 你好 > hello

第五章、Linux文件类型和根目录结构

1.Linux文件类型

  • 文件: - 开头
  • 目录: d 开头
  • 链接文件: l 开头
  • 硬件设备文件:b 开头
  • 字符设备文件:c 开头
  • 管道设备文件:p 开头
  • 套接字: s 开头

2. Linux系统目录介绍

  • /(根):系统所有数据都存放在根目录下
  • /bin:存放用户使用的系统管理命令
  • /boot:存放Linux系统内核及引导系统程序
  • /dev:存放硬件设备的目录,如硬盘、光驱设备、驱动程序等等 ( 记住 )
  • /etc:存放服务的配置文件,用户信息文件 ( 记住 )
  • /root:超级管理员的家目录( 记住 )
  • /home:普通用户的家目录( 记住 )
  • /lib:存放系统中的程序运行所需要的共享库及内核模块文件( 类似像windows的C++库)
  • /opt:用户自己安装的软件可以放在这个目录(用户自定义软件安装路径)
  • /srv:程序启动之后需要访问的数据目录
  • /tmp:普通用户可以存放一些不重要的文件,一些程序运行的过程中产生一些临文件也会存放在这个目录
  • /var:存放系统执行过程中经常变化的文件,如随时都在变化的日志文件就存放/var/log/下 ( 记住 )
  • /mnt、/media :光盘和镜像等预设的挂载点( 记住 )
  • /proc:Linux伪文件系统,该目录下的数据存在于内存当中,不占用磁盘空间
  • /lib64 :存放共享的模块文件(系统中一些应用程序在运行的时候自动调用的)
  • /run :程序或服务启动后,存放PID的目录
  • /sys:存放被建立在内存中的虚拟文件系统
  • /usr:操作系统软件资源所放置的目录
    /usr/bin:与/bin目录相同,存放用户可以使用的命令程序
    /usr/lib:与/lib目录相同,存放系统中的程序运行所需要的共享库及内核模块
    /usr/etc:用于存放安装软件时使用的配置文件
    /usr/games:与游戏相关的数据放置处
    /usr/include:c/c++等程序语言的档头(header)与包含档(include)放置处
    /usr/lib64:与/lib64目录相同,存放函式库
    /usr/libexec:不经常被使用的执行程序或脚本会放置在此目录中
    /usr/local: 额外安装的软件存放目录,与/opt目录一样 ( 记住 )
    /usr/sbin:该目录与/sbin目录相同,存放用户可执行的二进制程序文件
    /usr/share: 放置只读架构的杂项数据文件
    /usr/src:一般软件源代码建议存放该目录下、

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2224986.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零实现数据结构:一文搞定所有排序!(下集)

1.快速排序 思路框架&#xff1a; 在有了前面冒泡选择插入希尔排序之后&#xff0c;人们就在想能不能再快一点&#xff0c;我们知道排序算法说人话就是把大的往后放小的往前放&#xff0c;问题就在于如何更快的把大的挪到数组队尾小的挪到数组前面。这里我们先总结一下上集前…

jenkins 自动化部署Springboot 项目

一、安装docker 1.更新yum命令 yum -y update2.查看机器有残留的docker服务&#xff0c;有就卸载干净 查看docker 服务 rpm -qa |grep docker卸载docker sudo yum remove docker-ce docker-ce-cli containerd.io sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/contai…

算法的学习笔记—二叉树的深度(牛客JZ55)

&#x1f600;前言 在二叉树的相关操作中&#xff0c;计算树的深度是一个非常基础但十分重要的操作。本文将详细解析如何计算一棵二叉树的深度&#xff0c;并通过代码实现来展示具体的解决方案。 &#x1f3e0;个人主页&#xff1a;尘觉主页 文章目录 &#x1f49d;二叉树的深度…

了解 .NET 8 中的定时任务或后台服务:IHostedService 和 BackgroundService

IHostedService.NET 8 引入了使用和管理后台任务的强大功能BackgroundService。这些服务使长时间运行的操作&#xff08;例如计划任务、后台处理和定期维护任务&#xff09;可以无缝集成到您的应用程序中。本文探讨了这些新功能&#xff0c;并提供了实际示例来帮助您入门。您可…

HarmonyOS开发 - 本地持久化之实现LocalStorage实例

用户首选项为应用提供Key-Value键值型的数据处理能力&#xff0c;支持应用持久化轻量级数据&#xff0c;并对其修改和查询。数据存储形式为键值对&#xff0c;键的类型为字符串型&#xff0c;值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。 说明&#x…

同步电机不同电流参考方向下的功率计算

同步电机的功率计算有时候会看见两种表达方式&#xff1a; 当以发电机惯例&#xff0c;即电流方向输出时&#xff0c;功率计算式为&#xff1a; { P s 3 2 ( u s d i s d u s q i s q ) Q s 3 2 ( u s q i s d − u s d i s q ) \left\{\begin{array}{l} P_{\mathrm{s}}\fr…

PostgreSQL(十三)pgcrypto 扩展实现 AES、PGP 加密,并自定义存储过程

目录 一、pgcrypto 简介1.1 安装 pgcrypto 扩展1.2 pgcrypto 包含的函数 二、用法①&#xff1a;对称加密&#xff08;使用 AES、Blowfish 算法&#xff09;2.1 密钥2.2 密钥偏移量 三、用法②&#xff1a;PGP加解密3.1 什么是PGP算法&#xff1f;3.2 使用 GPG 生成密钥对3.3 列…

【AI大模型】深入解析 存储和展示地理数据(.kmz)文件格式:结构、应用与项目实战

文章目录 1. 引言2. 什么是 .kmz 文件&#xff1f;2.1 .kmz 文件的定义与用途2.2 .kmz 与 .kml 的关系2.3 常见的 .kmz 文件使用场景 3. .kmz 文件的内部结构3.1 .kmz 文件的压缩格式3.2 解压缩 .kmz 文件的方法3.3 .kmz 文件的典型内容3.4 .kml 文件的结构与主要元素介绍 4. 深…

豆包MarsCode Agent 登顶 SWE-bench Lite 评测集

大语言模型&#xff08;LLM&#xff09;能力正在迅速提升&#xff0c;对包括软件工程在内的诸多行业产生了深远影响。GPT-4o、Claude3.5 等 LLM 已经逐步展现出胜任复杂任务的能力&#xff0c;例如文本总结、智能客服、代码生成&#xff0c;甚至能够分析和解决数学问题。在这一…

为什么在网络中不能直接传输数据

为什么在网络中不能直接传输数据 原因 在网络中不能直接传输原始数据形式&#xff0c;主要有以下几方面原因&#xff1a; 数据表示的多样性&#xff1a;不同的计算机系统、编程语言和应用程序对数据的表示方式可能各不相同。例如&#xff0c;整数在不同的编程语言中可能有不同…

了解Java开发中的会话层

在现代Web应用开发中&#xff0c;会话管理是一个至关重要的概念。它涉及到如何在客户端和服务器之间保持用户状态信息&#xff0c;从而提供个性化、连续的用户体验。Java作为一种广泛使用的编程语言&#xff0c;在Web开发中扮演着重要角色&#xff0c;特别是在企业级应用中。了…

基于neo4j的课程资源生成性知识图谱

你是不是还在为毕业设计苦恼&#xff1f;又或者想在课堂中进行知识的高效管理&#xff1f;今天给大家分享一个你一定会感兴趣的技术项目——基于Neo4j的课程资源生成性知识图谱&#xff01;&#x1f4a1; 这套系统通过知识图谱的形式&#xff0c;将课程资源、知识点和学习路径…

一文掌握异步web框架FastAPI(五)-- 中间件(测试环境、访问速率限制、请求体解析、自定义认证、重试机制、请求频率统计、路径重写)

接上篇:一文掌握异步web框架FastAPI(四)-CSDN博客 目录 七、中间件 15、测试环境中间件 16、访问速率限制中间件,即限制每个IP特定时间内的请求数(基于内存,生产上要使用数据库) 1)限制单ip访问速率 2)增加限制单ip并发(跟上面的一样,也是限制每个IP特定时间内的请…

vue2结合echarts实现数据排名列表——前端柱状进度条排行榜

写在前面&#xff0c;博主是个在北京打拼的码农&#xff0c;工作多年做过各类项目&#xff0c;最近心血来潮在这儿写点东西&#xff0c;欢迎大家多多指教。 数据排名列表——图表开发&#xff0c;动态柱状图表&#xff0c;排名图 UI 直接搜到类似在线代码&#xff08;数据列表…

事务的原理、MVCC的原理

事务特性 数据库事务具有以下四个基本特性&#xff0c;通常被称为 ACID 特性&#xff1a; 原子性&#xff08;Atomicity&#xff09;&#xff1a;事务被视为不可分割的最小工作单元&#xff0c;要么全部执行成功&#xff0c;要么全部失败回滚。这意味着如果事务执行过程中发生…

交换机:端口安全与访问控制指南

为了实现端口安全和访问控制&#xff0c;交换机通常通过以下几种机制和配置来保护网络&#xff0c;防止未经授权的访问和恶意攻击。 01-端口安全 定义及功能 端口安全功能允许管理员限制每个交换机端口可以学习的MAC地址数量。 通过绑定特定的MAC地址到交换机的某一端口上&a…

二十二、Python基础语法(模块)

模块(module)&#xff1a;在python中&#xff0c;每个代码文件就是一个模块&#xff0c;在模块中定义的变量、函数、类别人都可以直接使用&#xff0c;如果想要使用别人写好的模块&#xff0c;就必须先导入别人的模块&#xff0c;模块名须满足标识符规则&#xff08;由字母、数…

MFC七段码显示实例

在MFC中添加iSenvenSegmentAnalogX控件&#xff0c;添加编辑框和按钮实现在编辑框中输入数字点击按钮后数字用七段码显示 1、在对话框中点击右键如下图添加控件和变量 2、在sevenDlg.h中添加代码 public: void ShowInd(int,double);3、在sevenDlg.cpp中添加代码 void CSe…

将 el-date-picker获取的时间数据转换成时间戳

在Vue.js中使用Element UI的el-date-picker组件时&#xff0c;你可以获取用户选择的日期并将其转换为时间戳。el-date-picker通常返回的是一个Date对象或一个格式化后的字符串&#xff08;取决于你如何配置它&#xff09;。下面是一个示例&#xff0c;展示了如何将el-date-pick…

攻防世界的新手web题解

攻防世界引导模式 1、disabled_button 好&#xff0c;给了一个按钮&#xff0c;第一道题目就不会做 看的wp<input disabled class"btn btn-default" style"height:50px;width:200px;" type"submit" value"flag" name"auth&q…