linux命令

一些可能常用的linux命令和简单的Shell语言
1: 关机 reboot poweroff
2: 相对路径和绝对路径
3: cd 切换路径 cd /usr/bin(相对路径和绝对路径) cd …(上一级目录) cd -(返回上一次操作路径,打印上次路径)
4: ls 查看目录下面都有哪些文件夹和文件
ls(查看当前路径下面的) ls /usr/bin ls -l (使用详细信息形式打印)== ll ls -a(显示所有文件,包括隐藏文件) ls -l -a == ls -la
5: pwd 显示当前位置 pwd == pwd -L(显示快捷方式的位置) pwd -P (显示连接到的位置)
6: mkdir 创建文件夹 mkdir a 创建文件夹
mkdir -p b/c/d 递归创建多层文件夹
7: touch 创建空文件 touch a.txt 创建a.txt
touch a.txt b.txt 创建a.txt 和 b.txt
touch “a b.txt” 创建a b.txt文件
8: cp拷贝文件 cp 拷贝哪个文件 拷贝到哪里
cp -r 源文件(文件夹) 目的路径 递归的copy文件
9: mv 移动文件 mv 源文件(文件夹) 目的路径
10:
rm 删除文件 rm 文件 rm -rf 文件或者文件夹(慎用)
-----查看文件--------
11:
echo “hello” 打印hello
echo “hello” >> a.txt 追加到文件中
echo “hello” > a.txt 覆盖文件
cat 查看所有内容 cat -n 文件 -n显示行号
more 分页查看文档 enter 行翻页
空格 页翻页
head 查看前n行 head a.txt 查看前10行 head -20 a.txt 查看前20行
tail 查看后n行 tail a.txt 查看后10行 tail -20 a.txt 查看后20行
tail 动态的监控文件 tail -F a.txt 监控到a.txt文件的追加内容
12:ln 创建快捷方式
ln -s 源文件 创建的快捷方式 软连接(windows相似)
ln 源文件 创建的快捷方式 硬链接(保存数据)
13:帮助命令
man man 命令
help 命令 help | -help | --help | h
14:vi(vim)
vi filename -----> a i o 进入编辑模式—>esc----->:wq
:q!(不保存退出)
:set nu(设置行号)
:set nonu(取消行)
dd(删除行)。。。
如果编辑
强制被关闭,产生一个.XXXX.swp 删除就ok了
15:find 查找文件
find /范围 -name 名字(关键词) ?占用一个位置 *占用多个位置
查找原则:尽可能的缩小咋找范围
16:grep 查找内容的
grep -c -i -n -v “key” filename c 次数 i 忽略大小写 n 显示匹配到的行号 v 反选
17:which 查找命令在哪里
which 命令
18:whereis 查找命令在哪里
whereis 命令 (显示命令在哪里,帮助文档在哪里,配置文件在哪里)
19:zip压缩文件和加压文件
zip -r xxx.zip 路径 -r递归压缩,对于文件夹不添加-r的时候,压缩的是空文件
解压使用unzip xxx.zip
20:tar解压和压缩
压缩: tar -zcvf xxx.tar.gz 路径
解压: tar -zxvf xxx.tar.gz -C 解压到的路径
21:网络修改
vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除uuid HWADDR

ONBOOT=yes #开机自启
BOOTPROTO=static #使用静态的ip
IPADDR=192.168.200.180 #IP地址   哪一个网段和网关可以通过虚拟网络编辑器来查看
NETMASK=255.255.255.0  #子网掩码
GATEWAY=192.168.200.2  #通过虚拟网络编辑器来查看
DNS1=114.114.114.114
DNS2=192.168.200.2


重启网络生效
service network restart

1:解压文件
如果有自带的jdk需要删除
rpm -qa | grep jdk 搜索数来安装的jdk
rpm -e xxxxyyyy --nodeps

tar -zxvf jdkxxx.tar.gz -C /usr/local/
配置path环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/jdkxxx...
export PATH=$PATH:$JAVA_HOME/bin

使环境变量生效
source /etc/profile
???原来的jdk没有删除

2:ping
测试网络连通性
3:查看当前ip
ifconfig(windows ipconfig)
4:端口占用情况
netstat -anltp | grep “key”
5:hostname(主机名)
临时修改 hostname bigdata01
永久的修改 vi /etc/sysconfig/network
6:修改主机名ip映射关系
vi /etc/hosts (c:/windows/system32/drivers/etc/hosts)

7:进程ps 查看系统中有哪些进程
ps aux | grep key
ps -ef | grep key
jps java进程
8:pstree 进程树
p进入编辑模式— 显示进程PID
-u 显示进程的所属用户
9:进程
kill -9 pid (常用 杀死进程)
kill -1 进程号(重启进程)
10:top,查看系统健康状况,能够显示哪些进程占用资源比较多
load avg 单核的话,1正常,1.5过高。双核double,以此类推
11:用户管理
useradd 用户名
passwd 用户名
su 用户名 (切换用户)
userdel -r 用户名 -r 删除用户的时候将家目录也删除掉
12:磁盘空间查看
df 查看磁盘大小 -h 易读的形式查看
du 查看文件或者文件夹所占用的大小 du -sh /etc
13:free 查看内存大小的
free -h 使用易读的形式查看的
14:防火墙(防端口的)
单次关闭 service iptables (status | start | stop | restart)
开机自启 chkconfig iptables (on | off)
15:权限模块
权限划分 -rwxrw-r-- ====> 764 rwx(可读可写可执行) ugo(u当前用户,g所属组,o其他用户)
改变文件的权限
chmod 777 a.txt chmod u+x a.txt -R 修改文件权限
chown user:group a.txt 修改文件所有者
16:rpm+yum
rpm -ivh xxx.rpm 安装文件
rpm -qa | grep “key” 搜索安装的全名
rpm -e xxxyyy --nodeps 强制卸载
yum 安装的就是rpm
yum install -y 需要安装的名字 安装程序
yum remove -y 名字 删除程序
查询
yum list installed 查询出来安装过的程序
yum list 查询所有可用软件包列表
yum search 关键字 搜索服务器上所有和关键字相关的包
可以通过yum info 关键字 来查找包名
https://blog.csdn.net/HANLIPENGHANLIPENG/article/details/77445045

17: 克隆
克隆之前:eth0 uuid hwaddr删之
克隆 删除eth0 将eth1修改为eth0 vi /etc/udev/rules.d/70----n
修改ip vi /etc/sysconfig/network-sxxx/ifxx-eth0
reboot 关机重启
修改hosts 修改hostname
18.ssh
ssh客户端 yum install openssh-clients
ssh登陆,scp发送文件
scp -r /etc/hosts bigdata3803:/etc/

19.免密登陆
ssh-keygen -t rsa 生成公钥和私钥
ssh-copy-id -i /root/.ssh/id_rsa.pub bigdata3803 为需要进行免密的机器进行发送公钥(不要忘了给自己发)

Shell语言
Shell也是一门编程语言,即shell脚本,shell是解释执行的脚本语言,可直接调用linux命令。 .java -> .class
1:时间 date
date -s “2018-10-26 10:15” 设置时间
date +%Y%m%d 按照指定格式显示日期
date -d “-1 day” +%Y%m%d 显示前一天的日期
mkdir date +%Y%m%d 使用时间创建文件夹夹
2:网络校验时间
yum install -y ntp
ntpdate 0.asia.pool.ntp.org
3:变量分类
可以通过set命令查看系统中存在的所有变量
自定义变量(临时变量) name=xiaoming
永久变量 写到/etc/profile 当前用户才能访问的变量 $HOME/.bash_profile
预定义变量 是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。
4:取变量
$name 当变量名字有混淆的时候可以使用 ${name}

5:执行方式
1):bash(sh) 文件位置
2):chmod 777 文件位置 chmod u+x 文件位置
3):source 文件的位置
4): . 执行,不开辟新的进程
6:注释
#是注释
7:变量向下传递 export
变量向上传递 source
8:单双引号的区别
单引号有脱意 (特殊的含义被脱去 $name 按照原样输出)
双引号 有特殊含义的字符不会受影响
9:变量规则
等号两边不能有空格
10:将一个命令的执行结果赋给变量
A=ls -la mkdir data +%Y%m%d
11:位置参数变量 主要用来向脚本中传递参数或数据,变量名不能自定义,变量作用固定。
$n n为数字,$0代表命令本身,$1- 9 代 表 第 一 到 第 9 个 参 数 , 十 以 上 的 参 数 需 要 用 大 括 号 包 含 , 如 9代表第一到第9个参数,十以上的参数需要用大括号包含,如 99,{10}。
$* 代表命令行中所有的参数,把所有的参数看成一个整体。以"$1 $2 … $n"的形式输出所有参数
$@ 代表命令行中的所有参数,把每个参数区分对待。以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数
$# 代表命令行中所有参数的个数。添加到shell的参数个数
$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号" “包含时,都以”$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数
当它们被双引号" “包含时,”$*" 会将所有的参数作为一个整体,以"$1 $2 … n " 的 形 式 输 出 所 有 参 数 ; " n"的形式输出所有参数;" n""@" 会将各个参数分开,以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数
12:预定义变量
$? 执行上一个命令的返回值 执行成功,返回0,执行失败,返回非0(具体数字由命令决定)
$$ 当前进程的进程号(PID),即当前脚本执行时生成的进程号
KaTeX parse error: Expected 'EOF', got '#' at position 526: … 15.vi创建文件 首行 #̲!/bin/bash ===…num1+$num2
echo s u m 格 式 : e x p r m + n 或 sum 格式 :expr m + n 或 sum:exprm+n((m+n)) 注意expr运算符间要有空格
expr命令:对整数型变量进行算术运算(注意:运算符前后必须要有空格)
17:字符串测试:
test str1 == str2 测试字符串是否相等 =
test str1 != str2 测试字符串是否不相等
test str1 测试字符串是否不为空
test -n str1 测试字符串是否不为空,不为空,true,false
test -z str1 测试字符串是否为空
18:整数测试:
test int1 -eq int2 测试整数是否相等 equals
test int1 -ge int2 测试int1是否>=int2
test int1 -gt int2 测试int1是否>int2
test int1 -le int2 测试int1是否<=int2
test int1 -lt int2 测试int1是否<int2
test int1 -ne int2 测试整数是否不相等
-gt表示greater than大于的意思,-le表示less equal表示小于等于。
19:文件测试:
test -d file 指定文件是否目录
test –e file 文件是否存在 exists
test -f file 指定文件是否常规文件
test –L File 文件存在并且是一个符号链接
test -r file 指定文件是否可读
test -w file 指定文件是否可写
test -x file 指定文件是否可执行
20:多重条件测试:
条件1 –a 条件2 逻辑与 两个都成立,则为真
条件1 –o 条件2 逻辑或 只要有一个为真,则为真
! 条件 逻辑非 取反
eg:
num=520
[ -n “ n u m ” – a “ num” –a “ numanum” –ge 520 ] && echo “marry you” || echo “go on”
age=20
pathname=outlog
[ ! -d“$ pathname”] && echo usable || echo used
21:if/else命令
1,单分支if条件语句
if [ 条件判断式 ]
then
程序
fi
或者
if [ 条件判断式 ] ; then
程序
fi
单分支条件语句需要注意几个点
if语句使用fi结尾,和一般语言使用大括号结尾不同。
[ 条件判断式 ] 就是使用test命令判断,所以中括号和条件判断式之间必须有空格
then后面跟符号条件之后执行的程序,可以放在[]之后,用“;”分割,也可以换行写入,就不需要";"了。
2,多分支if条件语句
if [ 条件判断式1 ]
then
当条件判断式1成立时,执行程序1
elif [ 条件判断式2 ]
then
当条件判断式2成立时,执行程序2
…省略更多条件
else
当所有条件都不成立时,最后执行此程序
fi
22:case命令
case命令是一个多分支的if/else命令,case变量的值用来匹配value1,value2,value3等等。
匹配到后则执行跟在后面的命令直到遇到双分号为止(;?
case命令以esac作为终止符。
格式
CMD=$1
case $CMD in
start)
echo “starting”
;;
stop)
echo “stoping”
;;
*)
echo "Usage: {start|stop} “
esac
23: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
24:while循环
第一种
while expression
do
command

done
eg:求1-10 各个数的平方和

	i=1
	while((i<=10))
	do 
		sum=$(( $i * $i))
		echo $sum
		i=$(($i + 1))
	done

	i=1
	while((i<=10))
	do
		sum=$(( $i * $i ))
		echo $sum
		let i++
	done

25:自定义函数

function start(){
	echo "starting"
}
function stop {
	echo "stopping"
}
restart() {
	echo "restarting"
}
注意:
如果函数名后没有(),在函数名和{ 之间,必须要有空格以示区分。
函数返回值,只能通过$? 系统变量获得,可以显示加:return 返回值
如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)

26:awk和sed
cut [选项] 文件名 默认分割符是制表符
选项:
-f 列号: 提取第几列
-d 分隔符: 按照指定分隔符分割列
27:定时器
crontab命令格式
作用:用于生成cron进程所需要的crontab文件
crontab的命令格式
# crontab -e
crontab文件格式
minute hour day-of-month month-of-year day-of-week commands
分< >时< >日< >月< >星期< >要运行的命令 < >表示空格
Minute 一小时中的哪一分钟 [0~59]
hour 一天中的哪个小时 [0~23]
day-of-month 一月中的哪一天 [1~31]
month-of-year 一年中的哪一月 [1~12]
day-of-week 一周中的哪一天 [0~6] 0表示星期天
commands 执行的命令
书写注意事项
1,全都不能为空,必须填入,不知道的值使用通配符*表示任何时间
2,每个时间字段都可以指定多个值,不连续的值用,间隔,连续的值用-间隔。
3,命令应该给出绝对路径
4,用户必须具有运行所对应的命令或程序的权限

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值