常用的linux操作指令 - 常用操作
复制
cp xxx.log
复制并强制覆盖同名文件
cp -f xxx.log
复制文件夹
cp -r xxx(源文件夹) yyy(目标文件夹)
远程复制
scp -P ssh端口 username@121.:/home/username/xxx /home/xxx
级联创建目录
mkdir -p /xxx/yyy/zzz
批量创建文件夹, 会在test,main下都创建java, resources文件夹
mkdir -p src/{test,main}/{java,resources}
比较两个文件
diff -u 1.txt 2.txt
日志输出的字节数,可以用作性能测试
# 如果做性能测试, 可以每执行一次, 往日志里面输出 “.” , 这样日志中的字节数就是实际的性能测试运行的次数, 还可以看见实时速率.
tail -f xxx.log | pv -bt
查看, 去除特殊字符
# 查看特殊字符
cat -v xxx.sh
# 去除特殊字符
sed -i 's/^M//g’ env.sh
去除文件的特殊字符, 比如^M: 需要这样输入 ctrl+v+enter.
关机
shutdown -h now
重启
shutdown -r now
reboot
查看系统内核信息
uname -a
查看系统内核版本
cat /proc/version
查看当前用户环境变量
env
查看有几个逻辑cpu, 包括cpu型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
查看有几颗cpu,每颗分别是几核
cat /proc/cpuinfo | grep physical | uniq -c
查看当前CPU运行在32bit还是64bit模式下, 如果是运行在32bit下也不代表CPU不支持64bit
getconf LONG_BIT
结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
建立软连接
ln -s /usr/local/jdk1.8/ jdk
查看是否通过rpm安装了该软件
rpm -qa | grep 软件名
创建sshkey
id_rsa.pub 的内容拷贝到要控制的服务器的 home/username/.ssh/authorized_keys 中,如果没有则新建(.ssh权限为700, authorized_keys权限为600)
ssh-keygen -t rsa -C your_email@example.com
在各个用户的.bash_profile中添加重命名配置
alias ll='ls -alF'
同步服务器时间
sudo ntpdate -u ntp.api.bz
命令来完成强制活动用户退出(其中TTY表示终端名称)
pkill -kill -t [TTY]
查看命令路径
which <命令>
查看进程所有打开最大fd数
ulimit -n
配置dns
vim /etc/resolv.conf
查看域名路由表
nslookup google.com
最近登录信息列表
# 最近登录的5个账号
last -n 5
设置固定ip
ifconfig em1 192.168.0.10 netmask 255.255.255.0
查看进程内加载的环境变量
# 也可以去 cd /proc 目录下, 查看进程内存中加载的东西
ps eww -p 进程号
查看进程树找到服务器进程
ps auwxf
查看进程启动路径
cd /proc/xxx(进程号)
ls -all
添加用户, 配置sudo权限
# 新增用户
useradd 用户名
passwd 用户名
#增加sudo权限
vim /etc/sudoers
# 修改文件里面的
# root ALL=(ALL) ALL
# 用户名 ALL=(ALL) ALL
监控linux性能命令
按大写的 F或O,然后按 a-z 可以将进程按照相应的列进行排序, 然后回车。而大写的 R 键可以将当前的排序倒转
- PID 进程id
- PPID 父进程id
- RUSER Real user name
- UID 进程所有者的用户id
- USER 进程所有者的用户名
- GROUP 进程所有者的组名
- TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
- PR 优先级
- NI nice值。负值表示高优先级,正值表示低优先级
- P 最后使用的CPU,仅在多CPU环境下有意义
- %CPU 上次更新到现在的CPU时间占用百分比
- TIME 进程使用的CPU时间总计,单位秒
- TIME+ 进程使用的CPU时间总计,单位1/100秒
- %MEM 进程使用的物理内存百分比
- VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
- RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- CODE 可执行代码占用的物理内存大小,单位kb
- DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
- SHR 共享内存大小,单位kb
- nFLT 页面错误次数
- nDRT 最后一次写入到现在,被修改过的页面数。
- S 进程状态。D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程
- COMMAND 命令名/命令行
- WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
- Flags 任务标志,参考 sched.h
查看系统日志
dmesg
磁盘IO情况监控
iostat -xz 1
- r/s, w/s, rkB/s, wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会引起性能问题。
- await:IO操作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际操作的耗时。如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。
- avgqu-sz:向设备发出的请求平均数量。如果这个数值大于1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。
- %util:设备利用率。这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响IO性能(可以参照IO操作平均等待时间)。如果到达100%,说明硬件设备已经饱和。
- 如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ALLBS!
评论