一、Linux目录结构
1、基本介绍
linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此
目录下再创建其他的目录
在 Linux 世界里,一切皆文件
2、目录结构的具体介绍
/etc
用于存放系统主要的配置文件,该目录下的文件属性可以让一般用户进行查阅,但是只有root用户有权利进行修改
二、常用命令
1.关机重启命令
shutdown
#表示立即关机
shutdown -h now
#表示 1 分钟后关机
shutdown -h 1
#立即重启
shutdown -r now
halt
#效果等价于关机
halt
reboot
# 重启系统
reboot
sync
#把内存的数据同步到磁盘
#我们关机或者重启时,都应该先执行以下 sync 指令,把内存的数据写入磁盘,防止数据丢失
sync
2.用户管理命令
基本介绍
1) Linux 系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向
系统管理员申请一个账号,然后以这个账号的身份进入系统。
2) Linux 的用户需要至少要属于一个组。
useradd
#添加用户
useradd [选项] 用户名
OPTIONS说明:
-d 给新创建的用户指定家目录,默认在/home
-g 指定用户组
passwd
#给用户指定或者修改密码
passwd 用户名
userdel
#删除用户,但保留家目录
userdel 用户名
#删除用户以及用户主目录
userdel -r 用户名
id
#查询用户信息,用户不存在时,返回no such user
id 用户名
#案例
[root@docker ~]#id root
uid=0(root) gid=0(root) 组=0(root)
uid:用户id
gid:所在组id
组:组名
su -
su – 切换用户名
说明:
1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
2)当需要返回到原来用户时,使用 exit 指令
groupadd
#增加组
groupadd 组名
groupdel
#删除组
groupdel 组名
usermod
#修改用户的组
usermod -g 用户组 用户名
#改变该用户登陆的初始目录
usermod –d 目录名 用户名
3.帮助指令
man
#获得帮助信息
man [命令或配置文件]
help
#获得 shell 内置命令的帮助信息
help 命令
4.文件目录指令
pwd
#显示当前工作目录的绝对路径
pwd
ls
ls [选项] [目录或是文件]
OPTIONS说明:
-a :显示当前目录所有的文件和目录,包括隐藏的。
-l :以列表的方式显示信息
cd
#切换到指定目录
cd [参数]
#案例
1.回到当前目录的上一级目录
cd ..
2.回到家目录
cd
cd ~
3.使用相对路径到/root 目录
这里我们需要知道该用户目录在哪个目录下,才能写出这个指令,假设在/usr/lib
cd ../../root
mkdir
#创建目录
mkdir [选项] 要创建的目录
OPTIONS说明:
-p :创建多级目录
rmdir
rmdir [选项] 要删除的空目录
说明:
如果需要删除非空目录,需要使用 rm -rf 要删除的目录
touch
#创建空文件
touch 文件名称1 文件名称2
cp
#拷贝文件到指定目录
cp [选项] source dest
OPTIONS:说明
-r :递归复制整个文件夹
\cp 当目录下有相同文件,会强制覆盖
rm
rm [选项] 要删除的文件或目录
OPTIONS说明:
-r :递归删除整个文件夹
-f : 强制删除不提示
mv
#移动文件与目录 或 重命名
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
cat
#查看文件内容,是以只读的方式打开
cat [选项] 要查看的文件
OPTIONS说明:
-n :显示行号
#分页浏览
cat 文件名 | more
more
#以全屏幕的方式按页显示文本文件的内容
more 要查看的文件
less
#分屏查看文件内容
less 要查看的文件
它的功能与 more 指令类似,但是比 more 指令更加强大,支持
各种显示终端。
less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,
而是根据显示需要加载内容, 对于显示大型文件具有较高的效率。
> 指令 和 >> 指令
> 输出重定向 : 会将原来的文件的内容覆盖
>> 追加: 不会覆盖原来文件的内容,而是追加到文件的尾部。
# ls -l 的显示的内容写入文件,如果该文件不存在,就创建该文件。
ls -l >文件
# ls -l 的显示的内容追加到文件,如果该文件不存在,就创建该文件。
ls -l >>文件
#将文件 1 的内容覆盖到文件 2
cat 文件 1 > 文件 2
#将内容写入文件
echo "内容" >> 文件
echo
#echo 输出内容到控制台
echo [选项] [输出内容]
head
#显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容
head 文件
OPTIONS说明:
-n 数字 查看前任意行内容
tail
#用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。
tail [参数] 文件
OPTIONS说明:
-n 数字 查看末尾任意行的内容
-f 实时追踪该文档的所有更新
ln
#给原文件创建一个软链接
ln -s [原文件或目录] [软链接名]
history
#显示所有的历史命令
history
#显示最近使用过的 10 个指令
history 10
#执行历史编号为 5 的指令
!5
5.时间日期指令
date
#显示当前时间
date
#显示当前年份
date +%Y
#显示当前月份
date +%m
#显示当前是哪一天
date +%d
#显示年月日时分秒
date "+%Y-%m-%d %H:%M:%S"
#设置系统当前时间
date -s 字符串时间
#案例
date -s "2018-10-10 11:22:22"
cal
#显示本月日历
cal
#显示2022年日历
cal 2022
6.搜索查找指令
find
#从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
find [搜索范围] [选项]
OPTIONS说明:
-name 按指定的文件名
-user 查找指定用户的所有文件
-size 按指定的文件大小查找文件 +n 大于 -n 小于 n 等于
#案例
#查询 / 目录下,所有 大于20M 的文件
find / -size +20M
#查询 / 目录下,所有 .txt 的文件
find / *.txt
locate
#定位文件路径
locate 搜索文件
特别说明:
1)由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令
创建 locate 数据库。
2)locate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及
路径的locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询
速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
grep 和 管道符号 |
grep: 过滤查找
| :表示将前一个命令的处理结果输出传递给后面的命令处理。
grep [选项] 查找内容 源文件
OPTIONS说明:
-n 显示匹配行及行号
-i 忽略字母大小写
#案例
#在 hello.txt 文件中,查找 "yes" 所在行,并且显示行号
cat hello.txt | grep -n yes
7.压缩和解压类
gzip/gunzip
#压缩文件,只能将文件压缩为*.gz 文件
gzip 文件
#解压缩文件
gunzip 文件.gz
细节说明:
当我们使用 gzip 对文件进行压缩后,不会保留原来的文件。
zip/unzip
#压缩文件和目录
zip [选项] XXX.zip
OPTIONS说明:
-r:递归压缩,即压缩目录
#解压缩文件
unzip [选项] XXX.zip
OPTIONS说明:
-d<目录> :指定解压后文件的存放目录
tar
#打包目录,压缩后的文件格式.tar.gz
tar [选项] XXX.tar.gz
一般 -zxvf 一起使用
8.组管理和权限管理指令
chown
#修改文件所有者 change own
chown 用户名 文件名
#改变文件的所有者和所有组
chown newowner:newgroup file
-R 如果是目录 则使其下所有子文件或目录递归生效
chgrp
#修改文件所在的组 change group
chgrp 组名 文件名
权限的基本介绍
ls -l 中显示的内容如下:
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
内容说明
1)第 0 位确定文件类型(d, - , l , c , b)
2)第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。---User
3)第 4-6 位确定所属组(同用户组的)拥有该文件的权限,---Group
4)第 7-9 位确定其他用户拥有该文件的权限 ---Other
5)1 文件:硬连接数或 目录:子目录数
6)root 用户
7)root 组
8)1213 文件大小(字节),如果是文件夹,显示 4096 字节
9)Feb 2 09:39 最后修改日期
10)abc 文件名
rwx 作用到文件
1)[ r ]代表可读(read): 可以读取,查看
2)[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个
文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3)[ x ]代表可执行(execute):可以被执行
wx 作用到目录
1) [ r ]代表可读(read): 可以读取,ls 查看目录内容
2) [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
3) [ x ]代表可执行(execute):可以进入该目录
可用数字表示为: r=4,w=2,x=1 因此 rwx=4+2+1=7
chmod
第一种方式:+ 、-、= 变更权限
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
1) chmod u=rwx,g=rx,o=x 文件目录名
2) chmod o+w 文件目录名
3) chmod a-x 文件目录名
第二种方式:通过数字变更权限
规则:r=4 w=2 x=1 ,rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于 chmod 751 文件目录名
9. 磁盘情况查询
df
#查询系统整体磁盘使用情况
df -lh
du
#查询指定目录的磁盘占用情况,默认为当前目录
du 目录
OPTIONS说明:
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
10.网络指令
ifconfig
#查看网络配置
ifconfig
ping
#试当前服务器是否可以连接目的主机
ping 目的主机
11.进程管理指令
ps
#案例
#以全格式显示当前所有的进程,查看进程的父进程
ps -ef | more
kill
#通过进程号杀死进程
kill [选项] 进程号
OPTIONS说明:
-9 :表示强迫进程立即停止
killall
#通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变
得很慢时很有用
killall 进程名称
OPTIONS说明:
-9 :表示强迫进程立即停止
pstree
#查看进程树,可以更加直观的来看进程信息
pstree [选项]
OPTIONS说明:
-p :显示进程的 PID
-u :显示进程的所属用户
service
#service管理
#在 CentOS7.0 后 不再使用 service ,而是 systemctl
service 服务名 [start | stop | restart | reload | status]
#防火墙状态
systemctl iptables status