linux---"file path/system/file management

file path location

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


# 路径非常重要,名字一样,单不一定是一个文件

# 相对路径: 相对于当前文件,目录的路径
# 绝对路径:从根路径下开始找
	win:c d
    linxu  /
    
    
# .  和  ..
	. 表示当前路径
    .. 表示上一层
	
# 以后看到 . .. 都是用相对,看到 / 都是绝对
	./  相对
    ../ 相对
    
    
#  cd操作
# cd      #切换目录,例: cd /etc
# cd -    #切换回上一次所在的目录
# cd ~    #切换回当前用户的家目录,注意:root和普通用户是否有所不同吗?
# cd .    #代表当前目录,一般在拷贝、移动等情况下使用 cp /etc/hostname ./
# cd ..   #切换回当前目录的上级目录

System file management: create/copy/move/delete

file creation

# touch file     #无则创建,有则修改时间

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

Create a directory

# 目录创建命令mkdir

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

Display the directory structure command tree in tree form

yum install -y tree

tree 路径目录
oo
└── aa
    └── bb

cp copy

#选项: -v:详细显示命令执行的操作 -r: 递归处理目录与子目录 -p: 保留源文件或目录的属性

# cp file /tmp/file_copy
# cp name /tmp/name         #不修改名称
# cp file /tmp/             #不修改名称
# cp -p file /tmp/file_p    #-p保持原文件或目录的属性
# cp -r  /etc/ /tmp/        #复制目录需要使用-r参数, 递归复制
# cp -rv /etc/hosts /etc/hostname /tmp  #拷贝多个文件至一个目录
# cp -rv /etc/{hosts,hosts.bak}
# cp -rv /etc/hosts{,-org}

mv mobile

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

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

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

rm delete

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


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


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


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

System file management: view file content (cat less more head tail grep)

cat,tac

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

cat >> 文件名 <<EOF
内容
EOF

less more

#------less、more ,查看一部分文件内容,less可以上下翻,more只能向下翻
# less /etc/services    #使用光标上下翻动,空格进行翻页,q退出
# more /etc/services    #使用回车上下翻动,空格进行翻页,q退出(有百分比)

head

#------head
# head pass     #查看头部内容,默认前十行
# head -n5 pass #查看头部5行,使用-n指定
# ps aux | head -5 # 只看头部5个进程
# ls -al | head -3 # 查看ls结果的头三个

tail

#------tail
# tail pass  # 查看文件尾部,默认10行
# tail -20 /var/log/secure  # 查看文件尾部20行
# tail -f /var/log/messages #-f动态查看文件尾部的变化
# tailf /var/log/messages   #查看文件尾部的变化
# ps aux | tail -2



# tail -f 文件夹,会夯在这,看文件变化
# 别的进程,会文件进行操作
 	echo "lqz nb" >> lqz.txt
    程序在往日志文件里写日志





grep

# /etc/passwd   存放用户的文件

#------grep过滤文件内容
# grep "^root" pass     #匹配以root开头的行
# grep "bash$" pass     #匹配以bash结尾的行
# grep -i "ftp" pass    #忽略大小写匹配
# grep  -Ei "sync$|ftp" pass    #匹配文件中包含sync结尾或ftp字符串

File management: download files online (wget, curl), upload and download files (rz, sz)

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

#
rzsz上传下载文件

# yum install lrzsz -y  #不安装软件则无法执行该命令

# rz             #只能上传文件文件上传(不能大于4g)
# sz /path/file  #只能下载文件,文件夹不行

File management: file or command search (locate, which, whereis, find)

# 命令查找
whereis  命令名
which  命令名

# 找文件
find / -name lqz.txt # 从根路径下开始找 名字叫lqz.txt的文件

File management: character processing command (wc)

# wc统计行号
#选项:-l显示文件行数 -c显示文件字节 -w显示文件单词

# wc -l /etc/fstab      #统计/etc/fstab文件有多少行
# wc -l /etc/services   #统计/etc/services 文件行号
# ls |wc -l 
#cat /etc/fstab | wc -l  #统计/etc/fstab文件有多少行

System File Properties

#-rw-r--r--. 1 root root 35 7月  27 10:33 lqz.txt

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


ll -d /etc/hosts /tmp /bin/ls  /dev/sda /dev/tty1 /etc/grub2.cfg /dev/log /run/dmeventd-client
# 文件类型:
-   #普通文件(文本, 二进制, 压缩, 图片, 日志等) 
d   #目录文件
b   #设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c   #设备文件(字符设备),终端 /dev/tty1, /dev/zero
s   #套接字文件, 进程间通信(socket)
p   #管道文件
l   #链接文件

System link files: soft links, hard links

# 文件分 
	文件名   inode信息:文件类型,大小,位置,时间    文件真正存储位置block
    
    
# 软连接---》复制一份inode信息(win的快捷方式)
	软链接文件会将inode指向源文件的block,当我们访问这个软链接文件时,其实访问的是源文件本身。那么当我们对一个文件创建多个软链接,其实就是多个inode指向同一个block。当我们删除软链接文件时,其实只是删除了一个inode指向,并不会对源文件源文件造成影响,但如果删除的是源文件则会造成所有软链接文件失效
# 硬连接---》只是复制了一份文件名
	若一个inode号对应多个文件名,硬链接就是同一个文件使用了多个别名,共用一个inode
    
    
###### 软连接实战
#文件软链接示例
touch /root/file
ln -s /root/file /tmp/file_bak
ll /tmp/file_bak  //root下file链接到/tmp下并重命名为file_bak
  

#目录软链接示例
mkdir /soft/nginx1.1 -p
ln -s /soft/nginx1.1/ /soft/nginx
ll /soft/nginx   //查看链接指向


# redis源码安装  redis.7.11---->做个软连接 redis---》
redis.7.11 /bin
redis.6.11 /bin
redis 指向7.11--->redis/bin/xx
#软链接使用场景
1.软件升级
2.企业代码发布 
3.不方便目录移动


###### 硬连接实战
#文件硬链接示例
ln  /root/file /tmp/file_hard
ll /tmp/file_hard

#PS:目录不能创建硬链接,硬链接文件可以用rm命令删除

vim use (very high frequency of use)

vi和vim是Linux下的一个文本编辑工具
最小化安装只有vi
vim,需要额外安装,比vi更强大一些

# 安装
yum install vim -y

# vim 操作文件,有三种模式:普通模式,编辑模式,命令模式
	-vim 文件名刚进来----》普通模式--》只能复制,粘贴,翻页,剪切
    -进入到编辑模式(按esc退回到普通模式):从普通模式进入:i,a,o,I,A,O-->就可以写内容了
    -命令模式:之鞥呢从普通模式进入
    	-搜索,设置行号。。。
        
        
        
        
# 普通模式 下操作
#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.文件保存与退出
:q      退出当前文档(文档必须保存才能退出)
:q!     强制退出文档不会修改当前内容
:wq     先保存,在退出
:wq!    强制保存并退出

: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    #替换内容时时提示是否需要替换

user operation

# 1.查看当前登录的用户信息
id
# 用户id,root为0
# gid:组id root组是0
#属于哪个组:0
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023


# 2 每一个进程都会由一个用户身份运行	
ps aux 可以查看


# 用户存存放位置
	-1 Linux系统会将用户的信息存放在/etc/passwd,记录了用户的信息,但没有密码信息
    -2 密码被存放在/etc/shadow中存放密码
    
    
    - 解释/etc/passwd
    lqz:x:1000:1000::/home/lqz:/bin/bash
	# 看图
    
    -解释/etc/shadow---》即便密码相同,显示也不一样
    
	# 看图
# 1970年是计算机元年


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


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

Guess you like

Origin blog.csdn.net/qq_52385631/article/details/131961840