一.基础知识
1.开关机
关机指令:shutdown
sync # 将数据由内存同步到硬盘中
不管是重启系统还是关闭系统,首先要运行 sync
重启:init 6 或 reboot
清屏:clear
2.文件目录
-
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令 -
/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件 -
/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件
和子目录 -
/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 -
/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的 -
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的 -
/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录 -
/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件
3.目录文件管理
我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /
-
绝对路径
:由根目录 / 写起,例如:/usr/share/doc 这个目录 -
相对路径
:路径的写法,不是由 / 写起
ls: 列出目录
选项与参数:
-a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来
-l :长数据串列出,包含文件的属性与权限等等数据(直接使用ll也可以)
-al :将目录下的所有文件列出来(含属性与隐藏档)
cd:切换目录
一个圆点.表示当前工作目录
两个圆点…表示当前工作目录的上一级目录
pwd:显示目前的目录
mkdir:创建一个新的目录
选项与参数:
-m :配置文件的权限
-p :递归创建目录,多级目录创建
rmdir:删除一个空的目录
选项与参数:
-p :连同上一级空的
目录也一起删除
cp: 复制文件或目录
-r:可以复制目录,如果没有选项-r只能复制文件
rm: 移除文件或目录
-f :忽略不存在的文件,不会出现警告信息
-i :互动模式,在删除前会询问使用者是否动作
-r :递归删除
mv: 移动文件与目录,或修改文件与目录的名称
选项与参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-u :只替换已经更新过的文件
4.文件属性
每个文件的属性由左边第一部分的 10 个字符来确定(如下图)
-
第 0 位确定文件类型
- 当为 d 则是目录
- 当为 - 则是文件
- 若是 l 则表示为链接文档
-
1-3 位确定属主(该文件的所有者)拥有该文件的权限
-
4-6位确定属组(所有者的同组用户)拥有该文件的权限
-
7-9位确定其他用户拥有该文件的权限
读-写-执行顺序在主、组、其他用户类别中不变
-
r 字符表示有读权限
-
w 字符表示有写权限
-
x字符表示有执行权限
-
-字符表示没有权限
主
:对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户,即为主
组
:Linux系统中,用户是按组分类的,一个用户属于一个或多个组
其他用户
:文件所有者以外的用户又可以分为文件所属组的同组用户和其他用户
因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限
更改文件属性
1.更改文件属组
chgrp [-R] 属组名 文件名
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改
2.更改文件属主
chown [–R] 属主名 文件名
更改文件属主
chown [-R] 属主名:属组名 文件名
更改文件属主,也可以同时更改文件属组
3.更改文件权限
chmod:更改文件9个属性
各权限的分数对照表如下:
- r:4
- w:2
- x:1
我们用3位数字就可以更改主的权限、组的权限、其他用户的权限!!!
比如 chmod 760 dir 代表dir文件
主的权限r+w+x = 4+2+1 = 7
组的权限r+w=6
其他用户的权限=0 无任何权限
5.文件内容查看
cat
由第一行开始显示全部文件内容
tac
从最后一行开始显示全部文件内容
nl
显示的时候,输出行号
more
一页一页的显示文件内容
less
与 more 类似,但是比 more 更好的是,支持可以往前翻页
输入/x 可以找内容中的x匹配信息
head
只看头几行
tail
只看尾巴几行
tail -f
等同于–follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止
tail -F
等同于–follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
6.ln
Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间
ln [参数] [源文件或目录][目标文件或目录]
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
软链接:
- 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式,
源文件或者目录删除,软链接失效!
- 2.软链接可以跨文件系统 ,硬链接不可以
- 3.软链接可以对一个不存在的文件名进行链接
- 4.软链接可以对目录进行链接
硬链接:
- 1.硬连接的作用是允许一个文件拥有多个有效路径名,不占用实际空间。
B是A的硬链接,A删除后,B依旧存在!
- 2.不允许给目录创建硬链接
- 3.硬链接只有在同一个文件系统中才能创建
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间
7.vim
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用
:wq! 强制保存退出
8.其他常用命令
(1)Linux touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件
示例:touch file
(2)压缩、解压
tar [参数] 压缩包文件名 目录或文件名列表
- -c: 建立压缩档案
- -x:解压
- -t:查看内容
- -r:向压缩归档文件末尾追加文件
- -u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的
- -z:有gzip属性的
- -j:有bz2属性的
- -Z:有compress属性的
- -v:显示所有过程
- -O:将文件解开到标准输出
下面的参数 -f 是必须
的:
- -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
压缩:
tar zcvf 压缩包文件名 目录或文件名列表(可多个)
解压
tar zxvf 压缩包文件名
将xx解压到当前文件夹
(3)搜索文件中的内容
grep "内容" 文件名
(4)搜索文件
find 目录名 -name 文件名 -print
参数说明:
目录名:待搜索的目录,搜索文件的时候,除了这个目录名,还包括它的各级子目录
文件名:待搜索的文件名匹配的规则
(5)挂起
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行
示例:nohup /root/runoob.sh &
&不可缺少
(6)echo
echo hello
则会立马输出hello
向文件中写入内容
echo “content” > 文件名
如:echo “cover” > a.txt
(文件原先的内容会被覆盖掉)
向文件追加内容
echo “content” >> 文件名
如:echo “add add” >> a.txt
(7)ps 查看进程
ps -ef 查看全格式的全部进程
ps -ax 查看全部进程
ps -ef | grep <进程名> 查看并筛选 跟进程名有关的进程,该进程名可以是进程的全部或者部分
二.Linux管理
1.用户管理
添加新用户
useradd 选项
- -n 用户名
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
- -g 用户组 指定用户所属的用户组
删除用户
userdel 用户名
- -r 删除用户的目录
修改用户
usermod 选项 用户名
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值
另外,有些系统可以使用选项:-l 新用户名
这个选项指定一个新的账号,即将原来的用户名改为新的用户名
切换用户
su 用户名
在命令提示符下输入:su - root ,然后按提示输入root的密码后将切换到root用户
从root用户切换到其它普通用户不需要输入密码,从普通用户切换到任何用户都需要输入密码
修改用户密码
passwd [用户名]
普通用户只能修改自己的密码,只输入passwd就可以了,不能指定用户名
系统管理员可以修改任何用户的密码,passwd后需要指定用户名
root权限
passwd 选项 用户名
可使用的选项:
- -l 锁定口令,即禁用指定的账号
- -u 口令解锁
- -d 使账号无口令,无密码
- -f 强迫用户下次登录时修改口令
2.用户组管理
增加一个新的用户组
groupadd 选项 用户组
- -g GID 指定新用户组的组标识号(GID)
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
删除一个已有的用户组
groupdel 用户组
修改用户组的属性
groupmod 选项 用户组
常用的选项有
- -g GID 为用户组指定新的组标识号
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同
- -n 新用户组 将用户组的名字改为新名字
切换用户组
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限
newgrp root
这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成
3.磁盘管理
- df(英文全称:disk full):列出文件系统的整体磁盘使用量
- du(英文全称:disk used):检查磁盘空间使用量
- fdisk:用于磁盘分区
df -h
列出文件系统的整体磁盘使用量
du -a
:检查磁盘空间使用量
4.进程管理
ps [options] [--help]
参数:
- -a 列出所有的进程
- -u 以用户的信息显示进程
- -x 显示后台运行的进程
查找指定进程格式
ps -ef | grep 进程关键字
示例
ps -ef | grep mysql
查看与mysql相关的进程信息
pstree -pu
查看进程树
结束进程
kill -9 id