Linux基础
- 1、目录结构
- 2、vi和vim
- 3、常用指令
- 运行级别
- 找回密码
- 帮助指令
- 时间日期指令
- 搜索查找
- 文件目录操作
- 磁盘管理指令
- 压缩和解压缩
- 4、组管理和组权限
- 用户操作指令
- 权限
1、目录结构
Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
在Linux世界里面,一切皆为文件。Linux将计算机硬件做成文件进行管理。
此处介绍部分常用目录,了解即可:
- /bin 是Binary的缩写,此目录存放常用命令
- /sbin s为Super User的意思,存放系统管理员使用的系统管理程序
- /home 存放普通用户的主目录,在系统中,每个用户都会有属于自己的目录
- /root 系统管理员目录,也称做超级权限者的用户主目录
- /lib 系统开机所需最基本的动态连接共享库
- /etc 所有系统管理所需配置文件和子目录
- /user 用户的众多应用程序和文件放于此目录
- /boot 存放启动Linux时使用的核心文件,包括一些连接文件以及镜像文件
2、vi和vim
vi是Linux中内置的文本编辑器,而vim则是从vi中发展出来的,其本质同样为文本编辑器。
vim具有程序编辑的能力,可以看做是V的增强版本,可以主动的以字体颜色辨别语法的正确性方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
vi和vim总共有三种模式:
- 正常模式:用vim打开文件则直接进入该模式,该模式为默认模式。在此模式之中,可以使用键盘按键操控光标。
- 插入模式:按下i 、I、o、O、a、A、r、R等任意字母后进入编辑模式。
- 命令行模式:输入esc再输入**:**,在此模式中可以使用指令完成读取、存盘、替换、离开vim、显示行号等操作。
常用文件操作命令
创建或打开文件的指令为:
vim 文件名
读取指定文件:
cat 文件名
删除指定文件:
rm 文件名
命令模式中常用指令:
- :wq(保存并退出)
- :q (仅退出)
- :q! (强制退出)
- :w (仅保存)
- :set nu (显示行号)
- :set paste(设置粘贴模式)
3、常用指令
运行级别
运行级别就是操作系统当前正在运行的功能级别,级别是从 0 到 6,另外加上S、s级别。
多数的桌面的 Linux 系统缺省的 runlevel 是 5,用户登陆时是图形界面,而多数的服务器版本的 Linux 系统缺省的 runlevel 是 3,用户登陆时是字符界面。
- 运行级别0:关机,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护【找回丢失密码】
- 运行级别2:多用户状态没有网络服务
- 运行级别3:多用户状态有网络服务
- 运行级别4:系统未使用,保留给用户
- 运行级别5:图形界面
- 运行级别6:系统重启,系统默认运行级别不能设为6,否则不能正常启动
- S、s Single user mode
Single user mode(单用户模式):是在类似在Linux系统上工作时的一种拥有超级用户权限的模式。通常在开机选单给予1或S参数能进入这个模式。这个模式只在面对主机实体时才有机会透过开机选单进入,也因此确保超级权限授予的对象是能接触到主机的超级用户。此操作通常用于维护硬盘分区或更改超级用户密码等需在磁碟挂载前操作的维护。
关于单用户模式的简介和使用可以参考这篇文章,本文的定义也从此处引用:参考链接
涉及基本指令
切换运行级别
init 数字
查看当前运行级别
systemctl get-default
设置默认运行级别,系统内置默认3、5
systemctl set-default TARGET.target
找回密码
开机选择系统界面按下e,进入后找到对应位置,输入勾起的语句。
输入后按下ctrl+x,进入单用户模式。接着,在光标闪烁的位置中输入:mount -o remount, rw/
(注意:各个单词间有空格),完成后按键盘的回车键(Enter)。
接着,在鼠标闪烁的位置中(最后一行中)输入:touch /.autorelabel
(注意:touch与/后面有一个空格),完成后按键盘的回车键(Enter)
继续在光标闪烁的位置中,输入:exec /sbin/init
(注意:exec与/后面有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码。
完成后,系统会自动重启,新的密码生效了。
帮助指令
获得帮助信息
man 命令或配置文件
获得shell内置命令的帮助信息
help 命令
时间日期指令
date指令——显示当前日期
显示当前时间
date
显示当前年份
date + %Y
显示当前月份
date + %m
显示当前是哪一天
date + %d
显示显示显示当前年月日时分秒
date “+ %Y-%m-%d%H:%M:%S”
搜索查找
使用find指令进行搜索查找操作
按照指定的文件名查找模式查找该文件
find -name<查询方式>
find /home -name hello.txt (查找home目录下的hello.txt文件)
查找属于指定用户名所有文件
find -user<用户名>
find/ -user nobody (查找用户名为nobody的文件)
按照指定文件大小查找文件
find -size<文件大小>
find/ -size+200 (查找整个LInux系统下大于200M的文件,内容为+n则查找内容大于n、-n小于n、n等于n,单位有k、M、G)
locate快速定位文件路径
locate 搜索文件
locate hello.txt
文件目录操作
-
pwd (查看当前所在目录)
-
cd (切换工作目录)
-
mkdir (创建工作目录)
-
mkdir -p 新目录的路径(创建多层)
-
touch 文件名 (创建文件)
-
rm(删除文件/文件夹):
- -r (r选项表示递归,在删除文件.时必须使用-r)
- -f (用户删除内容不会弹出提示表示force,强制删除。普通用有提示,所以一般普通用户只有root管理员用户删除内容用不到-f选项)
-
cat Linux路径(查询文件内容)
-
cp [-r p] 参数1(表示:被复制的文件或文件夹) 参数2(表示:要复制去的地方)(语句作用:复制文件夹):
- -r(复制目录,复制文件夹必须使用-r)
- -p (保留文件属性)
-
mv 参数1 参数2 (移动文件/文件夹):参数1,Linux路径,表示被移动的文件或文件夹;参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在。
-
wc [-c -m -l -w] 文件路径(统计):
- -l 统计行数
- -w 统计单词数量
- -c 统计bytes数量
- -m 统计字符数量
-
echo 输出的内容(输出指定内容):被反引号**‘ ’**包围的内容会被当作命令执行,所以若要输出当前工作目录,要使用 echo ‘pwd`
-
history (查看已经执行过的历史命令,也可以执行历史指令)
磁盘管理指令
Linux 磁盘管理好坏直接关系到整个系统的性能问题。
Linux 磁盘管理常用三个命令为 df、du 和 fdisk。
- df(英文全称:disk free):列出文件系统的整体磁盘使用量
df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
选项与参数:- -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
- -k :以 KBytes 的容量显示各文件系统;
- -m :以 MBytes 的容量显示各文件系统;
- -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
- -H :以 M=1000K 取代 M=1024K 的进位方式;
- -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
- -i :不用硬盘容量,而以 inode 的数量来显示
- du(英文全称:disk used):检查磁盘空间使用量
Linux du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的,这里介绍 Linux du 命令。
选项与参数:- -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
- -h :以人们较易读的容量格式 (G/M) 显示;
- -s :列出总量而已,而不列出每个各别的目录占用容量;
- -S :不包括子目录下的总计,与 -s 有点差别。
- -k :以 KBytes 列出容量显示;
- -m :以 MBytes 列出容量显示;
- fdisk:用于磁盘分区,fdisk 是 Linux 的磁盘分区表操作工具。
选项与参数:- -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
压缩和解压缩
gzip指令用于压缩文件,只能将文件压缩为*.gz文件,gunzip指令用于解压。
gzip 文件
gunzip 文件.gz
zip指令用于压缩文件,unzip指令用于解压。
压缩文件和目录:
zip [选项]XXX.zip
常用选项:
-r:递归压缩,即压缩目录
解压缩文件:
unzip [选项]XXX.zip
常用选项:
-d<目录>:指定解压后的文件的存放目录
tar指定打包文件,最后打包好的文件为.tar.gz文件
tar [选项] XXX.tar.gz 打包内容
选项:
- -c:产生.tar打包文件
- -v:显示详细信息
- -f:指定压缩后的文件名
- -z:打包同时压缩
- -x:解包.tar文件
4、组管理和组权限
用户操作指令
显示当前目录pwd
关机重启命令
Shutdown -h now 立刻进行关机
Shudown -h 1 1分钟后关机
Shutdown -r now 现在重新启动计算机
halt 关机,作用和上面一样。
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘
切换用户登录和注销
注意:登录时尽量少用root帐号登绿,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用su -用户名
命令来切换成系统管理员身份。
切换用户后,可以通过exit
命令退回上一个用户,也可以使用快捷键:ctrl + d。
注销用户:在提示符下输入logout
临时授权管理员身份
sudo 其他命令 (临时授权)
为普通用户配置sudo认证
- 切换到root用户,执行visudo命令,自动通过vi打开:/etc/sudoers
- 在文件最后添加:itheima ALL=(ALL)
- NOPASSWD:ALL 其中NOPASSWD:ALL 表示使用sudo命令,无需使用密码
- 通过wq指令保存退出 切换会普通用户
** 添加用户**
useradd 用户名
useradd -d 目录 用户名(指定用户文件的家目录)
添加、修改用户密码
passwd 用户名
修改密码
passwd 用户名
删除用户
userdel 用户名(保留用户家目录)
userdel -r 用户名(删除用户家目录)
查询用户
Id 用户名
查询当前用户
whoami
用户组
groupadd 组名 (新增组)
groupdel 组名 (删除组)
Useradd -g 用户组 用户名(增加用户时直接上组)
usermod -g 用户组 用户名 (修改用户的组)
改变用户所在组
在Linux中的每个用户必须属于一个组,不能独立组外。在linux中每个文件有所有者、所在组、其它组的概念。
usermod -g 组名 用户名
Usermod -d 目录名 用户名 改变该用户登陆的初始目录。
权限
- 文件/目录所有者般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
- 除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。改变用户所在组在添加用户时,可以指定将该用户添加到哪个组中,同样的,用root的管理权限可以改变某个用户所在的组。
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
使用权限 : 所有使用者
语法
chmod [-cfvR] [--help] [--version] mode file...
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中:
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
- ‘+’ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
以上内容来源链接为菜鸟教程
权限数字表示
权限可以采用数字进行表示。第一位表示用户权限,第二位表示用户组权限,第三位表示其他用户权限。
修改权限
chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
chgrp newgroup 文件/目录 改变所有组
-R 如果是目录则使其下所有子文件或目录递归生效