linux及docker常用命令
文件和目录操作
# 回上级目录
cd ..
# 回上一步所在目录
cd -
# 返回根目录
cd
# 显示当前路径
pwd
# 查看文件目录列表
ls
# 查看文件和目录的详情列表(增强文件易读性)
ls -lh
# 查看文件和目录的树形结构
tree
# 重命名/移动目录
mv old_dir new_dir
# 创建目录
mkdir dir1
# 删除文件 (-f:强制删除)
rm -f test1
# 删除文件夹+子文件 (-r:递归删除)
rm -rf test1
# 删除空文件夹,如果非空,命令不生效
rmdir test1
# 复制文件
cp file1 file2
# 从跟目录查找文件/目录
find / -name python3.7
# 在目录/dir中搜带有.bin后缀的文件
find /dir -name *.bin
# 当前目录下 (递归)搜带有.bin后缀的文件
find . -name *.bin
# 快速查找文件(相当于find -name)
locate <关键词>
# 寻找.mp4结尾的文件
locate *.mp4
# 显示某二进制文件/可执行文件的路径
whereis <关键词> whereis python3.7
# 查找系统目录下某的二进制文件
which <关键词> which python3.7
都是显示环境变量
export输出内容是:按变量名进行排序后的
$PATH 环境变量: Linux 系统比较常用的变量之一。格式:多个路径组成,由英文冒号(:)进行分割

假设将用户家目录下的 tools 添加 $PATH环境变量,怎么操作?
export PATH=$PATH:/home/ascmcs/tools
# 创建指向文件/目录的软链接
ln -s file1 link1
# 比如 ln -s /var/local/python3/bin/python3.9 /usr/bin/python3
rm -rf python3 #去到创建软链接的目录/usr/bin/下面,使用该命令删除软链,只删除软链接,但不删除实际数据。如果使用rm -rf python3/ 这样删除会把原来 python3 下的内容删除
添加软连接和添加到环境变量,好像实现的功能都一样,具体有什么区别?
软链接:类似windows中在桌面上建立的一个快捷方式,快捷方式直接指向源文件所在的位置。好处是只是一个链接,占用资源大小忽略不计。
文件查看和处理
# 查看文件内容
cat file1
# 查看文件后两行
tail -2 file1
# 查看文件前两行
head -2 file1
# 在文件hello.txt中查找关键词codesheep
grep codesheep hello.txt
# 在文件hello.txt中查找以sheep开头的内容
grep ^sheep hello.txt
# 查看从第1行到第5行内容
sed -n '1,5p;5q' hello.txt
查找命令 : grep(文本搜索工具)、find、locate、whereis、which、type 区别
系统信息和性能查看
# 查看linux版本信息
cat /proc/version
# 查看系统环境变量
env
# 查看系统的内存使用情况
free -h
# Linux手动清除缓存的方法(少用)
sync&&echo 3 > /proc/sys/vm/drop_caches

total: 内存总数
used: 已经使用内存数
free: 完全空闲内存
shared: 多个进程共享的内存
buffers: 用于块设备数据缓冲,记录文件系统metadata(目录,权限,属性等)
cached: 用于文件内容的缓冲
available:真正剩余的可被程序应用的内存数
docker容器
# 安装查看版本
docker -v
# 查看当前系统中的所有镜像
docker images
# 查看系统中正在运行的容器
docker ps
# 查看所有容器(包括已停止的容器)
docker ps -a
# 删除单个容器
docker rm -f -v 容器名
# 启动容器
docker start
# 重启容器
docker restart
# 停止容器
docker stop
# 重命名容器(docker rename jenkins3 jenkins1)
docker rename old new
docker run:启动某个镜像,运行一个容器
# docker run -d -uroot -p 10086:8080 --name jenkins1 -v /home/xuefeng/jenkins_node:/var/jenkins_home jenkins/jenkins:2.306-centos
docker run --env DB_CONN=redis://:@ip:6379/0 -p 5000:5000 xuefeng365/spider_proxy_pool:v1
# 进入容器
docker exec -it jenkins1 bash
# 退出容器
exit # 或者键盘按 Ctrl + P + Q 也可退出
docker pull :从docker hub拉取某个镜像
docker build:根据Dockerfile创建一个镜像
打包解压
# 解压文件
tar Python-3.7.0.tgz
进程管理
# 查看所有进程
ps -ef
# 实时显示进程状态
top
# ps -ef 所有进程; grep 用来过滤包含"xuefeng365"的进程
ps -ef | grep xuefeng365
# kill指定pid的进程
kill -s pid
# kill指定名称的进程
kill -s name
# 查找端口8888被哪些程序占用
lsof -i:8888 # 会显示占用的程序名称和进程ID
# netstat -ap 显示所有网络连接和监听端口; grep 用来过滤包含"8888"的行
netstat -ap|grep 8888
用户和用户组
# 创建用户
useradd codesheep
# 删除用户
userdel -r codesheep
# 修改用户的组
usermod -g group_name user_name
# 将用户添加到组
usermod -aG group_name user_name
# 创建用户组
groupadd group_name
# 删除用户组
groupdel group_name
# 重命名用户组
groupmod -n new_name old_name
# 查看test用户所在的组
groups test
# 查看活动用户
w
# 查看指定用户xuefeng365信息
id xuefeng365
# 查看用户登录日志
last
# 查看系统所有组
cut -d: -f1 /etc/group
# 查看系统所有用户
cut -d: -f1 /etc/passwd
# 更改用户的密码
passwd
# 修改某用户的密码
passwd codesheep
文件查看和处理
RPM包管理命令
YUM包管理命令
DPKG包管理命令
APT软件⼯具
清理日志
Linux /var/log/日志文件太大,清理journal就行
# 系统根目录
cd /
# 使用命令检查磁盘文件 查看日志使用量
df -h
或者
du -sh *|sort -h
或者
du -h --max-depth=1
cd进入查看比较大的文件
再次du -sh *|sort -h


亲测有效:docker清理Overlay2占用磁盘空间
https://blog.csdn.net/Small_StarOne/article/details/123655176
有一天使用,突然发现我的 linux服务器 空间占用太高,没空间了。
因为有使用 docker ,猜想长时间运行日志文件肯定很多。下面验证一下 ,发现-json.log文件果然很大,删除时即可
# 使用命令检查磁盘文件 看看哪些文件过大
df -h

再次查看占用空间,释放了很多。

前面发现还有一个文件overlay2 占用空间也很多,我们也清理一下

同样的方法,一步步找出 大文件,删除即可,不再记录