linux 基础(以ubuntu18.04为例)
linux文件分类
- 白色-----普通文件
- 蓝色-----目录
- 绿色-----可执行文件
- 红色-----压缩文件
- 青色-----链接文件
- 黄色-----设备文件(例如管道文件FIFO)
- 灰色-----其他文件
linux 目录
linux下的目录结构:树状
/
根目录,所有文件的起源
/bin
-----此目录下存有所有命令对应的可执行程序
/etc
-----存放所有配置文件的目录
/home
-----存放当前linux有多少个用户(普通用户)
/media
-----linux 会自动将识别到的外部设备(例如U盘)挂载到该目录下
/opt
-----给linux安装的额外软件所在的目录,也有软件装在/user
下
~
-----家目录下的用户目录(/home/登录的用户名/
)
/mnt
-----用户可以将识别到的外部设备手动挂载到该目录下
登录后默认位置在/home/登录的用户名/
即~
目录下
linux 文件权限
上图每一行就是该目录下对应的一个文件。
- rwxrwxr-x 2 sl-ubantu sl-ubantu 3882 2月 22 2023 thread_pool.cpp
- 第一个参数:
-
,标识该文件的类型,其中-
表示普通文件,d
表示目录,p
表示管道文件,s
表示socket文件。 - 后面九个参数:
rwxrwxr-x
,每相邻三个为一组,共三组,分别表示文件所有者,同组成员,其他人对该文件的权限,rwx
表示读写与执行权限,某人没有某个权限,就在其对应的位置上用-
来代替。 - 第十一个参数:
2
,表示该文件的硬链接个数。 - 第十二个参数:
sl-ubantu
,表示该文件或目录的所属者。 - 第十三个参数:
sl-ubantu
,表示该文件或目录的所属组。 - 第十四个参数:
3883
,表示该文件或目录占用的存储空间。 - 第十五个参数:
2月 22 2023
,表示该文件或目录最后的修改时间。 - 第十六个参数:
thread_pool.cpp
,表示文件名。
linux 常用命令
ls
列出当前目录所有文件(不包括隐含文件)
ls -a
列出当前目录文件(包括隐含文件)
ls -l
列出当前目录下文件的详细信息
cd ..
回当前目录的上一级目录
cd -
回上一次所在的目录
cd ~
或 cd
回当前用户的宿主目录(/home
下)
mkdir 目录名
创建一个目录
rmdir 空目录名
删除一个空目录
rm 文件名
删除文件
rm -r 目录名
删除一个目录下的一切,递归删除,无论是不是空
cp 要拷贝的文件2 文件1
将文件2拷贝到文件1中
cp 目录1/ 目录2 -r
将目录1中的内容拷贝到目录2中
mv 路径/文件 路径/
移动文件位置到指定路径下
mv 文件名 文件新名称
在当前目录下将文件改名
touch 文件名
创建文件
cat 文件名
查看文件
ln -s 文件所在路径(必须使用绝对路径) 快捷方式名
为文件创建软链接(快捷方式)
ln 文件名 硬链接名
为文件创建硬链接(类似C++中的引用)
which 命令
找到该命令对应的命令解释器
chmod who [+/-/=] [mode] 文件名
修改对应文件的权限
- 参数
who
表示修改谁的权限,可以填写:文件所有者u
,文件所属组g
,其他人o
,所有人a
- 参数
[+/-/=]
表示对权限的操作,可以填写:+
:添加权限,-
:删除权限,=
:覆盖权限 - 参数
[mode]
要进行操作的权限,与上一个参数结合起来看。
chmod 777 文件名
修改对应文件的权限(数字法)
r
:用4表示,w
用2表示,x
用1来表示,共三组,每组三位,均用二进制来表示,没有的权限对应的位置上用0来表示。
chown 所有者名1 文件名
将文件给予所有者1
chgrp 组名 文件名
改变文件所属组
目录必须要有执行权限(方便进入)
文件的查找
find 要查找的目录 -name "文件名"
按文件名查找
find 要查找的目录 -size +10k
大于10k的文件(按文件大小找)
find 要查找的目录 -size -10k
小于10k的文件(按文件大小找)
find 要查找的目录 -type d|f|p
按文件类型查找(d
目录,f
普通文件,p
管道文件)
grep -r "查找的内容" 查找路径
按内容查找
U盘挂载
/media/
默认U盘挂载到此目录下
sudo mount 设备名字 要将U盘挂载的目录位置
自定义挂载U盘
设备名字
通过sudo fdisk -l
命令来查看要将U盘挂载的目录位置
通常是/mnt
下
sudo umount 要卸载的目录
卸载U盘
压缩包管理
gzip与bzip2
gzip-----.gz格式的压缩包
bzip2-----.bz2格式的压缩包
gzip 文件所在目录/*.txt
压缩当前目录下所有的txt文件,每个txt文件单独压缩,不保留原文件
gzip -dv 压缩文件所在目录
解压文件,不保留原压缩文件
bzip2 -k 压缩文件所在目录
解压文件,保留原压缩文件
bzip2 压缩文件用法与gzip相似,两者都只能压缩文件,不能压缩目录
tar压缩(常用)
参数: c
压缩, x
释放, v
显示提示信息, f
指定压缩文件名字, z
使用gzip方式压缩, j
使用bzip2压缩
必须使用z
或j
参数,否则该命令只对文件或目录进行打包而不压缩
压缩文件: tar zcvf 生成压缩包的名字 要压缩的文件所在路径
生成压缩包的名字
:xxx.zip.gz
或xxx.zip.bz2
解压文件到目标目录:tar zxvf 压缩包的名字 -c 目标目录
zip压缩
压缩文件: zip 压缩包名 要压缩的文件或目录所在路径
解压文件到目标目录: unzip 压缩包名 -d 目标目录
-d 目标目录
:不加,默认当前目录
linux 终端
linux 共有七个终端, tty7 为图形界面终端(默认终端),tty1—tty6为文字界面终端
通过键盘上按键ctrl + alt + f1—f7来切换不同终端
tty4:
tty7(默认):
进程管理
ps a
查看当前操作系统下的所有终端的应用程序
ps au
查看所有终端应用程序的更详细信息
ps aux
查看没有终端的应用程序(守护进程)
ps aux|grep bash
按照内容"bash"查找进程
kill -l
查看所有信号
kill -SIGKILL 进程号
杀死对应进程
env
查看当前进程的环境变量
env|grep PATH
按照内容"PATH"查找当前进程的环境变量
linux下环境变量的格式 key:value:value
----- 一个键可以对应多个值
网络相关命令
ifconfig
显示网络信息,可以查看该设备的ip地址,广播地址
ping ip地址
测试本设备能否与对应ip地址的设备正常通信
linux用户管理
sudo adduser 用户名
添加(创建)用户
su 用户名1
由当前用户切换到用户1
sudo useradd -s /bin/bash -g 用户所属组 -d /home/用户名 -m
创建用户并分配到指定组中
/bin/bash
叫命令解释器/home/用户名
叫用户目录
sudo groupadd 组名
创建一个组
sudo passwd 用户名
修改用户密码
用户名
缺省则默认当前用户
sudo deluser 用户名1
删除用户1(不会删除/home
下的目录)
sudo userdel -r 用户名1
删除用户名1(会删除/home
下的目录)
这里的邮件池是因为创建kk用户时信息没填写完整。
其他命令
man 命令或函数名
查看该命令或函数对应的官方手册
man man
手册首页
man cat
cat命令对应的手册位置
echo 字符串
将该字符串显示(输出)在终端上
$
这个符号用于从变量中取值
$aa
将变量aa中的值取出来