文件路径定位
# /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 .. #切换回当前目录的上级目录
系统文件管理:创建/复制/移动/删除
文件创建
# touch file #无则创建,有则修改时间
# rm -rf fil* 把fil开头的全删除
创建目录
# 目录创建命令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}
以树状显示目录结构命令tree
yum install -y tree
tree 路径目录
oo
└── aa
└── bb
cp 复制
#选项: -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移动
# 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删除
#选项:-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
系统文件管理:查看文件内容(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字符串
文件管理之:联网下载文件(wget、curl)、文件上传与下载(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 #只能下载文件,文件夹不行
文件管理之:文件或命令查找(locate、which、whereis、find)
# 命令查找
whereis 命令名
which 命令名
# 找文件
find / -name lqz.txt # 从根路径下开始找 名字叫lqz.txt的文件
文件管理之:字符处理命令(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文件有多少行
系统文件属性
#-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 #链接文件
系统链接文件:软连接,硬链接
# 文件分
文件名 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使用(使用频率非常高)
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 #替换内容时时提示是否需要替换
用户操作
# 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 # 设置密码