linux常用命令
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux常用命令,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含13065字,纯文字阅读大概需要19分钟。
内容图文
![linux常用命令](/upload/InfoBanner/zyjiaocheng/927/d7efd981eb974f0497b6dc508cdd9a9e.jpg)
后台运行命令:nohup command > myout.file 2>&1 &
e2fsck -f /dev/vdb1 检查文件系统大小
resize2fs /dev/vdb1 变更文件系统大小
查看系统参数:
查看磁盘空间:df -h
查看文件目录大小:du -sh
查看内存:free -h
查看内存占用前5的进程:ps aux | head -1; ps aux | sort -rnk 4 | head -5
查看内存条硬件信息:dmidecode -t memory
查看CPU:grep "model name" /proc/cpuinfo
查看linux版本:more /etc/redhat-release
查看系统安装的时候装的软件包:cat -n /root/install.log
查看现在已经安装了哪些软件包:rpm -qa 或 yum list installed
查看键盘布局:cat /etc/sysconfig/keyboard
查看selinux情况:setatus 或 cat /etc/sysconfig/selinux
查看默认语言:echo $LANG $LANGUAGE 或 cat /etc/sysconfig/i18n
查看所属时区和是否使用UTC时间:cat /etc/sysconfig/clock
查看主机名:hostname
修改主机名:hostnamectl set-hostname master cat /etc/sysconfig/network
查看Linux系统版本:cat /etc/redhat-release
cat /etc/issue
用户可打开的最大文件数量:ulimit -n
用户可打开最大进程数量:ulimit -u
压缩:
tar压缩文件,排除指定文件:
tar -zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/libs --exclude=tomcat/xiaoshan.txt tomcat
zip压缩文件,排除指定文件:
zip -r test.zip test -x /test/aaa/* -x /test/bbb/*
grep:
查询当前目录包含指定字符串的文件:grep "pay" . -lr
字符串处理:
取字符串最后一个“/”后的字符:ERLANG_TAR=${ERLANG_URL##*/}
将export开头的字符串注释然后在包含export字符串的后面加一行字符串:sed -i 's/^export/#export/g;/export/aexport JAVA_HOME=/opt/jdk' /opt/apps/$i/startup.sh
查找指定目录下7天前建立的以log结尾的文件: find /home/meta/log/ -mtime +7 -type f -name \*.log -exec rm -rf {} \;
rpm:
查询安装的rpm软件包:rpm -qa
安装:rpm -ivh {软件包}
卸载:rpm -e {软件包}
yum:
####查看软件包
yum list all ##列出yum源仓库里面的所有可用的安装包
yum list installed ##列出所有已经安装的安装包
yum list available ##列出没有安装的安装包
####安装软件
yum install softwarename ##安装指定的软件
yum reinstall softarename ##重新安装指定的软件
yum localinstall 第三方software ##安装第三方文件并且会解决软件的依赖关系
yum remove softwarename ##卸装指定的软件
####查找软件的信息
yum info software ##查看软的信息
yum search keywords ##根据关键字查找到相关安装包软件的信息
yum whatprovides filename ##查找包含指定文件的相关安装包
####对于软件组
yum groups list ##列出软件组
yum groups install ##安装一个软件组
yum group remove ##卸载一个软件组
yum groups info ##查看一个软件组的信息
CA:
更新证书:update-ca-trust
同步时间:ntpdate pool.ntp.org
时间:
修改时区centos7:
ll /etc/localtime # 查看时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 修改时区
timedatectl list-timezones # 列出所有时区
日期:
date +%Y%m%d
date -d -1day +%Y%m%d
定时:
新建定时任务的命令是:crontab -e
watch -n 10 sh test.sh & #每10s在后台执行一次test.sh脚本
lvm:
物理卷:
????????? pvcreate:将实体分区创建为PV
????????? pvscan:扫描目前系统所有PV磁盘
????????? pvdisplay:显示出目前系统上的PV状态
????????? pvremove:将PV属性从一个分区上移除,让该分区不再具有partition属性
? vgcreate:创建一个VG
卷组:
vgscan:扫描当前系统上已存在的VG
vgdisplay:详细显示当前系统上已存在的VG的状态
vgextend:在VG中增加额外的PV
vgreduce:在VG内移除PV
vgchange:设定VG是否启用
vgremove:删除一个VG
逻辑卷:
lvcreate:建立LV
????????????? lvscan:查询系统上已有的LV
????????????? lvdisplay:显示系统上的LV明细状态
????????????? lvextend:在LV里增加容量
????????????? lvreduce:在LV里减少容量
????????????? lvremove:删除一个LV
????????????? lvresize:对LV进行容量大小的调整
?????? 再讲lvcreate命令常用的3个参数,在进入实际操作的讲解
????????????? lvcreate [-l N] [-n LV 名称] VG 名称
-L后面跟容量大小,单可以为M,G,T,最小单位时PE,也就是说你填写的值必须为PE大小的倍数,如果填写错误,系统将自动计算最相近的容量
????????????????-l?后面跟PE个数,如果要这么填写,需要自行计算PE个数
????????????????-n?后面跟lv的名字
破坏分区表的两种方法:
dd if=/dev/urandom of=/dev/sda bs=512 count=1
wipefs -a /dev/sda
新建卷:
新建物理卷:
lvcreate /dev/sdb
新建卷组:
vgcreate vg1 /dev/sdb
新建逻辑卷:
lvcreate -n test -L 1G vg1
挂载:
mkfs.xfs /dev/vg1/test
mkdir /PV
mount /dev/vg1/test /PV
扩容逻辑卷:
lvextend -L +100M /dev/vg1/test # 加100M,不加+代表扩容到
xfs_growfs /dev/vg1/test # xfs格式文件系统,ext格式的使用e2fsck
缩小:
lvreduce -L 100M /dev/vg1/test # 缩小到100M
xfs_growfs /dev/vg1/test
逻辑卷快照:
lvcreate -L 120M -s -n SNMP /dev/vg1/test # 指定切割大小为120M,-s参数生成一个快照卷,-n指定快照名
扩容根分区:
fdisk /dev/sda 选择p,主分区
partprobe :刷新分区
mkfs.xfs /dev/sda3 :格式化
pvcreate /dev/sda3 :创建逻辑卷
vgdisplay :查看卷组
vgextend centos /dev/sda3 :加入卷组,centos一般是根目录的卷组
lvextend -l +100%FREE /dev/mapper/centos-root :扩容
xfs_growfs /dev/mapper/centos-root :刷新
RAID:
部署磁盘阵列:
1、创建磁盘阵列
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# -C参数代表创建一个RAID阵列卡;-v参数显示创建的过程,/dev/md0作为阵列名称;-a yes参数代表自动创建设备文件;-n 4参数代表使用4块硬盘来部署这个RAID磁盘阵列;而 -l 10参数则代表 参数则代表 RAID 10方案;最后再加上4块硬盘设备的名称
2、格式化
mkfs.xfs /dev/md0
3、挂载
mkdir /RAID
mount /dev/md0 /RAID
4、查看阵列
mdadm -D /dev/md0
删除阵列:
1、取消挂载
umount /RAID
2、停止阵列
mdadm -S /dev/md0
3、清除成员磁盘当中阵列的超级块信息
mdadm --zero-superblock /dev/sd[b,c,d,e]
4、删除或注释/etc/fstab相关的挂载信息
5、删除或注释/etc/mdadm.conf对应的RAID信息
6、删除/dev/md0文件
MegaRaid阵列卡管理工具:
chkconfig:主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
chkconfig –list #列出所有的系统服务
chkconfig –add httpd #增加httpd服务
chkconfig –del httpd #删除httpd服务
chkconfig –level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态
chkconfig –list #列出系统所有的服务启动情况
chkconfig –list mysqld #列出mysqld服务设置情况
chkconfig –level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,–level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig mysqld on #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级
运行级别:
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
例子:
chkconfig 2345 20 80 # 写在/etc/init.d/脚本开头位置,运行级别为2345模式时会自启,20是启动优先级,80代表关闭优先级,越小代表优先级越大,可用于调整启动关闭顺序s
内核:
升级内核:
# 载入公钥
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装ELRepo
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 载入elrepo-kernel元数据
yum --disablerepo=\* --enablerepo=elrepo-kernel repolist
# 查看可用的rpm包
yum --disablerepo=\* --enablerepo=elrepo-kernel list kernel*
# 安装最新版本的kernel
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-lt.x86_64
# 删除旧版本工具包
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64
# 安装新版本工具包
yum --disablerepo=\* --enablerepo=elrepo-kernel install -y kernel-ml-tools.x86_64
# 查看系统上的所有可用内核:
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
# 设置新的内核为grub2的默认版本
grub2-set-default 0 # 其中 0 是上面查询出来的可用内核的序号
# 删除旧内核(可选)
rpm -qa | grep kernel
yum remove kernel-3.10.0-514.el7.x86_64
或者使用yum-utils:如果安装的内核不多于 3 个,yum-utils 工具不会删除任何一个。只有在安装的内核大于 3 个时,才会自动删除旧内核
yum install yum-utils
package-cleanup --oldkernels
内核优化:
限制:
ulimit -Sn 查看的是软限制 【可以在程序的进程中自行改变(突破限制)】
ulimit -Hn 查看的是硬限制 【硬限制则不行(除非程序进程有root权限)】
修改限制:echo "* soft nofile 204800" >> /etc/security/limits.conf
echo "* hard nofile 204800" >> /etc/security/limits.conf(永久修改)
ulimit -n 65535 (临时)
ansible:
配置:
将要添加的主机填写的/etc/ansible/hosts文件中
生成无密码格式的秘钥:ssh-keygen -t rsa
将公钥安全的发送到其他主机,包括自己本机:ssh-copy-id root@172.16.253.177
用户:
/etc/passwd 保存用户信息
/etc/shdaow 保存用户密码(以加密形式保存)
/etc/group 保存组信息
/etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制
/etc/default/useradd 显示或更改默认的useradd配置文件
# 赋予用户root权限
修改 /etc/sudoers 文件:tommy ALL=(ALL) ALL
修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0:tommy:x:0:33:tommy:/data/webroot:/bin/bash
用户ID:
root用户:0
系统用户:1-499
普通用户:=>500
修改用户密码
passwd
passwd 修改密码报错 passwd:Authentication token manipulation error:
可以用lsattr命令查看存放用户和密码的文件属性lsattr /etc/passwd、lsattr /etc/shadow,(i:不得任意更动文件或目录),如果有i选项,则会导致所有的用户都不能修改密码,因为没有权限允许;可以用chattr命令将i权限撤销 chattr -i /etc/passwd、chattr -i /etc/shadow,然后再修改用户密码。
修改用户:
uermod -d <homedir> -m -l <目前用户名> <新用户名> -s <shell>
删除用户:
userdel -r <用户名>
修改用户属组:
usermod -g <组> <用户名>
更改用户附加组:
usermod -G <组> <用户名>
将用户从属组中删除
gpasswd -d userName groupName
firewall-cmd
firewall-cmd [选项 ... ]
安装:yum install firewalld firewall-config
端口管理:
# 打开443/TCP端口
firewall-cmd --add-port=443/tcp
# 永久打开3690/TCP端口
firewall-cmd --permanent --add-port=3690/tcp
# 永久打开端口好像需要reload一下,临时打开好像不用,如果用了reload临时打开的端口就失效了
# 其它服务也可能是这样的,这个没有测试
firewall-cmd --reload
# 查看防火墙,添加的端口也可以看到
firewall-cmd --list-all
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1 # 将80端口的流量转发至192.168.0.1
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 将80端口的流量转发至192.168.0.1的8080端口
服务管理:
# 显示服务列表
Amanda, ftp, Samba和tftp等最重要的服务已经被FirewallD提供相应的服务,可以使用如下命令查看:
firewall-cmd --get-services
# 允许ssh服务通过
firewall-cmd --enable service=ssh
# 禁止SSH服务通过
firewall-cmd --disable service=ssh
# 打开TCP的8080端口
firewall-cmd --enable ports=8080/tcp
# 临时允许Samba服务通过600秒
firewall-cmd --enable service=samba --timeout=600
# 显示当前服务
firewall-cmd --list-services
# 添加HTTP服务到内部区域(internal)
firewall-cmd --permanent --zone=internal --add-service=http
firewall-cmd --reload # 在不改变状态的条件下重新加载防火墙
iptables:
不允许10.8.0.0/16网络对80/tcp端口进行访问:
iptables -A INPUT -s 10.8.0.0/16 -d 172.16.55.7 -p tcp --dport 80 -j DROP
multiport:以离散或连续的 方式定义多端口匹配条件,最多15个:
iptables -I INPUT -d 172.16.0.7 -p tcp -m multiport --dports 22,80,139,445,3306 -j ACCEPT
iprange:以连续地址块的方式来指明多IP地址匹配条件:
iptables -I INPUT -d 172.16.0.7 -p tcp -m multiport --dports 22,80,139,445,3306 -m iprange --src-range 172.16.0.61-172.16.0.70 -j REJECT
string:匹配数据包中的字符
iptables -I OUTPUT -m string --algo bm --string "gay" -j REJECT
connlimit:用于限制同一IP可建立的连接数目
iptables -I INPUT -d 172.16.0.7 -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j REJECT
limit:限制收发数据包的速率
--limit rate[/second|/minute|/hour|/day]
--limit-burst number
iptables -I OUTPUT -s 172.16.0.7 -p icmp --icmp-type 0 -j ACCEPT
将本地服务器的 50000~65535 转发至目标 IP 为 1.1.1.1 的 50000~65535 端口:
使用 -i / -s / -d 精准指定网卡、来源IP、目标IP:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
iptables -t nat -A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
iptables -t nat -A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
不同端口转发:
iptables -t nat -A PREROUTING -p tcp --dport 8016 -j DNAT --to-destination 18.222.236.211:8017
iptables -t nat -A POSTROUTING -p tcp -d 18.222.236.211 --dport 8017 -j SNAT --to-source 10.53.1.49
PREROUTING链修改的是从外部连接过来时的转发,如果本机连接到本机的转发,需要修改 OUTPUT链: -t nat -A OUTPUT
iptables save
其他技巧:
echo -n '{ "version": "1.1", "host": "test111111.com", "short_message": "test is a Promising company", "level": 5}' | nc -w1 -u 10.0.26.163 5150
安装字体:
sudo yum install mkfontscale
sudo yum install fontconfig
1、在/usr/share/fonts/下,新建文件夹winFonts,如果没有fonts目录,就安装fontconfig软件(系统字体管理),再将win7字体msyh.ttf复制到Ubuntu /usr/share/fonts/中。
2、安装字体,如果没有下面命令就安装xfonts-utils工具
# sudo chmod 664 /usr/share/fonts/winFonts/*
# cd /usr/share/fonts/winFonts/
# sudo mkfontscale
# sudo mkfontdir
# sudo fc-cache -fv #建立字体缓存信息
3、查看是否成功
# fc-list :lang=zh-cn #如果成功就会有如下信息,再重新启动Tomcat就没有乱码了。
Microsoft YaHei,微软雅黑:style=Regular,Normal,obyejné,Standard,Κανονικ,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
卸载字体:
1、删除文件夹
2、sudo fc-cache -fv
关闭、删除网卡:
ifconfig cni0 down
ip link delete cni0
glic
升级编译的--prefix必须指定为/usr目录,/lib64/libc.so.6软连接千万不能删,
mqsisetdbparms ACENODE1 -n eis::sap_adapter_erp_sales_0001_group2.outadapter -u 'picom' -p 'piprd11@Biz.want'
mqsisetdbparms ACENODE2 -n jdbc::oracle_identity -u 'SALESGROUP2_ODS' -p 'group2#)SG0809'
内容总结
以上是互联网集市为您收集整理的linux常用命令全部内容,希望文章能够帮你解决linux常用命令所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。