Linux目录结构
- linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他的目录。
- 一切皆文件。
目录的相关命令
- cd 用于切换目录
- cd . 未进行切换目录。 因为'.'代表当前路径
- cd .. 切换到当前目录的上一级目录。'..'代表上一级目录
- cd ~ 切换到用户的家目录
- cd - 切回到上一次所在的目录
- pwd 查看自己目前所处的位置
开机重启和用户登录注销
关机&重启
- 基本介绍
shutdown -h now
立刻关机shutdown -h 1
一分钟后关机shutdown -r now
重启halt
关机reboot
重启sync
把内存的数据同步到磁盘
- 注意细节
- 重启或关闭系统,首先要运行sync命令,把内存中的数据写入磁盘
- 目前的shutdown/reboot/halt 等命令均默认执行sync
用户管理
Linux是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,并以这个账号的身份进入系统
添加用户
useradd 用户名
- 当创建用户成功后,会自动创建和用户同名的家(home)目录
- 也可以通过
useradd -d 指定目录 新的用户名
给新创建的用户指定家目录
d就是directory
指定/修改密码
passwd 用户名
删除用户
userdel 用户名
应用案例
- 删除用户,但是保留其
home
目录下的内容userdel king
- 删除用户和他的主目录
userdel -r king
查询用户信息指令
id 用户名
切换用户
如果当前用户权限不够,可以通过
su - 用户名
指令切换到高权限用户
su - 切换用户名
查看当前用户/登录用户
whoami 查看当前操作的用户
who am i 查看第一次登录的用户名
用户组
类似于角色,系统可以对有共性(权限)的多个用户进行统一的管理
必须由root用户创建
groupadd 组名 新增组
groupdel 组名 删除组
groupmod -n 新组名 旧组名 改组名
useradd -g 用户组 用户名 增加用户时直接加上组
usermod -g 用户组 用户名 为用户修改所在组
usermod -d 目录名 用户名 改变该用户登录的初始目录
实用指令
指定运行级别
常用运行级别是3和5. 可以指定默认运行级别
- 0:关机
- 1:单用户【可找回丢失密码】
- 2:多用户状态,无网络服务
- 3:多用户状态,有网络服务
- 4:系统未使用,保留给用户
- 5:图形界面
- 6:系统重启
切换运行级别 init [0|1|2|3|4|5|6]
centos7下对应的运行级别
# /etc/inittab
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
systemctl get-default
查看现在默认的运行级别systemctl set-default TARGET.target
设置默认运行级别
帮助指令
man
man [命令或配置文件](功能描述:获得帮助信息)
help
help 命令(功能描述:获得shell内置命令的帮助信息)
文件目录类
pwd 显示当前工作目录的绝对路径
ls 查看当前目录的所有内容信息
ls [选项] [目录或文件]
常用选项
- -a:显示当前目录所有的文件和目录,包含隐藏的
- -l:以列表的方式显示信息
cd 切换到指定目录
cd [参数]
特殊
cd ~
或cd
:回到当前用户的家目录cd ..
:回到上一级目录
mkdir 创建目录
mkdir [选项] 要创建的目录
常用选项
-p
创建多级目录
rmdir 删除空目录
rmdir [选项] 要删除的空目录
使用细节
rmdir
删除的是空目录,要求这个目录下没有子文件也没有文件夹- 如果需要删除非空目录,需要使用
rm -rf 要删除的目录
例如rm -rf /home/animal
touch 创建空文件
touch 空文件名称
cp 拷贝文件到指定目录
cp [选项] source dest
常用选项
-r
递归复制整个文件夹
使用细节
- 使用
\cp
强制覆盖不提示
rm 删除文件或目录
rm [选项] 要删除的文件或目录
常用选项
-r
递归删除-f
强制删除
mv 移动文件与目录 或重命名
mv oldFileName newFileName (重命名)
mv /temp/movefile /targetFolder (移动文件)
cat 查看文件内容
cat [选项] 要查看的文件
常用选项
-n
显示行号
使用细节
cat
只能浏览文件,而不能修改文件- 为了浏览方便,一般会使用
管道命令 | more
more
一个基于VI编辑器的文本过滤器
more 要查看的文件
操作 | 功能说明 |
---|---|
space | 向下翻一页 |
enter | 向下翻一行 |
q | 立刻离开 |
ctrl+f | 向下滚动一个屏 |
ctrl+b | 返回上一屏 |
= | 输出当前行号 |
:f | 输出文件名和当前行号 |
less
分屏查看文件,对大型文件有较高的效率
less 要查看的文件
操作 | 功能说明 |
---|---|
space | 向下翻一页 |
[pagedown] | 向下翻一页 |
[pageup] | 向上翻一页 |
/字串 | 向下搜寻[字串];n:向下查找,N:向上查找 |
?字串 | 向上搜寻[字串];n:向上查找,N:向下查找 |
q | 立刻离开 |
echo 输出内容到控制台
echo [选项] [输出内容]
案例
echo $PATH
输出环境变量echo $HOSTNAME
输出主机名echo hello,world
head/tail
显示文件开头/结尾的部分内容,默认前10行
head 文件名
head -n 5 文件名 前5行
tail 文件名
tail -n 5 文件名 后5行
tail -f 文件名 实时监控文件追加的内容
>/>>
>
输出重定向>>
追加
ls -l > 文件 (列表的内容写入文件(覆盖))
ls -l >> 文件 (列表的内容追加进文件)
cat 文件1 > 文件2 (将文件1的内容覆盖到文件2)
echo "内容" >> 文件
ln
软链接,存放其他文件的路径 ln->link
ln -s [原文件或目录] [软连接名] (给文件创造一个软连接)
rm 软连接名 (删除软连接)
细节说明
- 使用
pwd
查看目录时,看到的是软连接所在目录
history
查看已经执行的命令,也可以执行某个历史命令
history (显示所有历史命令)
history 10 (显示近期10个历史命令)
!10 执行历史中第10条命令
时间日期类
date
显示当前日期
date
date +%Y
date +%m
date +%d
date "+%Y-%m-%d %H-%M-%S"
设置日期
date -s 字符串时间
date -s 2020-11-03 20:02:10
cal 查看日历
cal [选项]
案例
cal
显示当前日历cal 2020
显示2020年日历
搜索查找类
find
从指定目录向下递归地遍历其各个子目录并显示
find [搜索范围] [选项]
选项 | 功能 |
---|---|
-name | 按照指定文件名查找模式 |
-user | 查找属于指定用户的文件 |
-size | 按指定大小查找(单位可以是M,G,k) |
案例
- find /home -name *.java 在/home目录下查找java文件
- find /opt -user jack 在/opt目录下查找属于jack的文件
- find / -size +200M查找整个linux系统下大于200M的文件 +n大于n,-n小于n,n等于n
locate
快速定位文件路径,使用前需要执行updatedb
updatedb (locate基于数据库查询,必须定期更新)
locate 文件名
which
查看某个指令在哪个目录下
which ls
grep与 |
grep过滤查找,|表示将前一个命令的结果传递给后面的命令处理
grep [选项] 查找内容 源文件
选项 | 功能 |
---|---|
-n | 显示行号 |
-i | 忽略字母大小写 |
压缩和解压类
gzip/gunzip
gzip 文件
gunzip 文件
zip/unzip
zip [选项] xxx.zip 将要压缩的内容
unzip [选项] xxx.zip
常用选项
zip -r
递归压缩,压缩目录unzip -d <目录>
指定解压后文件的存放目录
tar
打包指令,生成.tar.gz文件
tar [选项] xxx.tar.gz 打包的内容
选项 | 功能 |
---|---|
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
案例
- tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
- 将后面的两个文件压缩成pc.tar.gz
- tar -zcvf myhome.tar.gz /home/
- tar -zxvf pc.tar.gz
- tar -zxvf myhome.tar.gz -C /opt/tmp 将文件解压至/opt/tmp