103、文件路径定位 、系统文件属性 、vim使用、用户操作

2023年 8月 17日 68.6k 0

今日内容概要

  • 文件路径定位
  • 系统文件管理:
    • 创建/复制/移动/删除
    • 查看文件内容
    • 联网下载文件
    • 文件或命令查找
    • 字符处理命令
  • 系统文件属性
  • vim使用
  • 用户操作

今日内容详细

文件路径定位

1. /bin, /sbin, /lib, /lib64都以软链接的形式链接到/usr/目录下
    /bin –> /usr/bin
    /sbin –> /usr/sbin
    lib -> usr/lib
    lib64 -> usr/lib64

2.路径非常重要,名字一样,单不一定是一个文件
3.相对路径与绝对路径
	相对路径: 相对于当前文件,目录的路径
	绝对路径:从根路径下开始找
  win:cd
  linxu: /
4. .和..
		1. . 表示当前路径
    2. .. 表示上一层
		ps:以后看到 . .. 都是用相对,看到 / 都是绝对
      ./  相对
      ../ 相对
    
5.cd操作
	1.cd      切换目录,例: cd /etc
	2.cd -    切换回上一次所在的目录
	3.cd ~    切换回当前用户的家目录,注意:root和普通用户是否有所不同吗?
	4.cd .    代表当前目录,一般在拷贝、移动等情况下使用 cp /etc/hostname ./
	5.cd ..   切换回当前目录的上级目录

系统文件管理:创建/复制/移动/删除

文件创建touch

1.touch file                    #无则创建,有则修改时间
2.touch file2 file3
3.touch /home/od/file4 file5
4.touch file{a,b,c}             #{}集合,等价 touch a b c
5.touch file{1..10}
6.touch file{a..z}

ps:rm -rf fil*  把fil开头的全删除

创建目录mkdir

1.选项:-v 显示详细信息  -p 递归创建目录
	1.mkdir dir1
  2.mkdir /home/od/dir1 /home/od/dir2
	3.mkdir -v /home/od/{dir3,dir4} 
  4.mkdir -pv /home/od/dir5/dir6
  5.mkdir -pv /home/{od/{diu,but},boy}

以树状显示目录结构命令tree

1.下载:yum install -y tree
2.tree 路径目录
  .
  └── a
      └── c

复制cp

1.选项: -v:详细显示命令执行的操作 -r: 递归处理目录与子目录 -p: 保留源文件或目录的属性
  1. cp file /tmp/file_copy
  2. cp name /tmp/name         #不修改名称
  3. cp file /tmp/             #不修改名称
  4. cp -p file /tmp/file_p    #-p保持原文件或目录的属性
  5. cp -r  /etc/ /tmp/        #复制目录需要使用-r参数, 递归复制
  6. cp -rv /etc/hosts /etc/hostname /tmp  #拷贝多个文件至一个目录
  7. cp -rv /etc/{hosts,hosts.bak}
  8. cp -rv /etc/hosts{,-org}

移动mv

1.mv file file1             #原地移动算改名
2.mv file1 /tmp/            #移动文件至tmp目录
3.mv /tmp/file1 ./          #移动tmp目录的文件至当前目录
4.mv dir/ /tmp/             #移动目录至/tmp目录下

5.touch file{1..3}
  mv file1 file2 file3 /opt/    #移动多个文件或至同一个目录

6.mkdir dir{1..3}
  mv dir1/ dir2/ dir3/ /opt     #移动多个目录至同一个目录

删除rm

1.选项:-r: 递归 -f: 强制删除 -v: 详细过程
  1.rm  file.txt      删除文件, 默认rm存在alias别名,rm -i所以会提醒是否删除文件
  2.rm -f file.txt    删除文件, 不提醒


  3.rm -r dir/        递归删除目录,会提示
  4.rm -rf dir/       强制删除目录,不提醒(慎用)


2..rm删除示例
  mkdir /home/dir10
  touch /home/dir10/{file2,file3,.file4}
  rm -f /home/dir10/  //不包括隐藏文件 
  ls /home/dir10/ -a
  .  ..  dir1  dir2  dir3


3.rm删除示例2
 touch file{1..10}
 touch {1..10}.pdf
 rm -rf *.pdf
 rm -rf file*

查看文件内容(cat less more head tail grep )

cat

1.
  cp /etc/passwd ./pass
  cat pass      正常查看文件方式
  cat -n pass   -n显示文件有多少行
  cat -A pass   查看文件的特殊符号,比如文件中存在tab键
  tac pass      倒序查看文件

2.追加内容
  cat >> 文件名  test2.txt  nana.txt
  程序在往日志文件里写日志

grep过滤文件内容

1.grep "^root" pass     匹配以root开头的行
2.grep "bash$" pass     匹配以bash结尾的行
3.grep -i "ftp" pass    忽略大小写匹配
4.grep  -Ei "sync$|ftp" pass    匹配文件中包含sync结尾或ftp字符串
5.grep -n -A 2 "Failed" /var/log/secure 匹配/var/log/secure文件中Failed字符串,并打印它的下2行
6.grep -n -B 2 "Failed" /var/log/secure #匹配/var/log/secure文件中Failed字符串,并打印它的上2行
7.grep -n -C 2 "Failed" /var/log/secure #匹配/var/log/secure文件中Failed字符串,并打印它的上下2行
ps:/etc/passwd   存放用户的文件

8.上翻,下翻
  control+b:下翻
  control+f:上翻

文件管理之:联网下载文件(wget、curl)、文件上传与下载(rz、sz)

wget、curl联网下载文件

1.wget
  1.yum install wget -y
  2..选项: -O: 指定下载地址
    wget -O /etc/yum.repos.d/CentOS-Base.repo 	http://mirrors.aliyun.com/repo/Centos-7.repo

2.crul:浏览网络上资源,-o保存到本地
  1.选项: -o: 指定下载地址
  	curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

rzsz上传下载文件

1.win
yum install lrzsz -y  #不安装软件则无法执行该命令
	rz            #只能上传文件文件上传(不能大于4g)
	sz /path/file #只能下载文件

2.mac
	mac电脑上传文件到虚拟机:scp /path/to/your/file username@192.168.0.100:/path/to/destination
	虚拟机下载文件到mac电脑上:scp username@192.168.0.100:/path/to/your/file /path/to/destination/on/your/mac

文件管理之:文件或命令查找(locate、which、whereis、find)

文件查找

1.locate /etc/sh       #搜索etc目录下所有以sh开头的文件
2.locate -i /etc/sh    #搜索etc目录下,所有以sh开头的文件,忽略大小写

命令查找

1.which ls  查找ls命令的绝对路径
2.whereis ls       //查找命令的路径、帮助手册、等
3.whereis -b ls    //仅显示命令所在的路径,仅看二进制

4.对于内核相关的一些命令,用which whereis 是无法查询到的,需要使用type采查询
	type -a ls        #查看命令的绝对路径(包括别名)
	type -a for
5.找文件
	find / -name nana.txt # 从根路径下开始找 名字叫nana.txt的文件
  -查找/etc目录下包含ifcfg-eth0名称的文件  find /etc -name "ifcfg-eth1"
  - find /etc/ -name "ifcfg*"  
  -查找 ect目录下大于5m的文件:find /etc -size +5M
  -查找dev目录下所有的目录:find /dev -type d
  -查找当前路径下名字忽略大小写以file-开头的7天前的文件:find ./ -iname "file-*" -mtime +7

文件管理之:字符处理命令(wc)

www.cnblogs.com/liuqingzhen…

1.wc统计行号
	选项:-l显示文件行数 -c显示文件字节 -w显示文件单词
2.wc -l /etc/fstab      #统计/etc/fstab文件有多少行
3.wc -l /etc/services   #统计/etc/services 文件行号
4.ls |wc -l 
5.cat /etc/fstab | wc -l  #统计/etc/fstab文件有多少行

2.扩展方法
 grep -n "." /etc/services  | tail -1
 awk '{print NR $0}' /etc/services | tail -1
 cat -n /etc/services  | tail -1

系统文件属性

1.
[root@nana ~]# ll -d /etc/hosts /tmp /bin/ls  /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
-rwxr-xr-x.  1 root root 117656 Jun 30  2016 /bin/ls
srw-rw-rw-.  1 root root      0 Jan 20 10:35 /dev/log
brw-rw----.  1 root disk   8, 0 Jan 20 10:36 /dev/sda
crw--w----.  1 root tty    4, 1 Jan 20 10:36 /dev/tty1
lrwxrwxrwx.  1 root root     22 Jan 13 11:31 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--.  1 root root    199 Jan 20 11:03 /etc/hosts
prw-------.  1 root root      0 Jan 20 10:36 /run/dmeventd-client
drwxrwxrwt. 61 root root   8192 Jan 21 13:01 /tmp

2.说明
	-rw-r--r--. 1 root root 35 7月  27 10:33 lqz.txt

  1. -rw-r--r--. 第一个- 表示文件类型,后面的rwx,表示权限
  2. 1           硬链接次数
  3. root        文件属于哪个用户
  4. root        文件属于哪个组
  5. 87811       文件大小
  6. 7月  27 10:33 :最新修改的时间与日期
  7. a.jpeg      ⑨:文件或目录名称

3.文件类型
  -   普通文件(文本, 二进制, 压缩, 图片, 日志等) 
  d   目录文件
  b   设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
  c   设备文件(字符设备),终端 /dev/tty1, /dev/zero
  s   套接字文件, 进程间通信(socket)
  p   管道文件
  l   链接文件

系统链接文件:软连接,硬链接

文件分:文件名 、 inode信息:文件类型,大小,位置,时间 ,文件真正存储位置block

软连接--复制一份inode信息(win的快捷方式)

软链接文件会将inode指向源文件的block,当我们访问这个软链接文件时,其实访问的是源文件本身。那么当我们对一个文件创建多个软链接,其实就是多个inode指向同一个block。当我们删除软链接文件时,其实只是删除了一个inode指向,并不会对源文件源文件造成影响,但如果删除的是源文件则会造成所有软链接文件失效

软连接.png

硬连接--只是复制了一份文件名

若一个inode号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名,如下图hard link 就是 file 的一个别名,他们有共同的 inode。

硬连接.png

软连接实战

1.文件软链接示例
touch /root/file
ln -s /root/file /tmp/file_bak
ll /tmp/file_bak  root下file链接到/tmp下并重命名为file_bak
lrwxrwxrwx. 1 root root 10 7月  26 22:55 /tmp/file_bak -> /root/file
  

2.目录软链接示例
mkdir /soft/nginx1.1 -p
ln -s /soft/nginx1.1/ /soft/nginx
ll /soft/nginx   查看链接指向
lrwxrwxrwx. 1 root root 15 7月  26 22:57 nginx1.1 -> /soft/nginx1.1/

3.redis源码安装  redis.7.11---->做个软连接 redis---
redis.7.11 /bin
redis.6.11 /bin
redis 指向7.11--->redis/bin/xx

4.软链接使用场景
  1.软件升级
  2.企业代码发布 
  3.不方便目录移动

硬链接实践

1.文件硬链接示例
  ln  /root/file /tmp/file_hard
  ll /tmp/file_hard
  -rw-r--r--. 2 root root 0 7月  26 22:55 /tmp/file_hard
ps:目录不能创建硬链接,硬链接文件可以用rm命令删除

硬链接与软链接区别

1.ln命令创建硬链接,ln -s命令创建软链接。
2.目录不能创建硬链接,并且硬链接不可以跨越分区系统。
3.目录软链接特别常用,并且软链接支持跨越分区系统。
4.硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。
5.删除软链接文件,对源文件及硬链接文件无任何影响。
6.删除文件的硬链接文件,对源文件及链接文件无任何影响。
7.删除链接文件的源文件,对硬链接无影响,会导致软链接失效。
8.删除源文件及其硬链接文件,整个文件会被真正的删除。

vim使用(使用频率非常高)

www.cnblogs.com/liuqingzhen…

vim.png

1.什么是VIM?
	vi和vim是Linux下的一个文本编辑工具。(可以理解为windows的记事本,或word文档)
  最小化安装只有vi
	vim,需要额外安装,比vi更强大一些

2.为什么要使用VIM?
  因为Linux系统一切皆为文件,而我们工作最多的就是修改某个服务的配置(其实就是修改文件内容)。
  也就是说如果没有vi/vim,我们很多工作都无法完成。PS: vim是学习linux最重要的命令之一

3.VI与VIM有什么区别?
  vi和vim都是文本编辑器,只不过vim是vi的增强版,比vi多了语法高亮显示,其他编辑功能几乎无差,所以使用vi还是vim取决个人习惯。(相当于windows系统下的文本编辑软件“记事本”与”notepad++”的区别)
  PS:因为前期最小化安装CentOS系统,所以默认情况下没有vim命令,但可以使用yum install vim -y安装

4.如何使用VIM编辑器?
  在使用VIM之前,我们需要先介绍下VIM的三种模式: 普通模式、编辑模式、命令模式,每种模式分别支持多种不同的快捷键,要想高效率地操作文本,就必须先搞清这三种模式的操作区别以及模式之间的切换方法。
  
5.安装:yum install vim -y
6.vim 操作文件,有三种模式:普通模式,编辑模式,命令模式
		1.vim 文件名刚进来----》普通模式--》只能复制,粘贴,翻页,剪切
    2.进入到编辑模式(按esc退回到普通模式):从普通模式进入:i,a,o,I,A,O-->就可以写内容了
    3.命令模式:之鞥呢从普通模式进入
    

普通模式

1.命令光标跳转
G       #光标跳转至末端
gg      #光标跳转至顶端
Ngg     #光标跳转至当前文件内的N行
$       #光标跳转至当前光标所在行的尾部
^或者0     #光标跳转至当前光标所在行的首部

2.文件内容较多
ctrl+f  #往下翻页(行比较多)
ctrl+b  #往上翻页


3.复制与粘贴
yy      #复制当前光标所在的行
5yy     #复制当前光标以及光标向下4行
 
p(小写)   #粘贴至当前光标下一行   
P(大写)   #粘贴至当前光标上一行


4.删除、剪贴、撤销  
dd      #删除当前光标所在的行   
4dd     #删除当前光标所在的行以及往下的3行
dG      #删除当前光标以后的所有行
D       #删除当前光标及光标以后的内容  
x       #删除当前光标标记往后的字符
X       #删除当前光标标记往前的字符
dd & p  #剪贴、先删除dd(number dd),后粘贴p
u       #撤销上一次的操作


5.替换
r       #替换当前光标标记的单个字符
R       #进入REPLACE模式, 连续替换,ESC结束

编辑模式(从普通模式进入到编辑模式)

i   #进入编辑模式,光标不做任何操作
a   #进入编辑模式,将当前光标往后一位
o   #进入编辑模式,并在当前光标下添加一行空白内容


I   #进入编辑模式,并且光标会跳转至本行的头部
A   #进入编辑模式,将光标移动至本行的尾部
O   #进入编辑模式,并在当前光标上添加一行空白内容

命令模式,主要用于搜索, 保存, 退出文件。

1.文件保存与退出
:w      保存当前状态
:w!     强制保存当前状态
:q      退出当前文档(文档必须保存才能退出)
:q!     强制退出文档不会修改当前内容
:wq     先保存,在退出
:wq!    强制保存并退出
:x      先保存,在退出
ZZ      保存退出, shfit+zz
:number 跳转至对应的行号
:set nu 显示行号
:set nonu 不显示行号

2.文件内容查找
/string #需要搜索的内容(查找)
n       #按搜索到的内容依次往下进行查找
N       #按搜索到的内容依次往上进行查找


3.文件内容替换
:1,5s#sbin#test#g   #替换1-5行中包含sbin的内容为test
:1,5s#sbin#test#   #只替换1-5行中第一个包含sbin的内容为test
:%s#sbin#test#g     #替换整个文本文件中包含sbin的替换为test
:%s#sbin#test#gc    #替换内容时时提示是否需要替换


4.文件内容另存
:w /root/test.txt  #将所有内容另存为/root/test.txt文件中


5.文件内容读入
:r  /etc/hosts  #读入/etc/hosts文件至当前光标下面
:5r /etc/hosts  #指定插入/etc/hosts文件至当前文件的第五行下面

用户操作

用户指的是能够正常登录Linux或Windows系统(可以理解为你租了房子,能够正常入驻),Linux系统则允许同一时刻多个用户同时登陆,登陆后相互之间操作并不影响。

1.Linux下的用户有什么用或者说我们为什么要创建用户?
  1.系统上的每一个进程(运行的程序),都需要一个特定的用户运行
  2.通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。

查看用户

1.查看当前登录的用户信息:id
[root@localhost nana]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
"""
uid:用户id,系统只能识别uid,不能识别名字,人看名字
gid:组id
uid=0(root) gid=0(root) groups=0(root)
"""
2.
[root@bgx ~]# id oldboy #查看其它用户的信息
uid=1000(oldboy) gid=1000(oldboy) groups=1000(oldboy)

每一个进程都会由一个用户身份运行

ps aux 可以查看

[root@nana ~]# ps aux|less #简单使用一下,不用理解
root      33782  0.0  0.0      0     0 ?        R    02:46   0:00 [kworker/u256:0]
root      35637  0.0  0.0      0     0 ?        R    05:11   0:03 [kworker/0:2]

用户存存放位置

Linux系统会将用户的信息存放在/etc/passwd,记录了用户的信息,但没有密码信息,密码被存放在/etc/shadow中。也就是说这两个文件非常的重要,不要轻易删除与修改。

1./etc/passwd 配置文件解释如下图,或者man 5 passwd

passwd.png

2./etc/shadow 配置文件解释如下图,或者man 5 shadow (ps使用change修改密码过期时间示例)

shadow.png

4.最后我们需要了解下系统对用户的一个约定?(约定娶你,就真的会娶吗?)

用户UID 系统中约定的含义
0 超级管理员,最高权限,有着极强的破坏能力
1~200 系统用户,用来运行系统自带的进程,默认已创建
201~999 系统用户,用来运行用户安装的程序,所以此类用户无需登录系统
1000+ 普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限

PS:在CentOS7系统之前, UID1-499用于系统用户, 而UID 500+则用于普通用户

用户相关命令

1.增加用户

使用useradd命令,注意: adduser命令软链接指向useradd命令

useradd justin #增加一个用户
adduser  # 它就是useradd的软连接,改了个名字
passwd justin # 设置密码

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论