Linux基础
目录结构
/bin
:存放基础系统所需的命令
/sbin
:存放超级权限用户root的可执行命令
/etc
:存放系统程序或者一般工具的配置文件
/usr
:用户程序包含二进制文件、库文件、文档和二级程序的源代码
/home
:所有用户用home目录来存放他们的个人档案
/mnt
:挂载目录临时安装目录,系统管理员可以挂载文件系统
/dev
:设备文件存储目录
/proc
:操作系统运行时,进程信息及内核信息
/var
:存放内容可能增长的文件(日志)
/tmp
:临时文件包含系统和用户创建的临时文件
/boot
:引导加载程序文件包含引导加载文件的个人档案
/lib
:系统库包含支持位于/bin和/sbin下的二进制文件的库文件
/opt
:可选的附加应用程序,包含从个别厂商的应用程序
/media
:可移动媒体设备
/srv
:存服务数据
基本命令
~
:当前用户的家目录
pwd
:显示当前工作目录
ls
:查看当前目录的内容
-
-a
:查看隐藏文件 -
-i
:inode的节点编号 -
-l
:列出当前文件目录下的文件和文件夹的详情信息
.
:隐藏文件
../
:相对路径
cd
:回到家目录
-
:回到之前的目录
du
:查看文件大小
-h
:显示单位-s
:总计
uname:
- -r:内核版本
- -n:主机名
- -a:所有信息
ln
:连链接(删除源文件,链接文件不可用)
-s
:创建软链接ln
:硬链接
- 软连接创建方式 ln -s 被链接文件 链接文件
(1)软链接是一个链接文件;
(2)软链接有着自己的 inode 号(文件编号);
(3)软链接有自己的文件属性及权限等;
(4)可对不存在的文件或目录创建软链接;
(5)软链接可交叉文件系统;
(6)软链接可对文件或目录创建;
(7)创建软链接时,链接计数 i_nlink 不会增加;
(8)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接) - 硬链接创建方式 ln 被链接文件 链接文件
(1)文件有相同的 inode 及 data block;
(2)只能对已存在的文件进行创建;
(3)不能交叉文件系统进行硬链接的创建;
(4)不能对目录进行创建,只可对文件创建;
(5)删除或添加一个硬链接文件并不影响其他有相同inode
号的文件,只是减少或增加链接计数,当链接计数为0,系统将彻底删除该文件。
grep
:过滤流信息
-n
: (grep -n “root” /etc/passwd)找到该文件中含有root的-v
:反转(获取没有该文本的文件)|
:管道(ls | grep “.txt”)获取到当前文件中的所有txt文件
文件管理
touch
:创建文件,更改文件创建时间
- home下
touch /root/h.txt houhou.txt``houhou.txt
创建在home下
mkdir
:创建目录
- p
:递归的创建所有目录(aa/bb/cc/dd)
注意:文件大小写敏感,不可超过225个字符,不可以使用
cp
:(cp
源 源 源… 目标)文件的拷贝
-r
:拷贝目录- -f:不询问直接拷贝
- -i:过程中询问是否拷贝
rmdir
:删除目录
rm
:删除文件
rm -rf
:删除所有
mv
:移动文件
mv c.txt 小小
:更改文件名- -f:不询问直接覆盖
exit
退出登录
tar
:打包文件(选项后需加f)(压缩文件后需加z)
-xzvf
:解压-c
:创建包-f
:定义目标包-t
:查看包内容-r
:追加内容-x
:解压包-c
:压缩文件(tar -czf yasuo.tar.gz ./*
)== (tar -czf yasuo.tgz ./*
)-z
:以gzip
的格式压缩
帮助查询
man
:在线帮助手册
find
:查找的位置 选项 参数(eg:find ./ -name "*.txt"
后缀为.txt
的文件名)
find ./ -iname "a*"
iname表示忽略大小写-maxdepth
:从当前目录开始搜索的深度(也就是子目录的嵌套(find . -maxdepth 3 -type f)-type
:文件分类查找
date
:查看时间
date +"%Y-%m-%d %H:%M:%S"
格式化时间
cal
:显示日历
-j
:显示当年的第几天cal 8 2024
:显示2024的8月的日历
wc
:显示文本的行号,字符数 ,单词书
-c
:显示字节数-l
:显示列数-w
:显示字数
cat
:显示文件的 文本内容
-n
:加行号
more
:显示文本的内容(自动退出,查看完会留在终端)
less
:显示文本的内容
head
:显示文本的内容(默认显示前10行)
tail
:显示文本的内容(默认显示文件的后10行)
其他命令
echo
:在控制台中输出
alias
:起别名(alias kk=‘ls -ail’)别名可加参数
-p
:显示已有别名unalias
:删除已有别名
文件类型分类
-(f)
:普通文件
- 纯文本文档(ASCLL)
- 二进制文件(binary)
- 数据格式文件(data)
l
:链接文件
d
:目录
c
:字符设备文件
b
:块设备文件,如:硬盘软盘等
s
:套接字 被称为数据接口文件
p
:管道文件(FIFO)是一种特殊的文件类型,解决多个程序同时访问一个文件所造成的错误问题
重定向ps
>
: 输出覆盖重定向
>>
:输出追加重定向
2>
:错误覆盖输出重定向
2>>
:错误追加重定向
进程管理
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。
ps
:查看进程
- -a:显示所有用户的进程
- -u:显示用户名和启动时间
- -x:显示 没有控制终端的进程
- -e:显示所有进程,包括没有控制终端的进程
- -l:长格式显示
- -aux :显示所有进程
top
:load average: 0.04, 0.06, 0.07程序的负载
swap
:交换分区
kill
:终止一个进程
- Kill -1 pid 重新启动pid的进程
- Kill -9 pid 强制杀死pid进程
top
:动态的显示进程状态
对于shell来说执行程序产生的进程分为前台进程和后台进程执行一个程序的时候如果需要将它变为后台进程时 在执行命令后加&
(ctrl+c 将前台进程终止)
进程状态分别是
(1)不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响
应异步信号。
(2)暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入
TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。
(3)就绪状态:在 run_queue 队列里的状态
(4)运行状态:在 run_queue 队列里的状态
(5)可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连
接、等待信号量),而被挂起
(6)zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体
(task_struct)也释放掉
(7)退出状态
符号信息
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核 2.6 开始无效)
X 死掉的进程
操作系统负载查看
uptime :命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载
free : 可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区
空闲内存:available = free + buffer(缓冲) + cache(缓存)
mpstat :CPU核状态
ifstat : 网卡网络状态
df :查看磁盘的使用率
用户管理
新建用户:adduser、useradd
创建组: groupadd
修改组:usermod
chown
:改变文件的所属
-
-R
:递归处理,将指定目录下的所有文件及子目录一并处理 -
chown -R test /kk
将/kk目录下的所有文件改为test用户所有 -
更改所有者和组:chown 新所有者:新组 文件名
修改组必须在:后面进行修改
chmod
:改变文件的权限(r=4,w=2,x=1)
chmod u+x,g+w kk
文件kk设置权限chmod u=rwx,g=rw,o=r kk
给kk文件设置权限chmod 764 kk
文件kk设置权限