Linux基础总结 以及实例(基于Centos8)

本文总结了Linux基础操作,包括date、cp、mv命令的使用及原理,探讨了硬链接与软链接的区别,并详细阐述了重定向和管道的概念及实践案例。通过这些内容,帮助读者深入理解Linux系统的基础操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux基础总结 以及实例(基于Centos8)

cmd: date.

example:

[10:34:57 root@centos8 /]#date -d "1 year" +%F_%T
2020-12-17_10:36:48

cmd: cp

底层原理

在目标文件里先检索一个空闲的节点编号,其次将要复制的文件的属性、大小写进inode表中生成新条目,最后将新文件复制到磁盘上,然后这个空间会有一个指针指向它的路径和数据块。
example 1 :

每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见。
[16:40:19 root@centos8 ~]#cp -av /etc/ /data/backup`date +%F`

example 2 :

创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
[16:40:19 root@centos8 ~]#cp -a /root /data/rootdir

cmd: mv

底层原理

在同一区,没有数据移动,用新文件名创建新的目录项,删除旧目录条目对应的旧文件名
在不同区,mv相当于cp和rm

practice :

1、如何创建
/testdir/dir1/x,/testdir/dir1/y,/testdir/dir1/x/a,/testdir/dir1/x/b,/testdir/dir1/y/a,/testdir/dir1/y/b

[11:05:11 root@centos8 /]#mkdir /testdir/dir1/{x,y}/{a,b} -pv
mkdir: created directory '/testdir'
mkdir: created directory '/testdir/dir1'
mkdir: created directory '/testdir/dir1/x'
mkdir: created directory '/testdir/dir1/x/a'
mkdir: created directory '/testdir/dir1/x/b'
mkdir: created directory '/testdir/dir1/y'
mkdir: created directory '/testdir/dir1/y/a'
mkdir: created directory '/testdir/dir1/y/b'

2、如何创建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a, /testdir/dir2/x/b

[11:37:35 root@centos8 /]#mkdir /testdir/dir2/{x/{a,b},y} -pv
mkdir: created directory '/testdir'
mkdir: created directory '/testdir/dir2'
mkdir: created directory '/testdir/dir2/x'
mkdir: created directory '/testdir/dir2/x/a'
mkdir: created directory '/testdir/dir2/x/b'
mkdir: created directory '/testdir/dir2/y'

(3) 如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6, /testdir/dir5/dir7

[11:49:42 root@centos8 /]#mkdir /testdir/dir{3,4,5/dir{6,7}} -pv
mkdir: created directory '/testdir'
mkdir: created directory '/testdir/dir3'
mkdir: created directory '/testdir/dir4'
mkdir: created directory '/testdir/dir5'
mkdir: created directory '/testdir/dir5/dir6'
mkdir: created directory '/testdir/dir5/dir7'

硬链接和软连接的区别

  1. 本质:
    硬链接:本质是同一个文件
    软链接:本质不是同一个文件
  2. 跨设备
    硬链接:不支持
    软链接:支持
  3. inode
    硬链接:相同
    软链接:不同
  4. 链接数
    硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
    软链接:创建或删除,链接数不会变化
  5. 文件夹
    硬链接:不支持
    软链接:支持
  6. 相对路径
    硬链接:原始文件相对路径是相对于当前工作目录
    软链接:原始文件相对路径是相对于链接文件的相对路径
  7. 删除源文件
    硬链接:只是链接数减一,但链接文件的访问不受影响
    软链接:链接文件将无法访问
  8. 文件类型
    ln -s filename [linkname]
    #绝对路径
    ln -s /data/dir /data/dirlink
    #相对路径
    cd /data
    ln -s …/data/dir /root/dirlink
    rm -rf /data/dirlink #删除软链接本身,不会删除源目录内容
    rm -rf /data/dirlink/ #删除源目录的文件,不会删除链接文件
    硬链接:和源文件相同
    软链接:链接文件,和源文件无关

重定向 and 管道

0 标准输入
1 标准输出
2 标准错误

example :

  • 1> 或 > 把STDOUT重定向到文件
  • “>| 强制覆”
  • 2> 把STDERR重定向到文件
  • &> 把所有输出重定向到文件

将标准输出和错误都重定向到同一个文件

[root@centos8 ~]#ls /data /xxx > /data/all.log 2>&1
[root@centos8 ~]#ls /data /xxx 2> /data/all.log 1>&2
[root@centos8 ~]#ls /data /xxx &> /data/all.log
[root@centos8 ~]#ls /data /xxx 2>&1 > /data/all.log
ls: cannot access '/xxx': No such file or directory

cmd > file 标准输出重定向到文件
cmd >> file 追加内容
cmd 2> file 标准错误重定向到文件
cmd 2>> file 追加标准错误重定向到文件
cmd > file1 2> file2 先标准输出再标准错误
cmd &> all 覆盖重定向
cmd > all 2>&1 所有内容重定向
cmd 2>all 1>&2 所有内容重定向
cmd 2>&1 > all 标准错误重定向到标准输出

practice :

1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

cat /etc/issue |tr 'a-z' 'A-Z' > /tmp/issue.log

2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

[11:08:46 root@centos8 ~]#who
zxr      tty2         2019-12-18 08:41 (tty2)
root     pts/1        2019-12-18 15:19 (192.168.133.1)
root     pts/2        2019-12-22 10:19 (192.168.133.1)
[11:11:46 root@centos8 ~]#who | tr 'a-z' 'A-Z' > /data/who.out
[11:12:33 root@centos8 ~]#cat /data/who.out
ZXR      TTY2         2019-12-18 08:41 (TTY2)
ROOT     PTS/1        2019-12-18 15:19 (192.168.133.1)
ROOT     PTS/2        2019-12-22 10:19 (192.168.133.1)

3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:
Hello, I am 用户名,The system version is here,please help me to check it ,thanks!
操作系统版本信息

mail -s help root <<EOF
> Hello,I am 'whoami',
> The system version is here,
> Please help me to check it,thanks!
> 'cat /etc/redhat-release'
> EOF

4、将/root/下文件列表,显示成一行,并文件名之间用空格隔开

[11:33:35 root@centos8 ~]#ls |tr '\n' ' '
access_log anaconda-ks.cfg btmp-34 dead.letter Desktop Documents Downloads initial-setup-ks.cfg Music Pictures Public Templates Videos zxr.txt

5、计算1+2+3+…+99+100的总和

[17:46:55 zxr@centos8 root]$seq -s + 1 100|bc
5050

6、删除Windows文本文件中的回车字符 ,即“\r”

cat windows.txt| tr -d '\r'

7、处理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的数字和空格

[11:55:01 root@centos8 ~]#echo "xt.,l 1 jr#'\n'mn 2 c*/fe 3 uz 4"| tr -dc '0-9 \n'
 1  2  3  4

8、将PATH变量每个目录显示在独立的一行

[11:47:04 root@centos8 ~]#echo $PATH|tr ':' '\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/root/bin

9、将指定文件中0-9分别替代成a-j

[11:41:43 root@centos8 ~]#cat zxr.txt
1234546565634
1425363687656
3425365
454674
45
34
3

[11:42:00 root@centos8 ~]#cat zxr.txt |tr '[:alnum:]' 'a-j'
bcdefegfgfgde
becfdgdgihgfg
decfdgf
efeghe
ef
de
d

10、将文件/etc/centos-release中每个单词(由字母组成)显示在独立一行,并无空行

[11:45:33 root@centos8 ~]#cat /etc/centos-release
CentOS Linux release 8.0.1905 (Core) 
[11:45:40 root@centos8 ~]#cat /etc/centos-release| tr ' ' '\n'|tr -s '\n'
CentOS
Linux
release
8.0.1905
(Core)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值