1、Linux系统的文件和目录
1.1、文件和目录(文件夹)
/ 代表根目录,里面有各种子目录(子文件夹)和文件
1.2、相对路径
不是以 / 开头的
1.3、绝对路径
以 / 开头
1.4、根目录 /
在根目录下,包含所有文件和目录,可以使用 ls 查看一下:
/bin 存放的是一些可执行文件和一些经常使用的一些指令
/boot 放置的是开机时会使用到的一些文件,包括系统核心文件
/dev 也称为设备目录,包含的一些文件是对应连接到计算机的一些设备,在linux系统中,任何设备都是以文件的形态存在于这个目录中
/etc 系统的主要配置文件几乎都放置在这个目录,比如passwd存的是系统的账号信息
/opt 安装附加软件包一般会存在这个目录下,比如jdk、mysql、node
/mnt 如果暂时挂载一些额外的设备,一般建议放到这个目录中
/lib 放置一些开机时会用到的函数库
/media 放置一些可移除的设备、软盘、光盘等
/tmp 暂时放置一些文件,所以需要定时清理,建议不要存放重要的数据
/usr
/usr/bin 一般用户能够使用的指令都放在这里
/usr/lib 库函数
/var 放置变量数据,经常会变动的一些文件
/home 家目录,每个用户都会在/home下有自己的对应的文件夹(使用 cd ~
命令可以快速切换到家目录)
2、Linux常用命令
注意:
- 命令一定要用空格去分割
- 严格区分大小写
- 单行命令的字符不要超过256个
命令:
cd 目录
:切换到相应的目录下
cd ~
家目录
cd /
根目录
cd ../
返回上一层目录
cd bin
bin要在当前目录下才能切换得到 bin 目录下
cd /bin
无论在哪都能切换到 bin 目录
pwd
全称:print working directory ,打印当前的绝对路径
clear
清屏
history
列出历史命令(自己使用过的命令)
--help
查看命令的使用方式,比如ls --help
(查看 ls 的使用方式)
man
查看指定命令的手册,比如 man ls
,按 q 键退出手册
ls
列出目前工作目录所含的文件及子目录
ls /
列出根目录下的文件和子目录
ls -a
显示所有文件,包含隐藏文件
ls -l
使用长列表,列出所展示的文件
drwxr-xr-x 2 root root 4096 Jun 29 17:04 bin
d 文件类型
d 目录
- 文件
l 链接
b 存储的设备
c 键盘、鼠标
rwx r-x r-x 权限:拥有者、同组人、其他人。 r-read(读) w-write(写) x-exe(执行)
2 链接号
root 拥有者
root 拥有组
4090 大小
Jun 29 17:04 最后一次修改的时间
bin 目录、文件名
3、用户的创建
注意:使用管理员身份才能创建
创建:
第一种:sudo useradd user1
创建用户user1
sudo passwd user1
给用户user1设置密码,改密码也用这个
sudo !!
以超级管理员身份执行上一条命令
第二种:sudo adduser user1
创建用户user1(最好使用这个创建)
查看:
cat /etc/passwd
user1:x:1001:1001::/home/user1:/bin/sh
账户名:密码:uid(用户id):gid(组id):用户说明:用户的家目录:shell
sudo cat /etc/shadow
可以看到密码
user1:!:19207:0:99999:7:::
user1 账户名
!密码(
19207 最近更新密码的日期
0 密码不可以被修改的天数
99999 密码需要被修改的天数提前提醒
7 账号失效日期
:保留
删除:
sudo userdel -r user2
(删除 /etc/passwd中的账号信息,
删除/etc/shadow中的账号信息,
删除 /etc/group中的账号信息,
删除 /etc/gshadow中的账号信息,
账号的个人文件 /home/user2,
账号的个人文件/var/mail/user2)
4、小组的创建
创建:
sudo groupadd group1
创建小组group1
查看:
cat /etc/group
sudo cat /etc/gshadow
组名:密码:gid
user2:x:1002:
删除:
sudo groupdel group1
删除组group1(要保证小组中没有成员)
切换账号(用户):
su - test
切换到test用户
exit
退出
5、文件管理
如果有命令执行不了,可以在前面添加sudo,使用超级管理员身份执行。
创建目录(文件夹):
mkdir mulu1
创建目录mulu1
mkdir mulu1 mulu2 mulu3
同时创建多个目录
mkdir -p mulu4/mulu/mulu
创建级联目录
删除目录:
sudo rmdir mulu1
删除空目录
sudo rm -r mulu4
删除级联的目录
创建文件:
touch text.txt
创建文件text.txt,如果已经存在该文件,就会更新文件最近修改时间
删除文件:
rm text.txt
删除文件
rm user1 user2 user3
删除多个文件
移动文件或目录:
mv user11/ ../user2
移动文件或目录,将user11移到user2中
mv user11/ user22
重命名文件或目录,将user11重命名为user22
拷贝文件或目录:
cp -r user22/ ../user1
拷贝user22到user1中
6、文件权限
6.1、改变组
改变文件的所属群组:
sudo chgrp users text.txt
将text.txt 移到 users组
改变目录的所属群组:
sudo chgrp -R users user1
改变user1本身的组以及user1目录下的其他文件的组
6.2、改变拥有者
(要确保新的拥有者是已经存在的系统中的账号,也就是在/etc/passwd中有记录)
改变文件拥有者:
sudo chown root text.txt
把文件text.txt拥有者改为root
改变目录拥有者:
sudo chown -R root user1
6.3、同时改变拥有者和拥有组
sudo chown -R root:root user1
6.4、修改文件权限
文件权限 :r(可读),w(可写),x(可执行)
方式一:
各权限赋值如下:(使用时相加即可)
r:4,w:2,x:1
比如:(rwx rwx r-x)就是 775
(r-- r-- —)就是 440
sudo chmod 444 user22
给user22设置权限为(r-- r-- r–)
方式二:
u(拥有者), g(同组人), o(其他人),a(all,全部人)
chmod u=rwx,g=r,o=r user22
或者写成 chmod u=rwx,go=r user22
设置user22文件的拥有者的权限为rwx,同组人的权限为 r–,其他人的权限为 r–
chmod a=rwx user22
chmod a-x user22
给所有人去掉权限 x
chmod o-x user22
给其他人去掉权限 x
chmod a+x user22
给所有人添加权限 x
7、文件压缩与解压
7.1、文件压缩
gzip test1.js
压缩文件test1.js (压缩完之后原文件没有了)
bzip2 test1.txt
压缩文件test1.txt(压缩完之后原文件没有了)
sudo apt install zip
安装第三方库zip
zip test.zip test2.txt test3.txt
将文件test2.txt和 test3.txt 压缩到 test.zip中(压缩完后原文件还在)
7.2、文件解压
gunzip test1.js.gz
或者gzip -d test1.js.gz
(解压后压缩包消失)
bunzip2 test1.txt.bz2
或者 bzip2 -d test1.txt.bz2
(解压后压缩包消失)
unzip test.zip
(解压后压缩包还在)
8、文件内容查看
cat text.txt
文件内容查看
tac text.txt
反向展示
nl text.txt
添加行号
more text.txt
空格键可以翻页,可以看到剩余内容百分比
less text.txt
上下翻页,按 q 键退出
head text.txt
查看文件前几行 默认10行
head -2 text.txt
查看文件前两行
tail text.txt
查看文件后几行 默认10行
tail -2 text.txt
查看文件后两行
9、文件内容编辑
vi text.txt
编辑文件(i 键编辑,esc退出编辑,:wq 保存退出)
(如果没有该文件,则会先创建该文件再打开)
9.1、指令模式
dd
删除当前行
ndd
删除光标处向下 n 行
d1G
删除从光标处到第一行
dG
删除从光标处到最后一行
yy
复制光标所在行
nyy
复制 n 行
y1G
复制从光标处到第一行,并回到第一行
yG
复制从光标处到最后一行
p
粘贴光标所在处下一行
P
粘贴光标所在处上一行
r
:替换当前字符,比如先按r ,再按9,就把当前字符改成了9
R
:进入 replace模式,你新输入的内容会一直取代当前光标处的文字,按esc结束
光标:h
左 j
下 k
上 l
右
nj
:光标向下移动 n 行
ctrl + F
向下一页
ctrl + b
向上一页
ctrl + d
向下半页
ctrl + u
向上半页
n + 空格键
光标在当前行向右移动 n 个字符
H
光标回到最上方的第一个字符
M
光标移动到中间第一个字符
L
光标移动到最后一行第一个字符
G
光标移动到最后一行第一个字符
nG
移动到文件的第 n 行
gg
光标回到第一行
n + 回车键
光标向下移动三行
/ 字符串
从光标处向下寻找当前字符串
在查询结果中 按 n/N 会继续寻找负荷条件的字符串
x
向后删除一个字符
nx
向后删除 n 个字符
X
向前删除一个字符
nX
向前删除 n 个字符
9.2、编辑模式(在指令模式下,按 i、I 、a 、A 、o、O 键都能进入编辑模式,按esc又回到指令模式)
i
:在目前光标所在处进入
I
:在目前光标所在处的第一个非空白字符上插入
a
:在目前光标所在处的下一个字符处进行插入
A
:在目前光标所在处的最后一个字符处进行插入
o
:在目标光标处的下一行开始插入
O
:在目标光标处的上一行开始插入
9.3、命令行模式(底行模式)
在指令行模式下,通过冒号 :
(英文)进入
:w
写入到硬盘(保存)
:w!
强制写入
:q
退出
:q!
强制退出,不保存的情况下退出
:wq
保存退出
:wq!
强制保存退出
ZZ
保存退出
:w filename
另存为
:r filename
将另一个文件的内容添加到光标所在列后面