日常梳理-Linux

张开发
2026/4/4 4:55:21 15 分钟阅读
日常梳理-Linux
文章目录一、常用命令查看系统参数查看系统编码 localewindows脚本换行符转换成linux进程最大打开文件数 ulimit -n系统最大打开文件数 cat /proc/sys/fs/file-maxCPU相关查看CPU使用情况 top查看CPU 核心 / 型号 / 总核数 lscpu查看内存可用情况 free -h查看操作系统及版本 cat /etc/os-release查看磁盘存储空间使用情况文件系统的块空间 df -h查看磁盘inode 节点使用情况文件系统的索引节点数量 df -i查看磁盘分区状态 lsblk查看当前目录总大小 du -sh查看当前目录下各个文件及目录占用空间大小 du -sh *查看目录下所有文件的大小并按照大小排序 du -sh * | sort -rh查看当前目录下某文件使用空间大小 du -h --max-depth1 文件名查看已经删除的文件空间有没有释放 lsof -n |grep deleted查看文件行数 wc -l 文件名查看端口占用 netstat -aon|grep 端口查看端口对应的进程ss -lntp | grep 端口 或者 lsof -i:端口将控制台输出到文件设置session不过期 export TMOUT0curl命令post请求data数据中包含单引号使用\sed替换二、常见问题1. 时区问题导致时间转换时差12小时2. Linux报too many open files的解决方案3. 提示bash: $\241llll: command not found4. 删除乱码文件5. su切换用户提示“This account is currently not available”6.consul客户端启动时提示“agent/proxy:failed to snapshot state:open datacenter/proxy/snapshot.json-bdf.tmp: no space left on device”1.检查是磁盘不足还是inode耗尽2.确认 inode 耗尽的挂载点3.定期清理自动化7. /var/spool/postfix/maildrop 目录堆积大量文件导致 inode 耗尽三、磁盘分区挂载四、Linux目录结构五、基本命令用户添加用户添加用户 useradd xxx创建用户指定组指定附加组指定家目录删除用户 userdel xxuser查看所有用户 cat /etc/passwd用户组添加用户组 groupadd xxgroup删除用户组 groupdel xxgroup查看用户组查看所有用户组 cat /etc/group查看xx用户所属组 groups xxuser查看当前用户所属组 groups将xx用户添加进xx工作组 usermod -G xxgroup xxuser主机名查看主机名 hostname修改主机名修改IP查看有谁在线哪些人登陆到了服务器文件权限文件权限的操作为用户配置sudo权限配置主机之间的免密ssh登陆三台虚拟机执行以下命令生成公钥与私钥拷贝公钥到同一台机器复制第一台机器node01的认证到其他机器一、常用命令查看系统参数查看系统编码 localewindows脚本换行符转换成linux在Windows系统开发了某个shell脚本默认是CRLF格式的在转移到Linux系统上执行时无法正常执行。cat -A file_name的命令可以查看隐藏的字符shell脚本所获取的配置文件内容字符存在^M字符即存在\r回车字符。解决方式1:setfileformatunix :wq解决方式2catdbback.sh|tr\r\n\n进程最大打开文件数 ulimit -n系统最大打开文件数 cat /proc/sys/fs/file-maxCPU相关查看CPU使用情况 top大写的P 按照CPU使用降序展示大写的M 按照内存使用降序展示查看CPU 核心 / 型号 / 总核数 lscpu查看内存可用情况 free -h查看操作系统及版本 cat /etc/os-release查看磁盘存储空间使用情况文件系统的块空间 df -h查看磁盘inode 节点使用情况文件系统的索引节点数量 df -i查看磁盘分区状态 lsblklsblk -f查看块设备的文件系统类型及UUID查看当前目录总大小 du -sh查看当前目录下各个文件及目录占用空间大小 du -sh *查看目录下所有文件的大小并按照大小排序 du -sh * | sort -rh查看当前目录下某文件使用空间大小 du -h --max-depth1 文件名查看已经删除的文件空间有没有释放 lsof -n |grep deleted查看文件行数 wc -l 文件名查看端口占用 netstat -aon|grep 端口查看端口对应的进程ss -lntp | grep 端口 或者 lsof -i:端口将控制台输出到文件方法 1将两者都写入同一个文件覆盖# 等价于 file 21将stdout和stderr都重定向到filecommandoutput.log方法 2将两者都追加到同一个文件commandoutput.log方法 3分别写入不同文件stdout 到 out.logstderr 到 err.logcommandout.log2err.log设置session不过期 export TMOUT0curl命令post请求data数据中包含单引号使用’‘’curl-XPOST-HContent-type:application/json-d{key1:value1;key2:\127.0.0.1:8080\}http://ip:port/xxxsed替换1.sed 替换文件内容sed -i ‘s/旧内容/新内容/g’ 文件名2.vi/vim里替换:%s/旧内容/新内容/gc二、常见问题1. 时区问题导致时间转换时差12小时EDT指美国东部夏令时间波士顿、纽约市、华盛顿哥伦比亚特区都在这个时区内跟北京时间有12小时的时差晚12小时。调整时区为CSTmv /etc/localtime /etc/localtime.bak ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime date2. Linux报too many open files的解决方案进程最大打开文件数ulimit -n系统最大打开文件数cat /proc/sys/fs/file-max3. 提示bash: $‘\241llll’: command not foundvi /etc/profile在环境变量中添加PATH.PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin/以我本地为例exportPATH:$JAVA_HOME/bin:PATH.PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin/4. 删除乱码文件ll-rtlifind./-inum27930571-execrm{}\;5. su切换用户提示“This account is currently not available”情况1id xx用户 查看是否有该用户无则进行新增。情况2su - xx用户 放在脚本里执行情况3cat /etc/pas*|grep xx用户xxxxx:/sbin/nologinvim /etc/pas*#找到用户所在行/sbin/nolog 调整成**/bin/bash**6.consul客户端启动时提示“agent/proxy:failed to snapshot state:open datacenter/proxy/snapshot.json-bdf.tmp: no space left on device”1.检查是磁盘不足还是inode耗尽优先检查df -h /var假设 Consul 数据目录在 /var 下若空间不足按前文方法清理大文件、扩展磁盘或迁移数据。若空间充足再检查df -i /var若 inode 耗尽需删除大量小文件如 /var/log 下的旧日志、/var/tmp 下的临时文件。2.确认 inode 耗尽的挂载点find/var-typed-execdu-Sh{}|sort-rh|head-n10# 说明# - 列出/var下文件数量最多的前10个目录耗时较长大目录需耐心等待# - 重点关注 log、tmp、cache、backup 等目录3.定期清理自动化# 示例/etc/cron.weekly/log-cleanup.sh#!/bin/bashfind/var/log-typef-mtime30-name*.log*-delete7. /var/spool/postfix/maildrop 目录堆积大量文件导致inode耗尽使用以下命令清理已堆积的邮件postsuper-dALL三、磁盘分区挂载例将/dev/vdc 进行分区然后挂载到/cfps2目录下1、lsblk 查看磁盘分区状态2.分区fdisk /dev/vdc(以实际为准)w 保存3、设置文件系统类型mkfs -t ext4 /dev/vdc14、查看文件系统糊弄lsblk -f5.挂载mount /dev/vdc1 /cfps2卸载挂载点umount /dev/vdc1四、Linux目录结构/bin - 基础用户命令存放所有用户包括 root都能使用的基础命令如 ls、cp、mkdir、grep 等。/sbin 系统管理员命令存放系统管理员专用的管理命令如 ifconfig、reboot、fdisk、shutdown 等。普通用户通常无权执行需通过 sudo 调用。/boot - 启动文件存放系统启动所需的文件。/dev - 设备文件/etc- 系统配置文件/home- 用户主目录为每个用户分配独立的主目录如 /home/user1、/home/user2 等。用户拥有完全权限存放个人文件、配置和应用数据。/usr - 用户程序和数据。存放非系统运行必需的软件和数据类似其他系统的 C:\Program Files。/var- 可变数据。存放经常变化的数据如日志文件/var/log、邮件/var/mail、数据库文件/var/lib/mysql等。/opt - 可选应用程序。存放第三方应用程序如 Oracle、MATLAB通常为非系统必需软件。/proc - 进程和系统信息。虚拟文件系统存放系统运行时的状态信息如 CPU、内存、进程文件内容动态生成。/mnt - 临时挂载点。用于临时挂载文件系统如手动挂载硬盘分区、网络共享。/tmp (temporary)用于存放各种临时文件/root - 管理员主目录。root 用户的主目录与普通用户的 /home 类似但位于根目录下。/run - 运行时数据。存放系统启动后产生的临时数据如进程 ID 文件/run/nginx.pid、锁文件等。五、基本命令用户添加用户添加用户 useradd xxx创建用户指定组指定附加组指定家目录useradd 参数-G GROUPS指定额外组(不指定默认组名和用户名一样)。-b 指定用户家目录不指定默认/home/用户名创建xxx用户指定组xxx,指定附加组xxx家目录为/先创建用户组groupadd xxx再创建用户useradd xxx -g xxx -G xxx -b /设置密码passwd xxx 空格按提示输入密码删除用户 userdel xxuser查看所有用户 cat /etc/passwd用户组添加用户组 groupadd xxgroup验证是否添加tail -n 2 /etc/group删除用户组 groupdel xxgroup查看用户组查看所有用户组 cat /etc/group查看xx用户所属组 groups xxuser查看当前用户所属组 groups将xx用户添加进xx工作组 usermod -G xxgroup xxuser主机名查看主机名 hostname修改主机名(重启后无效) hostname hadoop(重启后永久生效) vi /ect/sysconfig/network修改IP(重启后无效) ifconfig eth0 192.168.12.22(重启后永久生效) vi /etc/sysconfig/network-scripts/ifcfg-eth0查看有谁在线哪些人登陆到了服务器who 查看当前在线last 查看最近的登陆历史记录文件权限文件权限的操作linux文件权限的描述格式解读drwxr-xr-x 也可以用二进制表示 111 101 101 -- 755d标识节点类型d文件夹 -文件 l:链接r可读 4w可写 2x可执行 1第一组rwx 表示这个文件的拥有者对它的权限可读可写可执行第二组r-x 表示这个文件的所属组对它的权限可读不可写可执行第三组r-x 表示这个文件的其他用户相对于上面两类用户对它的权限可读不可写可执行修改文件权限chmod g-rw haha.dat 表示将haha.dat对所属组的rw权限取消chmod o-rw haha.dat 表示将haha.dat对其他人的rw权限取消chmod ux haha.dat 表示将haha.dat对所属用户的权限增加x也可以用数字的方式来修改权限chmod 664 haha.dat就会修改成 rw-rw-r–如果要将一个文件夹的所有内容权限统一修改则可以-R参数chmod -R 770 aaa/chown angela:angela aaa/ 只有root能执行目录没有执行权限的时候普通用户不能进入文件只有读写权限的时候普通用户是可以删除的(删除文件不是修改它,是操作父及目录),只要父级目录有执行和修改的权限为用户配置sudo权限用root编辑 vi /etc/sudoers 或 visudo在文件的如下位置为hadoop用户添加一行即可root ALL(ALL) ALLhadoop ALL(ALL) ALL然后hadoop用户就可以用sudo来执行系统级别的指令[hadoopshizhan ~]$ sudo useradd huangxiaoming配置主机之间的免密ssh登陆三台虚拟机ssh免密码互相通信node01node02node03三台虚拟机执行以下命令生成公钥与私钥ssh-keygen -t rsa拷贝公钥到同一台机器ssh-copy-id node01复制第一台机器node01的认证到其他机器scp /root/.ssh/authorized_keys node02:/root/.ssh scp /root/.ssh/authorized_keys node03:/root/.ssh

更多文章