linux只有一个根目录:/
根目录下有很多子目录,需要记住的几个目录:
/bin:常用的一些命令
/home:存放用户目录的
/root:root用户的主目录
/tmp:临时目录,一般用来放软件安装包的,用完就可以删掉的
/var:一般用来存放日志文件
/mnt:用来挂在其他硬盘的
/opt:一般用来保存安装的其他应用程序
/etc:存放一些应用程序的配置文件,比如环境变量,用户管理,ip,防火墙
基础命令
1.目录+文件操作
-
cd,切换目录
cd / # 切换到根目录下 cd .. # 切换到上级目录 cd ./ # 切换到当前目录 cd /home # 使用绝对路径,切换到根目录下的home目录 cd ../home # 使用相对路径,切换到上级目录下的home目录中 cd - # 返回上次操作的目录
-
查看目录下的文件
ll # 查看当前目录下的所有文件,以列表方式详细的展示 ls # 以精简平铺的方式展示当前目录下的所有文件 ls -a # 以精简平铺方式展示当前目录下的所有文件,包括隐藏文件 ll /tmp/aa # 展示/tmp/aa目录下的所有文件,指定哪个目录
-
目录操作
mkdir aa # 在当前目录下创建aa目录 mkdir -p aa/aaa/aaaa # 在当前目录下创建aa目录,aa目录创建aaa目录...,创建多级目录 rmdir bb # 删除当前目录下的bb目录,该目录必须为空,也就是只能删除空目录 rm -rf aa # 强制删除aa目录以及该目录下的其他文件及目录
-
文件的移动、复制、重命名:
mv a.txt /tmp # 将当前目录下的a.txt文件移动到/tmp目录下 cp b.txt /tmp # 将当前目录下的b.txt文件复制到/tmp目录下 mv b.txt b-bak.txt # 将当前目录下的b.txt复制一份,命名为b-bak.txt,相当于重命名
-
创建文件
touch a.txt # 在当前目录下创建一个a.txt文件 echo 'Hello World' >> a.txt # 将字符串写入到指定文件中
-
查看文件内容
cat a.txt # 查看a.txt文件中的内容 vim a.txt # 编辑a.txt文件,也就可以看到文件中的内容 head /etc/profile # 查看profile文件的头几行内容 head -n 2 /etc/profile # 查看指定的头几行内容 tail /etc/profile # 查看文件末尾的几行内容 tail -f /etc/profile # 动态查看文件末尾的内容,常用来查看日志 tail -n 2 /etc/profile # 查看文件末尾2行的内容 less /etc/profile # 查看文件内容,使用enter进行查看,退出使用q建 more /etc/profile # 查看文件内容,会显示文件内容的百分比,也是使用enter进行查看,ctrl+c退出 cat /etc/profile | grep PATH # 查看profile文件内容,并查找PATH字符串 grep 'PATH' /etc/profile head /etc/profile | grep PATH more /etc/profile | grep PATH less /etc/profile | grep PATH more /etc/profile | grep PATH
-
编辑文件
vim a.txt # 使用vim命令打开a.txt文件,进入普通模式(命令模式) # 如果要添加内容,则可以按a或i或o键进入编辑模式,进入编辑之后就可以修改文件内容 # 如果文件修改完之后,按esc键退出编辑模式 # 如果要退出文件,shift+:进入末行模式 # 进入末行模式之后,可以输入q!强制退出,也可以输入wq保存退出 # 在命令模式下可以使用yy来复制当前行,使用p进行内容的粘贴,使用u进行撤销操作 # 使用x删除光标处的字符,使用上下左右键来移动光标 # 在末行模式下可以输入/字符来查找想要查找的字符,set nu来设置显示行号,set nonu来设置取消行号 /hello 查找文本中的hello
2.UGO权限
ll查看目录下文件的详细信息时,第一列信息中后9位代表该文件的UGO权限。
- U:当前文件所属用户(文件是谁创建的)
- G:用户所属组(linux中每个用户都有所属的组,一个用户可以属于多个组)
- O:用户所属组以外的其他用户
文件的权限包括:
- r:read可读,对应的数字4
- w:write写,对应的数字2
- x:execute可执行,对应的数字1
- -:无权限,对应的数字0
修改文件UGO权限使用的命令:chmod
# 修改文件UGO权限有两种方式:1.数字 2.符号
# 数字是3位数字,每一个数字对应UGO
chmod 740 a.txt # 设置a.txt的ugo权限为:u:rwx g:r-- o:---
chmod 774 a.txt # 设置a.txt的ugo权限为: u:rwx g:rwx o:r--
# 符号方式:U,G,O,a +,-,=
chmod u=rwx a.txt # 设置a.txt的属主权限为rwx
chmod g+w a.txt # 设置属组用户添加w权限
chmod o-r a.txt # 设置其他用户去掉r权限
chmod a=rw a.txt # 设置所有的UGO权限为rw
3.用户管理
-
创建组
groupadd ruan14 # 创建群组 groupadd ruan12 -g 2000 # 创建组的同时,给组指明组id
-
创建用户
useradd zhangsan # 创建zhangsan用户 useradd lisi -G ruan12,ruan14 # 创建用户的同时,给用户分配附加组 useradd yuqian -g ruan12 # 创建用户的同时,设置主组
用户创建成功之后,会在/etc/passwd以及/etc/shadow文件中生成对应的用户信息
grep 'zhangsan' /etc/passwd grep 'zhangsan' /etc/shadow cat /etc/group # 查看所有的组信息
-
查看用户信息
id # 查看当前登录用户的信息 id root # 查看指定用户的信息
-
向组内添加和删除用户
gpasswd -a yuqian ruan14 # 向ruan14组内添加用户yuqian gpasswd -d yuqian ruan12 # 从ruan12组内移除用户yuqian
-
修改用户密码
passwd # 修改当前用户的密码,自己修改密码话需要先输入原密码,要是root修改,直接改 passwd zhangsan # 修改指定用户的密码
-
切换登录用户
su zhangsan # 进行用户切换,root切换其他用户不需要密码,但是切换到其他用户需要密码
-
删除用户
userdel -r yuqian # 删除用户以及生成的用户的主目录
passwd以及shadow文件中对应的用户信息也将删除
-
删除组
# 删除组的时候要注意:改组下面如果还有其他用户,这个组是不能删除的,除非改组为空,没有其他成员 groupdel ruan12
-
修改文件属主及属组
chgrp ruan14 a.txt # 修改文件所属组 chown zhangsan a.txt # 修改文件属主 chown lisi:lisi a.txt # 同时修改文件的属主和属组,前面是属主,后面属组
4.进程管理
进程:计算机中每个程序运行时都会有一个他对应的进程,一个进程下面可以包含有1到多个线程,进程中包含了当期程序占用的内存,程序代码等内容。
进程的状态:运行状态,休眠状态,停止状态,僵尸状态
进程的查看,分为静态进程和动态进程。
- 静态进程:当前系统进程的一个快照(当前时间点的系统的进程状态)
- 动态进程:可以实时更新查看当前系统的进程状态
静态进程常用命令:
ps -aux # 查看所有进程的详细信息,包含的列比较多
ps -ef # 可以查看uid,pid,ppid
ps axo pid,%cpu,%mem # 可以指定查看哪些进程的列
ps aux|grep mysqld # 查看mysqld程序是否启动正在运行
ps aux --sort -%cpu # 按照cpu使用率进行降序排列
ps aux --sort -%mem # 按照内存使用率进行降序排列
# 查看某个进程的编号pid
pidof mysqld # 查看mysql进程的pid
pgrep mysqld # 查看mysql进程的pid
动态进行查看:
top # 查看动态进程
# 动态进程分为上下两部分:
# 上面部分是进程的一个整体情况,是动态变化的
# 下面部分是每个进程的具体情况,是动态变化的
# 动态进程数据默认每3s刷新一次
top -d 1 # 设置动态进程数据每隔1s刷新1次
# 进入动态进程界面之后,可以shift+P对进程进行cpu使用率的降序排列,也可以shift+M,进行内存使用率的降序排列
top -p pid1,pid2 # 查看指定进程编号的信息,pid1,pid2要替换成具体的进程编号