4. Linux工作目录切换和文本文件编辑命令
阅读原文时间:2023年07月10日阅读:1

1.pwd:显示用户当前所处的工作目录

举例:[root@Centos ~]# pwd

/root

2.cd:切换工作路径

“cd -”命令返回到上一次所处的目录

“cd..”命令进入上级目录

“cd ~”命令切换到当前用户的家目录

“cd ~username”切换到其他用户的家目录

3.ls:显示目录中的文件信息。

使用ls 命令的“-a”参数看到全部文件(包括隐藏文件),使用“-l”参数可以查看文件的属性、大小等详细信息。将这两个参数整合之后,再执行ls 命令即可查看当前目录中的所有文件并输出这些文件的属性信息。

举例:

如果想要查看目录属性信息,则需要额外添加一个-d 参数。例如,可使用如下命令查看/etc 目录的权限与属性信息:

[root@Centos ~]# ls -ald /etc
drwxr-xr-x. 132 root root 8192 Aug 3 18:27 /etc

4.cat:查看内容较少的纯文本文件  -n表示显示行号

[root@Centos ~]# cat -n /etc/sysconfig/network-scripts/ifcfg-ens32
1 TYPE=Ethernet
2 PROXY_METHOD=none
3 BROWSER_ONLY=no
4 BOOTPROTO=static
5 DEFROUTE=yes
6 IPV4_FAILURE_FATAL=no
7 IPV6INIT=yes
8 IPV6_AUTOCONF=yes
9 IPV6_DEFROUTE=yes
10 IPV6_FAILURE_FATAL=no
11 IPV6_ADDR_GEN_MODE=stable-privacy
12 NAME=ens32
13 UUID=330f66b2-9db2-40fb-a496-e086582b7f59
14 DEVICE=ens32
15 ONBOOT=yes
16
17 GATEWAY=192.168.137.2
18 IP ADDR=192.168.137.1
19 NETMASK=255.255.255.0
20 DNS=223.5.5.5

5.more:查看内容较多的纯文本文件。

Enter   默认向下1行,行数可以定义。

空格    向下滚动一屏

=        输出当前行的行号

q         取消

6.head:查看纯文本文档的前n行

举例:

[root@Centos ~]# head -n 10 anaconda-ks.cfg
#version=DEVEL

System authorization information

auth --enableshadow --passalgo=sha512

Use CDROM installation media

cdrom

Use graphical install

graphical

Run the Setup Agent on first boot

firstboot --enable

Keyboard layouts

7.tail:查看纯文本文档的后N 行或持续刷新内容

实用功能:实时查看最新日志文件

[root@Centos ~]# tail -f /var/log/messages
Aug 4 11:49:52 Centos dbus[769]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Aug 4 11:49:52 Centos dbus-daemon: dbus[769]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Aug 4 11:49:52 Centos dhclient[56056]: bound to 192.168.137.113 -- renewal in 295 seconds.
Aug 4 11:49:52 Centos systemd: Starting Network Manager Script Dispatcher Service…
Aug 4 11:49:52 Centos dbus-daemon: dbus[769]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Aug 4 11:49:52 Centos dbus[769]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Aug 4 11:49:52 Centos nm-dispatcher: req:1 'dhcp4-change' [ens32]: new request (4 scripts)
Aug 4 11:49:52 Centos systemd: Started Network Manager Script Dispatcher Service.
Aug 4 11:49:52 Centos nm-dispatcher: req:1 'dhcp4-change' [ens32]: start running ordered scripts…
Aug 4 11:49:52 Centos nm-dispatcher: /etc/sysconfig/network-scripts/ifcfg-ens32: line 18: IP: command not found
Aug 4 11:50:01 Centos systemd: Started Session 642 of user root.
Aug 4 11:50:01 Centos systemd: Starting Session 642 of user root.

8.tr:替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”。

如,将cat读取到的文本全部改为大写

[root@Centos etc]# cat centos-release | tr [a-z] [A-Z]
CENTOS LINUX RELEASE 7.4.1708 (CORE)

9.wc :统计指定文本的行数、字数、字节数

举例:统计当前系统有多少个用户 (passwd文件一行表示一个用户)。

[root@Centos ~]# wc -l /etc/passwd
40 /etc/passwd

或者

[root@Centos ~]# more /etc/passwd | wc -l
40

10.stat :查看文件的具体存储信息和时间等信息

[root@Centos ~]# stat /etc/passwd
File: ‘/etc/passwd’
Size: 2065 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 16787341 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:passwd_file_t:s0
Access: 2020-08-05 00:00:50.510997353 +0800
Modify: 2020-07-30 01:45:45.209380705 +0800
Change: 2020-08-01 01:01:51.603993917 +0800
Birth: -

11.cut :按“列”提取文本字符

-f 参数来设置需要看的列数,使用-d 参数来设置间隔符号。

举例:passwd 在保存用户数据信息时,用户信息的每一项值之间是采用冒号来间隔的,接下来我们使用下述命令尝试提取出passwd 文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容:

[root@Centos ~]# head -n 2 /etc/passwd
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin  

[root@Centos ~]# cut -f 1 -d : /etc/passwd
root
bin
daemon
adm
lp
sync

12.diff:比较多个文本文件的差异

--brief 参数来确认两个文件是否不同

-c参数来详细比较出多个文件的差异之处

[root@Centos test]# diff --brief A.txt B.txt

Files A.txt and B.txt differ  

[root@Centos test]# diff -c A.txt B.txt
*** A.txt 2020-08-04 14:53:40.897692451 +0800
--- B.txt 2020-08-04 14:53:18.563340871 +0800
***************
*** 1,6 ****
Hello,I am Xinghen1216
! I'm from hebei
! I'm a network administrator
! I like Linux
GO and UP!

--- 1,6 ----
Hello,I am Xinghen1216
! I'm from sjz
! I'm a network engineer
! I like linux
GO and UP!