2021-04-12

一、主机相关命令
查看主机名:hostname 或者 export

查看系统版本:cat /etc/redhat-release

修改主机名:vi /etc/sysconfig/network

查看ip地址:ifconfig (CentOS7用 ip a)

修改ip地址:vi /etc/sysconfig/network-scripts/ifcfg-eth0 hostnamectl set-hostname 主机名 (即为临时和永久生效)

修改ip与主机名的映射关系:vi /etc/hosts

关闭iptables并设置其开机启动/不启动:service iptables stop

重启:reboot

关机:halt

查看当前服务器中的java进程:jps类似于ps -ef | grep java

结束进程 :kill -9 进程号(进程号可以根据ps -ef | grep …获取到)

CentOS7:

查看启动项:systemctl list-unit-files

过滤查看启动项:systemctl list-unit-files | grep enable

过滤查看某服务名:systemctl list-unit-files | grep zabbix

查看所有建立的TCP连接: netstat -antp

查看监听(Listen)的端口: netstat -lntp

查看所有运行中的服务的详细信息 :netstat -tulpn

显示所有进程:ps -ef

显示使用内存的进程:ps -aux

查看内存使用说明 (shift+m 按照排名):top

二、防火墙
CentOS7:

systemctl stop firewalld 临时关闭

systemctl disable firewalld 然后reboot 永久关闭

systemctl status firewalld 查看防火墙状态

service firewalld status 查看防火墙状态

CentOS6:

查看防火墙状态:service iptables status

查看防火墙状态:/etc/init.d/iptables status

查看防火墙是否开机启动:chkconfig iptables –list

设置防火墙开机启动:chkconfig iptables on

设置防火墙开机不启动:chkconfig iptables off

关闭防火墙指令:/etc/init.d/iptables stop

永久关闭防火墙指令:chkconfig iptables off

开启防火墙指令:/etc/init.d/iptables start

永久开启防火墙指令:chkconfig iptables on

重启服务:service iptables restart

三、修改开机等待时间
vi /boot/grub/menu.lst

四、启动Linux默认进入命令行模式
修改/etc/inittab,

将id:5:initdefault:修改为id:3:initdefault:

设置后台服务的自启配置

chkconfig 查看所有服务器自启配置

开源的,安全的系统,通常使用命令行界面,

命令名称 --help:列出该命令的使用方式

man 命令名称:列出该命令的使用方式

cd 目录:切换到某个目录下

cd …:切换到父目录

pwd:查看当前目录(print working directory)

五、文件查询命令
find / -name my*:在根目录(/)下查找以my开头的文件

whereis :查询某个命令所在目录

grep:查询某个字符串所在行(列出本行所有内容)

六、文件操作命令
ls :列出所有目录和文件的名字

ls -l:竖着列出所有文件详细信息

ll:ls -l 的缩写

cp:复制文件

touch:创建文件

mkdir:创建文件夹

rm:删除文件

rmdir:删除空的文件夹

rm -r:递归删除文件,询问

rm -rf:直接删除文件,不询问(f:force)

rm命令慎用,可能会毁掉一个公司!解决方案mv 文件(夹) /tmp

mv:移动文件或者重命名

rename:重命名(批量命名:rename .repo.bak .repo *)

七、文件显示命令
more:分页查询(空格 下翻一页 b 上翻一页 q 退出)

less:分页查询 (空格 下翻一页 b 上翻一页 q 退出 ↑上翻一行 ↓下翻一行 /…搜索)

cat:列出文件全部内容

tac:逆序列出文件内容(按照行逆序)

head -n 文件名:列出前n行

tail -n 文件名:列出后n行(查日志用)

tail -f install.log ---->只在同一个文件跟踪(文件大于64M会产生新文件)

tail -F install.log---->按照文件名跟踪

wc:打印出多少字节,多少字符,多少行

八、文件编辑命令
vi:编辑文件,如果没有文件就创建文件并编辑

从编辑模式切换到命令模式使用“esc”键,

连续两次大写Z退出命令模式

从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键

a:即append,添加内容,在当前字符后添加文本;

A:在行末添加文本;

i:在当前字符前插入文本;

I:在行首插入文本;

o:在当前行后面插入一空行;

O:在当前行前面插入一空行;

:wq:在命令模式下,执行存盘退出操作;

:w:在命令模式下,执行存盘操作;

:w!:在命令模式下,执行强制存盘操作;

:q:在命令模式下,保存修改执行退出vi操作;

:q!:在命令模式下,不保存修改执行强制退出vi操作;

dd:删除一行

ln 3.txt 4:为3.txt创建链接4(硬链接,相当于复制了一份,删除3.txt后,4依然存在)

ln -s 3.txt 5:为3.txt创建链接5(软链接,相当于快捷方式,删除3.txt后,5不存在)

九、权限:
r是读,w是写,x是可执行

chmod +x 文件名:给文件添加可执行权限(所有用户都加)

chmod -x 文件名:给文件去掉可执行权限(所有用户都去掉)

chmod u+x 文件名:只给自己加权限

chmod g+x 文件名:给同组其他人加权限

chmod o+x 文件名:给其他人加权限

chmod 755 文件名:755转为2进制为111101101对应的为 rwxr-xr-x,从而修改所有用户的权限

十、用户:
useradd 用户名:添加用户(添加之后在home目录下面多一个用户目录)

passwd 用户名:设置密码

groupadd:添加一个组

useradd testuser -g group:在某个组下添加用户

usermod -g group testuser :修改用户所在的组

userdel:删除用户(home下的目录没有删除)

su:切换用户

exit:返回上一目录

chown 用户名 文件名:改变文件的所有者:

为用户配置sudo权限:

用root编辑 vi /etc/sudoers

在文件的如下位置为shuhao添加一行

root ALL=(ALL) ALL

shuhao ALL=(ALL) ALL

然后shuhao用户就可以用sudo来执行系统级别的指令

十一、SSH
两个linux系统远程复制文件:

scp 文件名 用户名@主机ip:目标文件夹

ssh免密登录命令:

第一步:ssh-keygen (生成密钥对,提示时回车即可)

第二步:ssh-copy-id 192.168.1. (复制公钥到目标主机)

linux与其他机器之间共享文件:

在Linux中创建ftp server,通过windows往上传

开启ftp服务:service vsftpd start

停止ftp服务:service vsftpd stop

判断是否开启:ftp localhost

退出服务:bye

查询linux的IP:ifconfig

关闭linux防火墙:service iptables stop

ftp登录:anonymous

设置vsftpd开机自启动:chkconfig vsftpd on

远程管理服务器:通过ssh管理,可以加密

十二、下载命令
wget http://

十三、上传安装包到服务器
上传:如果不cd到指定目录,则上传到当前用户的主目录\root\

可以使用图形化工具,如filezilla
可以使用sftp工具:alt+p调出后,用put命令上传
下载:lcd到本地的目标路径

sftp> lcd d:/

sftp> get /home/jdk-7u45-linux-x64.tar.gz

十四、查看网络端口
netstat -nltp

十五、yum
yum install 全部安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1

yum update 全部更新
yum update package1 更新指定程序包package1

yum list 显示所有已经安装和可以安装的程序包
yum list package1 显示指定程序包安装情况package1

yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers

十六、rpm
直接安装 rpm -ivh 包名

忽略报错 rpm -ivh --force 包名

查询已安装的rpm列表 rpm -qa | grep xx

卸载 rpm -e 包名

强制卸载 rpm -e --nodeps

十七、Shell变量定义

定义变量和常量不能有空格,用到空格时用双引号

系统变量:echo $HOME $PWD $SHELL $USER

查看环境变量:echo $path

显示当前shell中所有变量:set

unset:撤销当前变量

双引号不会脱意,单引号会脱意

export 可以把变量提升为全局变量,如export JAVA_HOME=/usr/local/jdk1.7

source /etc/profile 重新把变量执行一遍

A=ls -la反引号:运行里面的命令,并把结果返回给变量A

A=$(ls -la)等价于反引号

$? 表示上一个命令退出的状态,true是0,false是1

$$表示当前进程编号

$0表示当前脚本名称

$n表示位置变量(n代表数字,n>=1)

$#表示变量的个数,常用语循环

∗ 和 *和 @都表示参数列表

区别:当他们被双引号包含时,”$*”会将所有的参数作为一个整体,以”$1 2... 2... 2...n”的形式输出所有参数;”$@”会将各个参数分开,以”$1”” 2 ” . . . ” 2”...” 2...n”的形式输出所有参数

运算符:
格式:expr m + n 或 $((m+n))

注意:expr运算符之间要有空格

如:a=$(((2+3)*4))

for循环:
第一种

for N in 1 2 3

do

echo $N

done

或 for N in 1 2 3;do echo $N;done

或 for N in {1…3};do echo $N;done

第二种:

for ((i = 0;i <= 5;i ++))

do

echo “welcome $i times”

done

或for((i = 0;i <= 5;i ++));do echo “welcome $i times”;done

While循环
第一种

while true

do

echo aaa

sleep 1

done

第二种

int=1

while((int<=3))

do

echo $int

let int++

done

Case语句
case $1 in

start)

echo “starting”

;;

stop)

echo “stoping”

;;

*)

echo “Usage: {start|stop}”

esac

read -p(提示语句)-n(字符个数)-t(等待时间)

read -p "please input your your name: " c

If判断(注意[]左右两边都要有空格)
If condition

Then

Statements

[ elif condition

Then statements. …]

[ else

statements ]

fi

判断语句(注意condition左右两边都要有空格)
[condition]

非空返回true,可使用$?验证(0位true,>1为false)

[ ] 空返回false

[ condition ] && echo OK || echo not OK

= 字符串比较

-lt 小于

-le 小于等于

-eq 等于

-gt 大于

-ge 大于等于

-ne 不等于

-f 判断目标是否存在并且为正规文件

-s 判断目标是否存在并且不为空

-d 判断目标是否存在并且为目录

-L 判断目标是否存在并且为符号链接

-r 判断目标是否可读

-w 判断目标是否可写

-x 判断目标可否执行

Shell自定义函数
语法

[ function ] funname [()]
{
action;

[ return int; ]

}

Function start() / function start / start()
例如:

#!/bin/bash

fSum 3 2;

function fSum()

{
echo $1,$2;

return $(($1+$2))

}

total=$?;

echo “第一次调用后的返回结果:”$total

fSum 5 7;

total=$?;

echo t o t a l , total, total,?;

return后面跟数值0-255

脚本调试
sh -vx fun.sh

或者在脚本中增加set -x

十七、高级命令行文本处理工具

PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/apps/jdk1.7.0_45/bin:/root/bin

echo $PATH | cut -d ‘:’ -f 5 (将path变量取出,找到用:分割的第5个路径)

echo $PATH | cut -d ‘:’ -f 3,5 (将path变量取出,找到第3和第5个路径)

echo $PATH | cut -d ‘:’ -f 3-5 (将path变量取出,找到第3-5个路径)

echo $PATH | cut -d ‘:’ -f 3- (将path变量取出,找到第3到最后一个路径)

echo $PATH | cut -d ‘:’ -f 1-3,5 (将path变量取出,找到第1到3和第5路径)

例子:只显示/etc/passwd的用户和shell

cat /etc/passwd | cut -d ‘:’ -f 1,7

sort

cat /etc/passwd | sort 默认首字母来排序

cat /etc/passwd | sort -t ‘:’ -k 3 默认用:分割的第3列 首字母来排序

cat /etc/passwd | sort -t ‘:’ -k 3n 默认用:分割的第3列 数字来排序

cat /etc/passwd | sort -t ‘:’ -k 7 -u 去重

uniq 可以取出排序过的文件中的重复行,与sort合用

cat testfile | sort |uniq

cat testfile | sort |uniq -c 统计每行出现的次数

wc

wc -l /etc/passwd 统计行数

wc -w /etc/passwd 统计单词出现次数

wc -m /etc/passwd 统计文件的字符数

sed(物理删除、替换)

删除:d

sed ‘2d’ testfile 删除testfile的第二行

sed ‘2,$d’ testfile 删除testfile的第二行到末尾的所有行

sed ‘$d’ testfile 删除testfile的最后一行

sed '/test/'d testfile 删除testfile的所有包含test的行

替换:s

sed ‘s/test/mytest/g’ testfile 在整行范围内把test替换为mytest,如果没有g标记,则只有每行第一个匹配的test被替换成mytest;

sed -n ‘s/^test/mytest/p’ testfile ^表示以test开头,(-n)选项与p标志一起使用,表示只打印那些发生替换的行,也就是说,如果某一行的开头的test被替换成mytest,就打印他

sed ‘s/^192.168.0.1/&localhost/’ testfile &表示追加,某一行的开头的192.168.0.1被替换成192.168.0.1localhost

sed -n ‘s/loveloveable/\1rs/p’ testfile love被标记为第一组,所有loveable会被替换成lovers,而且被替换的行会被打印

awk

last -n 5 取出最近登录的5个记录

last -n 5 | awk ‘{print $1}’ 取出最近登录的5个记录,并打印出第1列。$0表示所有域,$1表示第1列

cat /etc/passwd | awk -F ‘:’ ‘{print $1}’ -F为指定分隔符为:

cat /etc/passwd | awk -F ‘:’ ‘{print $1"\t"$7}’ "\t"表示tab键,打印出第1列和第7列

十八、可执行文件:
a.sh

#!/bin/bash

while true

do

echo “han shu hao”

sleep 1

done

十九、其他
管道:

ls -rl /etc | more:把上一个命令执行的结果交给下一个命令

wall :把字符警告所有人

wall ‘date’:把结果警告给所有人

重定向:

例如ls > a.txt

把结果放到a.txt中,覆盖原来的结果

例如ls >> a.txt

把结果放到a.txt中,不覆盖原来结果

2> 例如lssss 2>a.txt

把错误结果放到a.txt中

清屏:clear

ctrl+c 或者ctrl+z来终止ping命令的执行。

挂载:mount

mkdir /mnt/cdrom 创建一个目录,用来挂载

将设备/dev/cdrom挂载到挂载点:/mnt/cdrom/中

mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom/

umount /mnt/cdrom 解除挂载

统计文件或文件夹的大小

du -h /mnt/cdrom/Package

du -sh *

service network status 查看指定服务的状态

service network stop 停止指定服务(不要轻易敲)

service network start 启动指定服务

service network restart 重启指定服务

service --status-all 查看系统中所有的后台服务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值