1、Linux目录知识
Linux在根目录下有很多目录都是规定好的,比如etc里面是配置信息,boot是启动时用到的文件
Linux会把计算机的硬件映射成一个文件来管理
在Linux里面一切皆是文件
/bin 存放着最经常使用的指令
/sbin (s是super User的意思) 存放着系统管理员使用的系统管理程序
/home 普通用户的主目录,在Linux里面每一个用户都有自己的目录,一般是该目录名以用户名的账号命名
/root 目录是系统管理员,也称作超级权限者的用户主目录
/lib 系统开机所需要的基本动态连接共享库,类似于windows里面的DLL文件,所有程序都用到这些共享库
/lost+found 这个目录一般是空的,当系统非法关机之后这里就存放了一些文件
/usr 非常重要,用户的很多应用程序和文件都放在这个目录下,类似windows的program files
/boot 存放的是启动Linux时使用的一些核心文件
/proc 不能动,这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
/srv 不能动 service缩写,该目录存放一些服务启动之后需要提取的数据
/sys 不能动 这个目录下安装了Linux2.6内核中出现的一个文件系统sysfs
/tmp 这个目录是用来存放一些临时文件的
/dev 类似windows的设备管理器,把所有的硬件用文件的形式存储
/media 常用 Linux字体会自动识别一些设备,比如U盘、光驱等等,识别之后会挂载到这个目录下
/mnt 常用 系统提供该目录是为了让用于临时挂载别的文件系统,可以把外部存储挂载到/mnt/上然后进入该目录就可以查看里面的内容
/opt 这个是给主机额外安装软件所摆放的目录,比如ORACLE数据库就可以放到该目录下,默认为空
/user/local 这个是给另一个主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序
/var 这个目录中存放着不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件
/selinux SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置
2、远程登录和远程文件传输
在linux上面查看ip地址的命令ifconfig
在xshell里面新建
在Xftp可以传文件(FileZilla也行)
3、vi和vim的基本介绍
vi是linux内置的文本编辑器,Vim可以看做是vi的增强版本
三种模式
- 正常模式 (默认模式)
- 插入模式 按下i,I,o,O,a,A,r,R等任何一个字母之后进入编辑模式,一般来说i即可
- 命令行模式 输入sec再输入: (wq是写入并退出的意思)可以从插入模式切换到命令行模式
tab可以自动补全文件名
快捷键
需要在正常模式下输入才正常
回到首行和末行是在一般模式下
撤销u也是在一般模式下
4、系统操作命令
shutdown -h now 立刻进行关机
shutdown -h 1 “1分钟后会关机”
shundown -r now 现在重启计算机
halt 关机作用和上面一样
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘(重启或者关机操作前最好执行以下保存一下内存里的数据)
登录和注销
登录时尽量少用root账号登录,因为是系统管理员权限最大,可以用普通用户登录,登录之后再用“su - 用户名”命令切换成系统管理员身份 比如 su - root 切换到系统管理员 输入lougout会返回原来的那个账号,再次lougout即可退出系统
在提示符下输入logout即可注销用户(logout注销指令在图形运行级别无效)
5、用户管理
linux有一个根用户root,root可以创建多个用户,每个用户会有自己对应的家目录
useradd 用户名
默认该用户的家目录在 /home/用户名
ubuntu创建用户需要加-m参数才会创建同名家目录
如果想要自己指定新加用户的家目录的位置可以按照下面
useradd -d /home/test 用户名
pwd是显示当前所在目录
指定/修改密码
passwd 用户名 (一定要指定用户名)
删除用户
- userdel 用户名 删除用户,但是保留家目录 (一般情况下建议保留)
- userdel -r 用户名 删除用户以及用户的主目录 (慎重操作因为家目录都没了)
查询用户信息指令
id 用户名
切换用户
su -切换用户名
从权限高的用户切换到权限低的用户不需要输入密码,反之需要
当需要返回到原来用户时,使用exit/logout指令
查看当前用户/登录用户
who am i
用户组
类似于角色,系统可以对有共性/权限的多个用户进行统一的管理
新增组
groupadd 组名
clear可以清屏
linux里边一般没有提示就是成功了
默认添加用户的时候如果没有指定组,则会自动默认生成一个和这个用户同名的组并且放进去
增加用户时直接加上组
useradd -g 用户组 用户名
比如:
groupadd temp
useradd -g temp user
修改用户的组
usermod -g 用户组 用户名
用户和组相关文件
/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:注释性描述:主目录:登录shell
/etc/shadow文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/文件
组(group)的配置文件,记录Linux包含的组的而信息
每行含义:组名:口令:组标识号:组内用户列表
shell可以理解为命令和linux内核之间的编译器
shell种类有很多一般用bash
6、实用指令
指定运行级别
0:关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用的运行级别是3和5,也可以指定默认的运行级别
multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
systemctl get-default获取当前的运行级别
systemctl set-default graphical.target设置默认的运行级别
找回root密码
启动系统在开机界面输入e
在UTF-8后面输入 init=/bin/sh 输入完之后按ctrl-x进入单用户模式
在光标闪烁的位置输入: mount -o remount,rw / 完成后按键盘的回车键
在新的一行最后面输入 passwd 完成后按键盘的回车键输入密码,然后再次确认密码,密码修改成功后会显示passwd...的样式说明密码修改成功
接着在鼠标闪烁的位置中输入 touch /.autorelabel 完成后按回车键
接着在光标闪烁的位置继续输入 exec /sbin/init 完成后按键盘的回车键(等待时间较长并不是死机了)
帮助指令
linux里面的隐藏文件都是以 . 开头的
选项可以组合使用且没有顺序之分
- man获得帮助信息 man 命令或者配置文件
- help 命令 (获得shell内置命令的帮助信息)
文件目录指令
-
pwd (显示当前工作目录的绝对路径)
-
ls [选项] [目录或者是文件]
-a显示当前目录的所有文件和目录,包括隐藏的
-l 以列表的方式显示信息
-
cd [参数] (切换到指定目录,绝对路径和想对路径)
cd~或者cd: 回到自己的家目录
cd.. 回到当前目录的上级目录
-
mkdir [选项]
用于创建目录
-p 创建多级目录
-
rmdir [选项]
删除空目录
如果删除的是非空目录,需要使用rm -rf 删除(!谨慎使用),最好备份一份再修改
-
touch 文件名称
创建空文件
-
cp
拷贝文件到指定目录
cp [选项] source dest
-r:递归复制整个文件夹
案例:
-
将/home/hello.txt 拷贝到 /home/bbb 目录下
cp hello.txt/home/bbb
-
递归复制整个文件夹,比如将/home/bbb整个目录,拷贝到/opt
cp -r /home/bbb /opt
-
强制覆盖不提示的方法\cp
\cp -r /home/bbb /opt
-
-
rm 指令移除文件或目录
rm [选项] 要删除的文件或目录
-r 递归删除整个文件夹
-f 强制删除不提示
文件目录类
- mv 移动文件与目录或者重命名
基本语法
mv oldNameFile newNameFile (重命名)
mv /temp/movefile/targetFolder (移动文件)
- cat 查看文件内容
管道命令就是把上次命令得到的结果,继续交给下一个命令处理
cat [选项] 要查看的文件
-n 显示行号
管道命令 | more
cat -n /etc/profile | more [进行交互]
打开一个文件在more状态时空格可以翻页,enter可以查看下一行
more指令中内置了若干快捷键(交互的指令)
-
less指令 用来分屏查看文件内容,
与more指令类似,但是比more指令更加强大,支持显示各种终端,less指令显示内容是不是一次将整个文件加载后才显示
-
echo 输出内容到控制台
echo [选项] [输出内容]
比如输出环境变量 $PATH $HOSTNAME
echo $HOSTNAME
-
head
用于显示文件的开头部分内容,默认head指令显示文件的前10行内容
head 文件 (查看文件头10行内容)
head -n 5 文件 (查看文件头5行内容,5可以是任意行数)
-
tail
用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容
tail 文件 (查看文件尾10行内容)
tail -n 5 文件 (查看文件尾5行内容,5可以是任意行数)
tail -f 文件 (实时追踪该文档的所有更新) ctrl + z可以退出 或者 ctrl + c
-
> 指令 和 >>指令
> 输出重定向 和 >> 追加
重定向的意思可以理解为,本来在终端显示的内容,可以让它显示在一个文件中比如xxx.txt
一个箭头相当于覆盖,两个箭头相当于追加
ls -l > 文件 (列表的内容写入到文件a.txt中)
ls -al >>文件 (列表的内容追加到文件aa.txt的末尾)
cat 文件1 > 文件2 (将文件1的内容覆盖到文件2)
echo "内容">>文件
案例:
将/home目录下的文件列表 写入到/home/info.txt中,覆盖写入
ls -l /home > /home/info.txt [如果info.txt没有则会自动创建]
cal会显示当前的日历信息
-
ln
软连接也称符号连接,类似windows里面的快捷方式,主要存放了链接其他文件的路径
ln -s [原文件或目录] [软链接名] (给原文件创建一个软链接)
案例:
在/home目录下创建一个软链接myroot,链接到/root目录
ln -s /root /home/myroot
-
history
查看已经执行过历史命令,也可以执行历史指令
history (功能描述:查看已经执行过历史命令)
- 显示所有的历史命令 history
- 显示最近使用过的10个指令 history 10
- 执行历史编号为5的指令 !5
时间日期指令
基本语法
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 2020可以显示2020年全年的日历
查找指令
find指令
从指定目录向下递归遍历各个子目录,将满足条件的文件或者目录显示在终端
语法:find [搜索范围] [选项]
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件 |
案例1:按文件名:根据名称查找/home目录下的hello.txt文件
find /home -name hello.txt
案例2:按照拥有者:查找/opt目录下,用户名为nobody的文件
find /opt -user nobody
案例3:查找整个linux系统下大于200M的文件(+n大于 -n小于 n等于,单位有k,M,G)
find / -size +200M
ls -l命令可以显示文件列表信息及大小,但是单位是字节,如果想转换成人看的可以写成ls -lh这个h代表human
locate指令
可以快速定位文件的路径,locate不会遍历整个文件系统是自建数据库所以查询速度比较快
基本语法:locate 搜索文件
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
案例:使用locate指令快速定位hello.txt文件所在的目录
which指令
可以查看某个指令在哪个目录下,比如ls指令在哪个目录
whitch ls
grep指令和管道符号 |
grep过滤查找,管道符 “|”,表示将前一个命令的处理的结果输出传递给后面的命令处理
基本语法:
grep [选项] 查找内容 源文件
选项 | 功能 |
---|---|
-n | 显示匹配行及行号 |
-i | 忽略字母大小写 |
cat a.txt | grep "hello" 在a.txt文件里找hello
案例:在hello.txt文件中,查找"yes"所在行,并且显示行号
写法1:cat /home/hello.txt | grep -n "yes" // -n是显示行号
写法2:grep -n "yes" /home/hello.txt
压缩和解压缩类
gzip/gunzip指令
gzip用于压缩文件,gunzip用于解压
基本语法:
gzip文件 (压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (解压缩文件命令)
案例1:gzip压缩,将/home下的hello.txt文件进行压缩
gzip /home/hello.txt
案例2:gunzip压缩,将/home下的hello.txt.gz文件进行解压缩
zip/unzip指令
zip用于压文件,unzip用于解压,这个在项目打包发布中很有用的
基本语法:
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (解压缩文件)
zip常用选项
-r: 递归压缩,即压缩目录
unzip的常用选项
-d<目录> 指定解压后文件的存放目录
案例1:将/home下的 所有文件/文件夹进行压缩成myhome.zip
zip -r myhome.zip /home/* // 带星号和不带都一样
案例2:将myhome.zip 解压到 /opt/tmp目录下
mkdir /opt/tmp
unzip -d /opt/tmp /home/myhome.zip
tar指令
tar指令是打包指令,最后打包后的文件时.tar.gz的文件
基本语法:
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
选项说明:
选项 | 功能 |
---|---|
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包.tar文件 |
案例1:压缩多个文件,将/home/pig.txt和/home/cat.txt压缩成pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
案例2:将/home的文件夹 压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
案例3:将pc.tar.gz 解压到当前目录,切换到/opt
tar -zxvf pc.tar.gz
案例4:将myhome.tar.gz 解压到/opt/tmp2目录下
mkdir /opt/tmp2
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
标签:文件,操作系统,基础,用户,指令,linux,home,txt,目录 From: https://www.cnblogs.com/oaoa/p/16922988.html