Linux系统管理(基础知识)

本文介绍了Linux系统的基础管理,包括TAB键的自动补全功能,常用快捷键如Ctrl+C、Ctrl+L、Ctrl+D等,以及管道和重定向的使用。详细讲解了如何利用管道进行数据过滤, tee命令实现同时输出到终端和文件,以及标准输入输出重定向。还列举了ls、cd和date命令的实例,以及history命令的使用。文章还提到了时间戳转换和历史命令的调用方式。
摘要由CSDN通过智能技术生成

Linux 系统基础管理与维护

TAB 键

1、自动补齐文件名

2、自动补齐目录

3、自动补齐命令

Linux 快捷键

ctrl+c 退出前台程序

ctrl+l = clear 命令 清屏

ctrl+d 退出当前终端 等价于 exit 命令

ctrl+a 快速将光标移动到命令起始位置

ctrl+e 快速将光标移动到命令最后

ctrl+u 删除光标前所有字符

ctrl+k 删除光标后所有字符

Linux 管道

管道是用来过滤数据的 将输入源数据根据一定规则过滤输出到文件或终端

管道使用 | 实现数据的过滤

比如:

[root@centos7 opt]# ls |grep 123
123abc.txt
123.txt
m123t

tee 管道可以将输入流同时输出到终端和文件中  

[root@centos7 opt]# echo "Hello world" |tee hello.txt
Hello world
[root@centos7 opt]# cat hello.txt
Hello world

 Linux 输入输出重定向

linux 系统进程使用不同的文件描述符(FD file descriptors)来管理打开的文件

linux 系统提供如下三种 I/O 设备

标准输入 stdin 使用文件描述符 0 代替 0 代表来自键盘的输入

标准输出 stdout 使用文件描述符 1 代替 1 代表输出到屏幕

标准错误 stderr 使用文件描述符 2 代替 2 默认也是输出到终端窗口即屏幕

重定向

重定向说白了就是不使用标准的输入输出端口,进行重新的指定,所以叫做重定向,也就是说是可以自行设定对应的设备。 输入重定向 使用< 或者 <<来接收其他设备的内容作为输入,比如使用文件内容重定向输入到某个命令,如下:

[root@centos7 ~]# cat < site.txt
#!/bin/sh
a= curl www.baidu.com
echo $a > site.txt
c= ls -l |grep site.txt | awk '{print $5}'
if [[ $c >100 ]]
then
   echo 'live'
else
   echo 'dead'
fi

输出重定向

使用>或者>>来将标准输入或者其他地方的输入输出到非终端窗口的设备,比如将一个命令的结果输出到文件中,我们可 以通过查看文件去看对应的内容,而屏幕或终端是看不到任何内容的。如下例子: 

[root@centos7 ~]# ls > ls.txt
[root@centos7 ~]# cat ls.txt
1
123.txt
2000
29.txt
99.s
a

正确输出:1> 和 1>> 跟 > 及 >>是等效的。

如:date 1> 1.txt date > 1.txt

注意:文件描述符跟重定向符号之间不能有空格,同时>代表输出重定向并且会覆盖上次的内容,>>代表输出重定向但是不会覆盖上次内容,而是追加内容到上次文件末尾。

错误输出:2> 和 2>>

如:ddds 2> er.txt ddds 2>> er.txt 重定向符号跟正确输出功能一致。

例子:

1、将正确的输出和错误的输出分别重定向到不同文件中:

ls /home /dssssss 1> home.txt 2> dssss.txt

其中/home 目录是系统本身就存在的,而/dsssss 是不存在的目录,使用 ls 命令查看时会报错,我们通过使用不同的文件描述符和重定 向符号结合使用,让其分别输出到不同的文件中,这样可以区别查看我们的正确输出和错误输出。

2、将正确的输出和错误的输出同时重定向到一个文件中:

ls /home /dsssss 1> ls.txt 2>&1

此例子作用就是将正常的输出重定向到 ls.txt 中,然后同时使用&1 将错误的输出重定向到正确输出中。 

[root@centos7 ~]# ls /home /dsss 1> ls.txt 2>&1
[root@centos7 ~]# cat ls.txt
ls: cannot access /dsss: No such file or directory
/home:
alice
bob
david
hello
john

上述第二个例子的命令可以将其简写为如下去实现,效果一致:

[root@centos7 ~]# ls /home /dsss &> ls.txt 

有时候我们的命令结果并不想让其输出,而是只想让其执行,就可以将其重定向到/dev/null 设备中。 /dev/null 设备是我们的空设备或者叫做位桶,有时也称为黑洞,你可以向它输出任何东西,而不用担心会撑满它。

举例: date > /dev/null

/dev/zero 设备是我们的 0 设备,也是我们的输入设备,无限制提供 0,用于向设备或文件中写入无限制个数的字符串 0。

举例:

dd if=/dev/zero of=/opt/test bs=10M count=10 

Linux 常见系统管理命令详解:

1、ls命令  ls 命令用来显示指定工作目录下的内容。

【常用参数】

a 列出目录下的隐藏目录

-A 列出除过.和..之外的所有文件和目录

-l 是长格式化的列表显示,包含文件的相关属性,比如权限,时间,大小,所属用户用户组等等

-d 列出目录本身不包含目录下的内容

-h 以人类可读的方式显示文件的大小,通常结合-l 参数使用

-t 以时间顺序排序,通常最新的文件或目录排在最前面,这个参数通常跟-l 一起使用

-r 是反向排序,通常跟-lt 结合可以实现按照时间顺序从旧到新的顺序排序,也就是说新文件在最后面

-S 按照文件大小排序,通常也是结合-l 参数使用,默认是从大到小排序

2、cd 命令  切换目录

【常用参数】

~ 代表/root,/root 是 root 用户的家目录/宿主目录   

 - 代表切换回上次所在目录   

 . 代表当前目录     

..代表切回上级目录

3、date 命令 打印系统日期和时间 

【常用参数】  

-d, --date=STRING display time described by STRING, not 'now'

显示时间根据你写的字符串 

[root@Qi1 home]# date -d "2022-7-14 19:20:10"
2022年 07月 14日 星期四 19:20:10 CST

 -s, --set=STRING set time described by STRING 设置时间根据你写的字符串

[root@Qi1 home]# date -s "2022-7-14 16:10:10"
2022年 07月 14日 星期四 16:10:10 CST

时间格式化

  %a    当前locale 的星期名缩写(例如: 日,代表星期日)
  %A    当前locale 的星期名全称 (如:星期日)
  %c    当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)
  %C    世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
  %d    按月计的日期(例如:01)
  %D    按月计的日期;等于%m/%d/%y
  %e    按月计的日期,添加空格,等于%_d
  %F    完整日期格式,等价于 %Y-%m-%d
  %h    等于%b
  %H    小时(00-23)
  %I  小时(00-12)
  %j    按年计的日期(001-366)
  %m   month (01..12)
  %M   minute (00..59)
  %r    当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)
  %R    24 小时时间的时和分,等价于 %H:%M
  %s    自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
  %S    秒(00-60)
  %T    时间,等于%H:%M:%S
  %x    当前locale 下的日期描述 (如:12/31/99)
  %X    当前locale 下的时间描述 (如:23:13:48)
  %y    年份最后两位数位 (00-99)
  %Y    年份
  %Z     按字母表排序的时区缩写 (例如,EDT)

[root@Qi1 home]# date +"%Y-%m-%d %H:%M:%S"
2022-07-14 16:13:32
[root@Qi1 home]# date +"%F"
2022-07-14
[root@Qi1 home]# date +"%F %T"
2022-07-14 16:14:04
[root@Qi1 home]# 

时间戳转换 

 时间戳转换时间戳记录的是 1970-1-1 以来到现在时间的总秒数,通常用在 linux 服务器中,如果需要将其转化成具体的年月日时间格式,可以使 用以下方法:

Convert seconds since the epoch (1970-01-01 UTC) to a date

[root@Qi1 text]# date --date='@2147483647'
2038年 01月 19日 星期二 11:14:07 CST

 当然还可以使用在线的 unix 时间戳转化工具实现

4、history命令【常用参数】

     history     显示所有的历史命令

     history 10  显示最近10条命令

[root@Qi1 ~]# history 10
   10  kmdir test
   11  mkdir test
   12  ll
   13  cd /test
   14  cd test
   15  touch hello.txt
   16  ll
   17  cd ..
   18  history
   19  history 10

 !14         执行编号为14的历史命令

[root@Qi1 ~]# !14
cd test
[root@Qi1 test]# 

  !!  执行上一条命令

[root@Qi1 text]# cat txt
ls: 无法访问/dsssss: 没有那个文件或目录
/home:
Qi2
text
[root@Qi1 text]# !!
cat txt
ls: 无法访问/dsssss: 没有那个文件或目录
/home:
Qi2
text

可以通过 HISTSIZE 这个系统变量来查看我们的历史命令条数是多少

也可通过赋值实现修改其大小,如 HISTSIZE=2000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值