Linux 命令
标签(空格分隔): Linux Bash
comm
对比2个排序文件的差异。用于计算集合的交、并、差。
a.txt b.txt 要求其排序并唯一
comm a.txt b.txt 返回3列,第一列 a-b b-a a交b
参数, -1 表示不显示第一列 -12表示不显示第一第二列comm -13 <(sort file1) <(sort file2)
-
系统调用exec是以新的进程去代替原来的进程,但进程的PID保持不变。因此,可以这样认为,exec系统调用并没有创建新的进程,只是替换了原来进程上下文的内容。原进程的代码段,数据段,堆栈段被新的进程所代替。
目录分配
- / 根目录分隔越小越好,和开机、还原、修复动作有关
- /bin 放置的是在单人维护模式下还能够被操作的指令。可以被root与一般账号所使用
- /boot 开机会使用到的档案,包括Linux 核心档案以及开机选单与开机所需配置文件等
- /boot/vmlinuz 核心文件
- /boot/initrd 核心文件
- /dev 何装置与接口设备都是以档案的型态存在于这个目录当中的
- /dev/random 随机数生成器 0~32767
- /dev/null
- /usr 软件放置处
- /usr/bin
- /usr/sbin
- /usr/include
- /usr/lib
- /usr/lib64
- /usr/local 系统管理员自行安装的软件,非系统默认分发版本。和系统版本吧保持区别
- /usr/share 共享文件,基本都是文本文件
- /usr/share/man
- /usr/src 源码
- /usr/src/linux linux的源码
- /opt 第三方软件
- /etc 配置文件
- /etc/init.d 服务的开机启动脚本
- /etc/rc.d/init.d
- /etc/sysconfig/* 各种服务的初始化环境配置文件
- /etc/xinetd.d super daemon的配置
- /etc/x11 x window的相关配置
- /etc/fstab 开机挂载的磁盘
- /etc/mtab 开机挂载的磁盘
- /etc/sysconfig/i18n 支持的语言
- /etc/issue, /etc/motd bash进站和欢迎信息
- /etc/profile login shell才会读
- /etc/profile.d/*.sh
- /etc/passwd
- /etc/group
- /etc/sudoers
- /etc/securetty/limits.conf
- /etc/service 设定服务于端口的对应关系
- /etc/hosts.allow 是/usr/sbin/tcpd的配置文件,以xinetd管理的服务,可以透过它们来设定host访问控制
- /etc/hosts.deny 凡是被libwrap支持的,都可以被此配置影响,用ldd命令可以测试
- /etc/crontab 定时任务配置文件
- /etc/inittab 初始启动等量级 run level
- /etc/modprobe.conf 自定义模块
- /etc/sysconfig/modules 自定义模块
- /etc/sysconfig/authconfig 身份认证机制
- /etc/sysconfig/clock 设定主机时区
- /etc/sysconfig/i18n
- /etc/sysconfig/network
- /etc/sysconfig/network-scripts/ifcfg-eth* 网卡文件配置
- /etc/resolv.conf dns配置文件
- /var
- /var/cache
- /var/lib 程序执行中,需要用的数据文件放置处,例如mysql的/var/lib/mysql
- /var/mail
- /var/run 启动后的pid等
- /var/spool/news
- /var/lock
- /var/log
- /var/log/secure 无法登陆时的安全信息
- /var/log/messages
- /home
- /home/.bash_profile login模式下才会读取
- /home/.bashrc 登陆和非登陆模式下都会读
- /lib 开机时会用到的函式库,以及在/bin 或/sbin 底下的指令会呼叫的函式库
- /lib/modules/$(uname -r)/kernel/arch/* cpu等硬件相关
- /lib/modules/$(uname -r)/kernel/crypto/* 加密相关
- /lib/modules/$(uname -r)/kernel/drivers/* 硬件驱动
- /lib/modules/$(uname -r)/kernel/fs/* 文件系统驱动
- /lib/modules/$(uname -r)/kernel/lib/*
- /lib/modules/$(uname -r)/kernel/net/* 网络协议,防火墙模块等
- /lib/modules/$(uname -r)/kernel/sound/* 音效相关
- /lib/modules/$(uname -r)/modules.dep 各个模块的依赖关系
- /media 包括软盘、光盘、DVD 等等装置
- /mnt
- /root
- /sbin 这些指令只有root 才能够利用
- /srv
- /tmp
- /proc 虚拟文件系统,数据都是在内存当中,例如系统核心、行程信息
- /proc/cpuinfo
- /proc/devices
- /proc/cmdline
- /proc/filesystems 系统已经加载的文件系统
- /proc/interrupts 终端分配状态
- /proc/dma
- /proc/interrupts
- /proc/ioports 各个装置的io地址
- /proc/kcore 内存
- /proc/loadavg 负载
- /proc/meminfo
- /proc/modules 已经加载的模块列表
- /proc/swaps
- /proc/partitions 所有分区
- /proc/pci pci装置信息
- /proc/uptime
- /proc/version 核心版本
- /proc/sys/kernel 核心功能
- /proc/net/*
- /sys
网络
从minimal iso安装的操作系统,默认不能联网,使用如下方式安装网络
http://lintut.com/how-to-setup-network-after-rhelcentos-7-minimal-installation/
列出网卡
nmcli d
编辑连接
nmtui
DHCP配置
简单图形界面选择
重启服务
/etc/init.d/network restart
查看系统版本:
uname -r
uname -a
cat /proc/version
内核版本lsb_release -a
发行版本,扩展的命令工具
yum
源:
EPEL
yum install epel-release yum install localinstall abc.rpm sudo sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo
RPM下载安装
wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -i epel-release*.rpm
rpmforge
nginx
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
系统优化
selinux
修改/etc/selinux/config文件中的SELINUX=”” 为 disabled ,然后重启。
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
查看状态setstatus -v
swappiness
http://blog.sina.com.cn/s/blog_60aa9ccd0100h433.html
cat /proc/sys/vm/swappiness
echo 0 > /proc/sys/vm/swappiness
sudo vim /etc/sysctl.conf
vm.swappiness=10
echo -e "\nvm.swappiness=0" >> /etc/sysctl.conf
ulimit
运行ulimit只对当前session有效
编辑/etc/profile文件,例如 “ulimit -S -c 0 > /dev/null 2>&1”,对所有用户有效,但只是对以前启动的进程无效。
对整个系统有效的:vi /etc/security/limits.conf
,对新进程有效
type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。
进程数: ulimit -u 10000
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s 262140
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited
打开的文件:ulimit -n 65535
磁盘坏道
如果只是逻辑坏道
umount /dev/sdb1
fsck -y /dev/sdb1
e2fsck -y /dev/sdb1
e2fsck -f -b 32768 /dev/sdb1
mke2fs -n /dev/sdb1
mount /dev/sdb1
mkfs -V -t ext4 -c /dev/sdb1
mkfs -V -t ext4 /dev/sdb1
fdisk -l /dev/sdb
parted 是fdisk的高级版本,可以格式化2T以上的磁盘
dmesg
badblocks -b 4096 -c 16 /dev/sdb1 -o badblocks-list
badblocks -sv /dev/sdb1
如果是物理坏道
badblocks
时间
时区
复制相应的时区文件,替换系统时区文件;或者创建链接文件
cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
在中国可以使用:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
时间同步
0 3 * * * ntpdate clock.redhat.com > /dev/null 2>&1
0 3 * * * ( ntpdate ntp.ucweb.com && /sbin/hwclock -w ) > /dev/null 2>&1
dns
语言
echo $LANG
LANG="en"
忘记root密码
以单人维护模式登入即可更改你的root 密码。
- 系统重新启动,在读秒的时候按下任意键
- 按下『e』就能够进入grub 的编辑模式
- 选定启动kernael,并且增加 single 标签, 标识单机启动
- 进入新界面,已经是root,可以用passwd命令设置新密码
常用服务
- acpid 高级电源管理
- anacron cron相关
- apmd 电源电量管理
- atd at的daemon
- auditd
- autofs 自动挂载来自网络上的驱动器,NFS
- cpuspeed 管理cpu频率,系统闲置时,自动的降低cpu频率来节省电量
- crond /etc/crontab
- cpus 管理打印机服务,http://localhost:631可以管理
- gpm tty1~6下的鼠标支持
- haldaemon 侦测usb
- hidd 蓝牙侦测
- bluetooth 蓝牙侦测
- iptables 本机防火墙,ip6tables
- irqbalance irq的自动均衡,多核心硬件必须
- lvm2-monitor lvm监控
- netfs 网络驱动器,nfs,smb需要
- network 网络设定,必须
- nfslock nfs的锁
- portmap rpc服务必须
- sendmail 寄信,默认仅支持本机内,不能网络
- smartd 自动侦测硬盘状态
- sshd
- syslog 记录系统产生的各项讯息
- xfs 图形接口的字体服务
- xinetd 超级daemon
- yum-updatesd
功能服务
- dovecot 邮件服务
- httpd www服务
- named 领域服务
- nfs 网络磁盘服务
- ntpd 网络校时服务
- smb samba
- squid 代理服务器
- vsftpd ftp服务
- nis 网络信息服务,集中密码验证
开机流程
- BIOS与自测,获取第一设备
- 读取MBR的boot Loader 亦即是 grub(此程序安装在开机装置的第一扇区)
- 加载 Kernel ,Kernel 会开始侦测硬件与加载驱动程序;
- 呼叫 init 程序
- init 执行 /etc/rc.d/rc.sysinit 档案来准备软件执行的作业环境 (如网络、时区等);
- init 执行 run-level 的各个服务之启动 (script 方式);
- init 执行 /etc/rc.d/rc.local 档案;
- init 执行终端机仿真程序 mingetty 来启动 login 程序,最后就等待用户登入啦;
关机重启
- shutdown -h now(立刻进行关机)
- halt(立刻进行关机)
- poweroff(立刻进行关机,并关闭电源)
- shutdown -r now(现在重新启动计算机)
- reboot(现在重新启动计算机)= shutdown -r now : 正常重启
- reboot -f 强制重启计算机
- reboot -nf 命令,这样重启时可以指定跳过 init 的处理和 sync 操作,这样可以避免大多数情况下的问题
- impi方法重启
- ls -l /dev/ipmi* 确认ipmi安装和加载
- ipmitool power reset 强制重启
- 如果是进程挂住,导致磁盘忙,导致无法重启,reboot会挂住,使用下面的命令:需要开启CONFIG_MAGIC_SYSRQ,确认方法:grep “CONFIG_MAGIC_SYSRQ” /boot/config-
uname -r
- echo 1 > /proc/sys/kernel/sysrq
- echo b > /proc/sysrq-trigger
IPMI
远程管理bios等
http://my.oschina.net/davehe/blog/88801
pd2:
http://10.**.102.127
默认用户名和密码:ADMIN:ADMIN
启动该驱动:
service ipmi start
或者启动模块:
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_poweroff
modprobe ipmi_watchdog
用于查看信息
传感器,温度等
ipmitool -I open sensor list
查看ipmi信息
ipmitool mc info
人员
ipmitool user list 1
查看绑定IP
ipmitool lan print 1
更改IP
ipmitool lan set 1 ipaddr x.x.x.x
更改密码
ipmitool user list 1
ipmitool user set password 2 "123456"
ipmitool的SQL远程控制服务器
ipmitool -I lanplus -H x.x.x.x -U root -P password sol (de)activate
强制重启(关闭或开启)被监控服务器
ipmitool -I lanplus -H x.x.x.x -U root -P password chassis power reset (off on)
列出日志
ipmitool sel list
快捷键
shift + ~ +. 是退出ipmi
常用命令
chkconfig 随机启动
ssh黄金参数
1 | ssh -o ConnectTimeout=3 -o ConnectionAttempts=5 -o PasswordAuthentication=no -o StrictHostKeyChecking=no $ip “command” |
1 | & z 邮件列表 |
鸟哥的Linux上的常用命令
date +%Y%m%d %H:%M:%S
cal
bc
scale=3 1/3 quit
sync
把数据同步写入磁盘中shutdown -h now
reboot
halt
poweroff
runlevel
显示当前run levelinit
run level 0:关机 run level 3:纯文本模式 run level 5:含有图形接口模式 run level 6:重新启动
ls
chgrp
chown
chmod
-R
[ugoa] [[+-=][perms…]…],其中perms可以是0,也可以 是rwxXst中的字母集合。
+t,a+r,g-w,+rwx,o=r
(r)读,(w)写,(x)执行或者搜索目录,(X) 执行/搜索——仅当目标为目录,或某些用户已对该文件具有执行权限时,(s)设置用 户或用户组的执行时权限,即下文中的“SUID与SGID标志位”条目,(t)限制删除标 志位或粘滞位。
删除位:t
对于目录来说 ,它防止一般用户删除或重命名目录中的文件,除非该用户是文件或目录的拥有者
basename
dirname
od
以二进制方式读取文件nl
添加行号打印more
less
umask
文件预设权限chattr
配置文件的隐藏属性lsattr
隐藏属性:
A
访问不修改atime,加快ioS
同步写文件,不会内存缓存a
只能增加,不能删除和修改c
自动压缩和解压d
不会被dumpi
禁止删除、改名、写入、连接s
删除时彻底移除,无法挽救u
与s
相反
chmod
文件的特殊权限
s
仅对可执行程序有效,执行者获得程序拥有者(或者群组group)的权限t
仅对目录有效,仅有自己和root有权删除
file
显示文件类型which
whereis
locate
find
fdisk
磁盘分区parted
磁盘分区的高级版,2T以上磁盘需要mkfs
磁盘格式化fsck
bacblocks
磁盘检查mount
umount
hdparm
dhparm -Tt /dev/hdc
测试dump
完整备份,不仅对整个文件系统,和可以仅对文件。restore
cpio
io流的cpiconv
编码转换type
命令的类型env
set
显示系统环境变量和bash自定义变量declare
array
ulimit
stty
设置终端属性col
join
paste
expand
tab键转为空格split
printf
diff
比较差异,还能生成patch文件patch
可以用上述patch文件,更新和还原useradd
passwd
chage
可以让账号在第一次登陆后必须修改密码usermod
userdel
finger
列出账户信息chfn
change fingerchsh
change bashid
groupadd
groupmod
groupdel
gpasswd
setfacl
getfacl
acl提供更细节支持,需要文件系统支持,ext3支持,需要开启w
who
last
lastlog
write
mesg
wall
mail
发送邮件nice
renice
uptime
dmesg
vmstat
fuser
查看文档的使用程序是哪个lsof
查看程序使用了哪些文件xinetd
super daemon,没有客户端请求是,各项服务都是未启动的,等到有客户端要求时,super daemon才唤醒对应的服务。客户端要求结束后,被唤醒的服务也会关闭并释放资源。spawn
twist
chkconfig
管理系统服务默认开机启动depmod
管理模块依赖关系lsmod
显示已经加载的模块modinfo
更详细的模块信息modprobe
分析模块相关性并加载模块,也可以用-r参数卸载lspci
查看硬件设备 /proc/bus/pci/*lsusb
sensors-detect
侦测sensors
温度侦测
rpm
rpm -qa 查询全部
rpm -q logrotate 查询特定
rpm -ql logrotate 查询详细目录和档案
rpm -qi logrotate 查询安装详细说明
rpm -qc logrotate 查询配置文件
rpm -qd logrotate 查询说明文档
rpm -qR logrotate 查询依赖支持
rpm -e logrotate 卸载
ifconfig
查询、设定网络卡于ip。ifconfig可以暂时手动设定和修改。而一旦/etc/init.d/network restart,就全部恢复。可以修改/etc/sysconfig/network-scripts/ifcfg-eth*等文件ifconfig eth0 192.168.100.100 修改ip ifconfig eth0:0 192.168.50.50 在eth0的基础上再生出一个借口,就是在一个网卡上设定多个ip ifconfig eth0:0 down 关闭网卡
route
查询、设定路由route -n 单纯的观察路由
ip
iwlist
无线网卡侦测lwconfig
dhclient
ping
traceroute
最终两部主机自己通过的各个节点。traceroute -n 163.com
netstat
host
nslookup
dig
telnet
lftp
lynx
wget
tcpdump
ethereal
nc
nc -l -p 80
监听80端口yum install -y nc
netcat
nmap
网络端口显示,不仅本机,也可以远程扫描sar
全面的系统性能分析工具。文件的读写、系统调用、磁盘I/O、CPU效率、内存使用、进程活动及IPCsar -n DEV 1
查看网卡流量
要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
查看历史:全部指标 sar -s 16:50:00 -e 17:55:00 -A
sar -f /var/log/sa/sa19 -s 11:16:18 -e 11:18:00
sar -f /var/log/sa/sa19 -s 11:10:00 -e 11:20:00 -Aiostat
磁盘IOmpstat
CPU使用情况sudo sh -c 'free && sync && echo 3 > /proc/sys/vm/drop_caches && free'
清空磁盘的系统缓存parallel
1
2
3
4
5
6
7
8wget "http://mirrors.ustc.edu.cn/gnu/parallel/parallel-20170722.tar.bz2"
bzip2 -dc parallel-20170722.tar.bz2 | tar xvf -
cd parallel-20170722
./configure && make && sudo make install
parallel -h
man parallel
head need_har.list.txt |parallel -j 10 --pipe -N 1 sh
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com