查看“Linux基础”的源代码
←
Linux基础
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
以下命令及参数,均在 Centos7 环境下测试通过。 === 配置 === ==== DNS ==== * /etc/resolv.conf <nowiki>#</nowiki> systemctl restart NetworkManager,一般新版本不修改上面文件。 <nowiki>#</nowiki> BOOTPROTO='static'时,网卡中DNS配置有效。 nameserver 114.114.114.114 nameserver 202.106.0.20 nameserver 202.106.196.115 nameserver 10.10.119.251 nameserver 10.10.119.252 nameserver 10.55.2.158 domain my.com 指定本地的域名,在没有设置search的情况下,search默认为domain的值。 search google.com bing.com ... 可用来指定多个域名,中间用空格或tab键隔开。当访问的域名不能被DNS解析时,将该域名加上search指定的参数,重新请求DNS,直到被正确解析或试完search指定的列表为止。如:ping abc不通时,继续ping abc.google.com… ===== Ubuntu 20.04 LTS ===== 此版本的 DNS 需要修改: * /etc/systemd/resolved.conf DNS=8.8.8.8 114.114.114.114 <nowiki>#</nowiki> systemctl restart systemd-resolved,服务重启后覆盖 /etc/resolv.conf ===== 外网不通的解决办法 ===== * 设置IP和子网掩码 ifconfig ens33 192.168.1.10 netmask 255.255.255.0 * 设置网关 route add default gw 192.168.1.1 * 设置DNS # 参考上一词条 ==== LANG ==== /etc/locale.conf LANG="en_US.UTF-8" <nowiki>#</nowiki>LANG="zh_CN.UTF-8" ==== 设置系统时区为上海 ==== timedatectl set-timezone Asia/Shanghai <nowiki>#</nowiki> timedatectl status <nowiki>#</nowiki> timedatectl <nowiki>#</nowiki> timedatectl list-timezones ==== 将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间 ==== timedatectl set-local-rtc 1 <nowiki>#</nowiki> cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime [root@g1-ch-1 clickhouse-server]# ll /etc/localtime lrwxrwxrwx. 1 root root 25 Oct 21 19:12 /etc/localtime -> ../usr/share/zoneinfo/GMT [root@g1-ch-1 clickhouse-server]# timedatectl set-timezone Asia/Shanghai [root@g1-ch-1 clickhouse-server]# ll /etc/localtime ? ? ? ? ? ? ? ? ? ? lrwxrwxrwx 1 root root 35 Mar 2 10:29 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai <nowiki>#</nowiki> sync time IP=10.10.139.69 <nowiki>#</nowiki> ssh $IP 'yum -y install ntpdate' ssh $IP 'ntpdate cn.pool.ntp.org' ==== 网卡 ==== <nowiki>#</nowiki> 配置 /etc/sysconfig/network-scripts/ <nowiki>#</nowiki> 状态 <nowiki>#</nowiki> ip addr <nowiki>#</nowiki> ifconfig ethtool em0 <nowiki>#</nowiki> sar -n DEV 6 rxpck/s:每秒钟接收的数据包 txpck/s:每秒钟发送的数据包 rxbyt/s:每秒钟接收的字节数 txbyt/s:每秒钟发送的字节数 rxcmp/s:每秒钟接收的压缩数据包 txcmp/s:每秒钟发送的压缩数据包 rxmcst/s:每秒钟接收的多播数据包 ==== 修改主机名称 ==== hostname[ctl set-hostname AAA] ====Firewall==== # 查看 firewall-cmd --list-all # 防火墙操作:停止、开启、禁止、启用 systemctl CMD firewalld.service CMD: start stop enable disable # 开放端口 # --permanent 永久,重启后有效 firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=8000-9200/tcp --permanent firewall-cmd --zone=public --add-port=32000-32099/udp --permanent # 转发 firewall-cmd # 允许防火墙伪装IP --query-masquerade --add-masquerade # 80 -> 10.10.137.16:8080 firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=10.10.137.16:toport=8080 =====Centos 6===== iptables -L -n iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 22 =====Centos 7===== IP=10.10.137.16 iptables -I INPUT -s ${IP} ? -p tcp --dport ${PORT} -j ACCEPT iptables-save > /etc/sysconfig/iptables # 保存规则 iptables-restore < /etc/sysconfig/iptables # 重新加载规则 # 配置防火墙允许指定ip访问端口 PORT=80 # 增加规则 iptables -I INPUT -p tcp --dport ${PORT} -j DROP # 查看规则 iptables -L ====关闭 SELinux==== SSH 证书访问需要关闭 SELinux # /etc/selinux/config SELINUX=disabled # getenforce/setenforce查看和设置SELinux的当前工作模式 # 临时关闭 setenforce 0 ==== ssh tunnel ==== # /etc/ssh/sshd_config GatewayPorts yes AllowTcpForwarding yes # systemctl restart sshd ===== Option ===== * -C 数据压缩 * -f 后台操作,只有当提示用户名密码的时候才转向前台 * -N 不执行远端命令,只是端口转发时这条命令很有用处 * -g 允许远端主机连接本地转发端口 * -L 本地端口映射到远端主机端口 * -R 远端主机端口映射到本地端口 ===== 在端口转发主机上执行 (-L) ===== # 105.207 : 207:80 --> 47:18000 ssh -C -f -N -g -L 80:10.10.105.47:18000 root@10.10.105.207 ===== 在内网主机上执行 (-R) ===== # 137.16 : 187:32022 --> 202:3389 ssh -C -f -N -g -R 32022:10.10.137.202:3389 root@193.123.232.187 >> ~/log/log_ssh_g-inf.log ===== TCPKeepAlive ===== ssh -o StrictHostKeyChecking=no \ -o ExitOnForwardFailure=yes -o TCPKeepAlive=yes \ -Nf -R 32022:10.10.137.202:3389 root@193.123.232.187 -p 22 &>/dev/null 上面三个连接不稳定的时候,连接还在,但服务连不通。 若远程一直连着,基本上可以保证服务可用,但偶尔也会无响应。 ==== sodu ==== # 将用户加入 sudo 组 sudo usermod -aG sudo bi -.OR.- # visudo # 在root ALL=(ALL) ALL下增加一行: root ALL=(ALL) ALL bi ALL=(ALL) NOPASSWD: ALL # 伪装成另一个用户运行 CMD=gpstate sudo runuser -l gpadmin -c ${CMD} ==== 登录后自动执行 ==== * /etc/motd 加入待显示的内容,如:Welcome to Ubuntu 20.04 LTS * /etc/profile.d/ 自动执行目录下的 sh 脚本,如:redislabs 会放入 env 脚本,不使用时需要手工移除,否则报:No such file or directory * profile 自动执行 /etc/profile、~/.profile、~/.bash_profile 中的命令 ===操作=== ====注销客户端==== <nowiki>#</nowiki> w 查看登客户端 TTY pkill -kill -t pts/2 <nowiki>#</nowiki> kill 掉某个用户的所有进程 pkill -u oracle <nowiki>#</nowiki> killall 特征字进程 <nowiki>#</nowiki> ps -ef | grep cloudera | grep -v grep ## | cut -c 9-15 | xargs kill -9 # 不好用,垃圾 ====检查是否安装==== <nowiki>#</nowiki> yum install epel-release rpm -qa yum list installed pip list dpkg -l # deb <nowiki>#</nowiki> 如果是以源码包自己编译安装的,只能看可执行文件是否存在了,上面方法看不到这种源码形式安装的包。如果是以root用户安装的,可执行程序通常都在/sbin:/usr/bin目录下。一般用户安装在/usr/local/下,有些在/opt下 ====查看linux系统是物理机还是虚拟机==== lspci lspci | grep -i fibre #光纤卡型号 lspci -vvv | grep Ethernet #万兆网卡显示为10-Gigabit dmidecode dmidecode -s system-product-name yum install dmidecode* ====OS Version==== cat /etc/redhat-release <nowiki>#</nowiki> yum install redhat-lsb lsb_release -a <nowiki>#</nowiki> update <nowiki>#</nowiki> update 升级所有包,改变软件设置和系统设置,系统版本内核都升级 <nowiki>#</nowiki> upgrade 升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变 ====info==== cat /proc/cpuinfo cat /proc/meminfodmidecode -s system-product-name ====显示分区基本信息==== fdisk -l lsblk -f ====挂载==== parted /dev/sdb(mkpart) -.OR.- fdisk /dev/sdb(p,n/p/...,w,q) mkfs.xfs /dev/sdb1 mkdir /u01 mount /dev/sdb1 /u01 # 启动项 /etc/fstab /dev/sdb1 /u01 xfs defaults 0 0 ====测试硬盘速度==== dd if=/dev/zero of=/tmp/test bs=1M count=10240 dd if=/dev/zero of=/tmp/test bs=4096 count=2621440 <nowiki>#</nowiki> 检查 centos 服务开启情况 chkconfig --list chkconfig --del xxx chkconfig --level 35 xxx on/off <nowiki>#</nowiki>centos图形化界面gnome-shell卡死的解决方法 service gdm stop kill -9 xargs # gnome-shell的进程 <nowiki>#</nowiki> 查看启动项 systemctl list-unit-files 更改链接/usr/share/zoneinfo目录中的时区来更改时区 /etc/localtime。 rm -rf /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime <nowiki>#</nowiki> /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai <nowiki>#</nowiki> link 如果用 Transmit(v5.82) + Sublime Text(v4121)修改,则硬连接会失效——因为是把源文件删除后重建的,所以会有两个版本的文件。 用 vi/WinSCP(v5.1.5)+UltraEdit-32(v13.20)无此问题。 <nowiki>#</nowiki> 时间同步 <nowiki>#</nowiki> yum install -y ntpdate ntpdate -u asia.pool.ntp.org <nowiki>#</nowiki> BIOS时间 hwclock -r <nowiki>#</nowiki> 回写BIOS时间 hwclock -w ====# /dev/shm==== 这个目录是linux下一个利用内存虚拟出来的一个目录,这个目录中的文件都是保存在内存中 <nowiki>#</nowiki> df -h tmpfs 32G 84K 32G 1% /dev/shm <nowiki>#</nowiki> free total used free shared buff/cache available Mem: 65808632 762204 64486736 58288 559692 64521436 Swap: 16777212 0 16777212 <nowiki>#</nowiki> vi /etc/fstab tmpfs /dev/shm tmpfs defaults,size=32g 0 0 mount -o remount tmpfs <nowiki>#</nowiki> 查看端口占用 netstat -lnp lsof -i :80 lsof -i :80-1000 #范围 <nowiki>#</nowiki> 检查端口 nmap <nowiki>#</nowiki> (.188:/data/ndb) ./lrun ip_bo "nmap %VAR% -p 10-61000" <nowiki>#</nowiki> TCP <nowiki>#</nowiki> HOST=10.10.137.33 nmap ${HOST} -p 10-33000 <nowiki>#</nowiki> UDP nmap ${HOST} -sU -Pn -p 10-200 -sU:表示udp scan , udp端口扫描 -Pn:不对目标进行ping探测(不判断主机是否在线)(直接扫描端口) 对于udp端口扫描比较慢,扫描完6万多个端口需要20分钟左右 <nowiki>#</nowiki> 查看目录 tree . -L 2 ====# 加密==== openssl des3 -salt -k PASSWD openssl des3 -d -k PASSWD <nowiki>#</nowiki> tar -zcvf - ${FILEPATH) | openssl des3 -salt -k ${PASSWD} | dd of=${FILEPATH).des3 <nowiki>#</nowiki> dd if=${FILEPATH}.des3 |openssl des3 -d -k ${PASSWD} | tar zxf - <nowiki>#</nowiki> dd if=${FILEPATH}.des3 |openssl des3 -d -k Bidb1123 > ${FILEPATH} ===资源占用=== ====按内存排序==== ps -aux | sort -k4nr | head -n5 top (然后按下M,注意大写) ====按 CPU 排序==== ps -aux | sort -k3nr | head -n5 top (然后按下P) ====磁盘IO==== <nowiki>#</nowiki> 如果 %util 接近 100%,I/O请求过多,磁盘I/O已经满负荷 iostat -X 6 iostat -m 6 iotop ====CPU==== sar -u 1 5 sar -P ALL -u 1 5 sar -P 0 -u 1 5 ====Network==== vnstat -h vnstat -d # 可以监控的可用接口 vnstat --iflist # 选择要监控的接口 vnstat -u -i eth0 ====查看目录占用空间==== du -h / --max-depth=1 ====查看已删除未释放文件==== 一般是 df -h 与 du -ms /* 差距很大时,可以检查已删除未释放文件。一般在删除文件时,如果有进程打开了这个文件,一直未关闭此文件句柄,那么就不会释放该文件。 lsof -n |grep deleted 查出后,关闭进程即可释放文件。 ====网络==== iptop -i ens3 -n -P sar -n DEV 6 ===CMD=== ====rz/sz 上传文件==== <nowiki>#</nowiki> 超大文件传输会有问题 <nowiki>#</nowiki> yum install lrzsz ====strings==== 查看 lib 文件包内容 strings /lib64/libstdc++.so.6 |grep CXXABI_ ====Swap==== swapoff -a swapon -a swapon -s <nowiki>#</nowiki> 增加 /etc/fstab /dev/mapper/cl-swap ? ? swap ? ? ? ? ? ? ? ? ?? swap ?? defaults ? ? ?? 0 0 <nowiki>#</nowiki> SWAP文件 dd if=/dev/zero of=/data/swap1 bs=1M count=1024 mkswap /data/swapfile chmod 600 /data/swapfile swapon /data/swapfile <nowiki>#</nowiki> swapoff /data/swapfile ====CP==== -p 保留原文件时间 -a 保留属性 ====SCP==== 默认拷贝软连接 -p 保留原文件的修改时间,访问时间和访问权限 -r 递归复制整个目录 -v 详细方式显示输出 -q 不显示传输进度条 大写: -P port 指定目标端的 SSH 端口号 -C 允许压缩(将-C标志传递给ssh,打开压缩功能) scp -P 32024 -rp * bi@193.123.232.187:/data/dump/. ====rsync 同步==== 服务端和客户端均需安装 rsync -e 'ssh -p 32024' -rvlt /var/www/html/work_bk bi@193.123.232.187:/var/www/html/ -r 递归,复制目录 -v 显示复制的过程 -l 同步软连接需要指定 -t 基于文件的修改时间进行对比,只同步修改时间不同的文件 -a 保持所有文件属性,如果文件属性变了,认为是不同文件 -u 选项忽略重复的数据 --exclude 'name1' 排除目录或文件 --exclude-from='e.lis' 排除 e.lis 中指定的目录或文件 ==== chattr ==== 防止文件被修改(包括 root) chattr +i ~/.ssh/authorized_keys lsattr * # 查看 ----i---------e----- authorized_keys 只能追加数据,不能删除 chattr +a /var/log/messages ==== CentOS 查看系统信息 ==== <nowiki>#</nowiki> 进程 ps -ef # 查看所有进程 top # 实时显示进程状态(M=memory sort, P=CPU sort) <nowiki>#</nowiki> 用户: w # 查看活动用户 id <用户名> # 查看指定用户信息 last # 查看用户登录日志 cut -d: -f1 /etc/passwd # 查看系统所有用户 cut -d: -f1 /etc/group # 查看系统所有组 crontab -l # 查看当前用户的计划任务 ====# rsz为实际内存占用==== ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | sort -nrk5 <nowiki>#</nowiki> sync 如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件 <nowiki>#</nowiki> drop_caches <nowiki>#</nowiki> 系统默认值为0,修改为1、2、3会立刻释放内存,但无法改回0. drop_caches的详细文档如下: Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free. <nowiki>#</nowiki> To free pagecache: <nowiki>*</nowiki> echo 1 > /proc/sys/vm/drop_caches <nowiki>#</nowiki> To free dentries and inodes: <nowiki>*</nowiki> echo 2 > /proc/sys/vm/drop_caches <nowiki>#</nowiki> To free pagecache, dentries and inodes: <nowiki>*</nowiki> echo 3 > /proc/sys/vm/drop_caches As this is a non-destructive operation, and dirty objects are notfreeable, the user should run "sync" first in order to make sure allcached objects are freed. This tunable was added in 2.6.16. <nowiki>#</nowiki>回收Swap Used sync cat /proc/sys/vm/drop_caches # 可以设为1释放内存 echo 1 > /proc/sys/vm/drop_caches <nowiki>#</nowiki> 关闭所有交换分区 swapoff -a # 最好后台执行 <nowiki>#</nowiki> 启用 swapon -a <nowiki>#</nowiki> 启动指定 swap 设备 swapon /dev/mapper/VolGroup00-LogVol01 <nowiki>#</nowiki> 查看当前启用的 swap 设备 swapon -s ====# swappiness==== <nowiki>#</nowiki> 默认 vm.swappiness 值是60。将值改小,可以降低系统对于swap的写入。而将值设为0,并不会禁止对swap的使用,而是使系统对于 swap 的写入尽可能的少(当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间)。 cat /proc/sys/vm/swappiness -OR- sysctl -q vm.swappiness sysctl vm.swappiness=0 # 临时起作用,重启后恢复 <nowiki>#</nowiki> /etc/sysctl.conf vm.swappiness=10 <nowiki>#</nowiki>测试硬盘速度 dd if=/dev/zero of=/tmp/test bs=1M count=10240 dd if=/dev/zero of=/tmp/test bs=4096 count=2621440 <nowiki>#</nowiki>块设备信息 <nowiki>#</nowiki> yum install util-linux-ng lsblk -t <nowiki>#</nowiki>解决在Linux下面使用sqlplus,上下键,退格键都不能用 <nowiki>#</nowiki> alias sqlplus='rlwrap sqlplus' rlwrap sqlplus / as sysdba <nowiki>#</nowiki> mount <nowiki>#</nowiki> /etc/fstab <nowiki>#</nowiki> 显示已挂载目录 mount <nowiki>#</nowiki>以下 mount 远程主机 出现过 df 不了的故障 <nowiki>#</nowiki>mount -t nfs -o vers=3,proto=tcp,nolock m01.bg.5i5j.club:/ /mnt/hdfs <nowiki>#</nowiki> iconv 编码转换 <nowiki>#</nowiki> -c Silently discard characters that cannot be converted instead of terminating when encountering such characters. iconv -f utf-8 -t gbk in.txt > out.txt <nowiki>#</nowiki>硬连接,只适合于文件 <nowiki>#</nowiki> ln source target <nowiki>#</nowiki>软连接,包括目录 ln -s source target <nowiki>#</nowiki>硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,起到防止“误删”的功能——因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。 <nowiki>#</nowiki>硬链接说白了就是一个指针,指向文件索引节点,系统并不为它重新分配新的inode。可以用ln命令来建立硬链接。尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一下不足之处:(1)不可以在不同文件系统的文件间建立链接(2)只有超级用户才可以为目录创建硬链接。 <nowiki>#</nowiki>软链接: 软链接克服了硬链接的不足,没有任何文件系统的限制,而且任何用户都可以创建指向目录/文件的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。 <nowiki>#</nowiki> 过滤 find warm find / -name pgbench 2>/dev/null <nowiki>#</nowiki> 系统日志文件 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息 /var/log/cron 与定时任务相关的日志信息 /var/log/spooler 与UUCP和news设备相关的日志信息 /var/log/boot.log 守护进程启动和停止相关的日志消息 <nowiki>#</nowiki> 系统信息 uname -a # 查看内核/操作系统/CPU信息 cat /etc/issue cat /etc/redhat-release # 查看操作系统版本 cat /proc/cpuinfo # 查看CPU信息 hostname # 查看计算机名 lspci -tv # 列出所有PCI设备 lsusb -tv # 列出所有USB设备 lsmod # 列出加载的内核模块 env # 查看环境变量 <nowiki>#</nowiki> 资源 free -m # 查看内存使用量和交换区使用量 df -h # 查看各分区使用情况 du -sh <目录名> # 查看指定目录的大小 grep MemTotal /proc/meminfo # 查看内存总量 grep MemFree /proc/meminfo # 查看空闲内存量 uptime # 查看系统运行时间、用户数、负载 cat /proc/loadavg # 查看系统负载 <nowiki>#</nowiki> 磁盘和分区 mount | column -t # 查看挂接的分区状态 fdisk -l # 查看所有分区 lsblk -f # 文件系统类型 swapon -s # 查看所有交换分区 hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备) dmesg | grep IDE # 查看启动时IDE设备检测状况 <nowiki>#</nowiki> 网络 ifconfig # 查看所有网络接口的属性 iptables -L # 查看防火墙设置 route -n # 查看路由表 netstat -lntp # 查看所有监听端口 netstat -antp # 查看所有已经建立的连接 netstat -s # 查看网络统计信息 <nowiki>#</nowiki> 服务 chkconfig –list # 列出所有系统服务 chkconfig –list | grep on # 列出所有启动的系统服务 <nowiki>#</nowiki> 程序 rpm -qa # 查看所有安装的软件包 <nowiki>#</nowiki> 解压bz2包 tar -jxvf extundelete-0.2.4.tar.bz2 <nowiki>#</nowiki> 列目录内容 tar -tzvf *tar.gz [[分类:Develop]] [[分类:Linux]]
返回
Linux基础
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
目录
文章分类
侧边栏
帮助
工具
链入页面
相关更改
特殊页面
页面信息