栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

linux常用命令

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux常用命令

VIM(文本编辑器) 一般模式

主要用于删除复制粘贴操作

yy:复制本行 y$:从当前光标到本行结束复制 y^:从光标往前到本行开始复制 yw:复制当前单词

dd:删除本行,其余同复制,d$ d^ dw

p:粘贴 u:撤回 x:剪切

shift+x:退格,删除 shift+R 替换模式

shift+$ 行尾 shift+^:一行开头

复制粘贴前面带数字可以选择几行

编辑模式

aio进入

shfit+o跳转到上一行插入

shift+i跳转到行头插入

shift+A跳转到行尾插入

命令模式

输入:进入,主要用于保存,回滚,退出等

set nu:显示行数

set nonu:关闭行数

q:退出 q!:退出不保存 wq:退出保存 w:保存

s/old/new 替换当前行匹配的第一个old为new

s/old/new/g 替换当前行匹配的所有old为new

%s/old/new/g 全文替换old为new

系统操作

setup,更改启动项

sync,手动保存数据,一般在关机前操作

shutdown,关机,定时关机,后面可跟参数,使用shutdown -c取消关机

poweroff,断电

halt,停机但不断电,可用作维护等

reboot,重启

man ls 指令手册

man 后面跟外部指令可以看到指令的详情描述

man -f 跟内部指令,可以看到指令介绍目录,自行进入观看

help+内部命令可以看到帮助,外部命令+ --help可以看到帮助

ctrl+l推界面,不是清屏 clear 同理,reset清屏

which,查看指令在什么路径下

type查看指令类型

文件目录类 查看,创建,删除,复制文件或目录等

pwd,显示当前工作目录的绝对路径

cd,切换工作目录 cd- 切换到上一个路径 cd…/ 切换到同一目录下的同级路径

ls,列举出当前目录下的所有内容 ls-a 显示全部文件包括隐藏文件

ls-l显示文件的详细信息

mkdir 创建文件夹(目录) rmdir,删除文件夹(目录)

mkdir-p 连着目录一块创建,比如a/b/c,创建3个

删除要嵌套删除,比如要删除a/b/c,就要 a/b/c a/b a/ 或者rmdir-p a/b/c 直接删除全部

touch创建一个空文件,vim也能创建,不过vim如果没有内容并且不保存退出变不会存为文件

cp复制 cp a /home/feavzd/ 把A复制到fevzd目录下

复制整个文件夹要用cp -r,递归复制整个文件夹

rm删除文件 rm-f 强制删除,不询问, rm-r 递归删除整个文件夹

删除当前目录下所有内容 rm .n代表每隔多久执行一次 比如 */10 * * * *代表每隔10分钟执行一次

比如
*/1 * * * * echo "hello world" >> /root/hello 
就是每隔一分钟吧helloworld写入到root下的hello文件里


RPM软件管理工具

rpm-qa 查询所有已安装的rpm软件包 ,一般都是使用rpm-qa |grep rpm 比如要查询火狐浏览器 rpm -qa | grep firefox

rpm -qi 查询安装软件详细信息 rpm -e 卸载安装包 rpm --nodeps,不检查依赖便卸载软件包 一般不推荐使用

rpm -ivh rpm包全名 -i install 安装功能 -v 显示详细信息 -h 进度条 --nodeps 安装前不检查依赖,不推荐

yum软件包管理器

yum,基于rpm的软件包管理器,可以自动处理依赖关系,一次安装所有依赖的软件包,不用一次次的下载

yum 选项 参数 -y对所有提问都回答yes

install 安装rpm软件包 update更新软件包 check-update检查是否有可用的更新 remove移除指定的软件包 list 显示所有软件包信息 clean清理yum过期的缓存 deplist 显示yum软件包的所有依赖关系

Shell脚本

shell是一个命令行解释器,接收用户和程序的命令,然后调用操作系统内核

可以先创建一个以.sh结尾的文件,然后vim编辑,输入#!/bin/bash 之后输入命令

保存退出后使用sh或者bash +文件相对或者绝对路径打开

比如 sh ./info.sh 或者 bash /home/用户名/info.sh

也可以直接输入绝对路径执行脚本,但要给执行权限

变量

系统预定义变量:$HOME $PWD $USER $SHELL等

自定义变量 例如 info=a 注意中间没有空格,如果要输入带空格的内容可以带引号"" 之后可以echo 加$ 加变量名查看

自定义变量可以由字母数字下户线组成,不能以数字开头,环境变量名建议大写,等号两侧不能有空格

export 变量名升级为全局变量

在脚本里输入echo变量可以输出

变量赋值默认是字符串,如果想要进行计算需要加 符 号 和 两 个 小 括 号 ( ( ) ) 或 者 符号和两个小括号(())或者 符号和两个小括号(())或者加一对中括号[]

readonly a=10则定义该变量为只读变量,不能更改

特殊变量

$n n代表数字,比如$1就代表第一个参数 0 代 表 该 脚 本 名 称 , 10 以 上 的 参 数 需 要 用 大 括 号 , 比 如 0代表该脚本名称,10以上的参数需要用大括号,比如 0代表该脚本名称,10以上的参数需要用大括号,比如{10},主要在脚本里编写,然后在用命令启动脚本时后面跟上参数

$#获取输入参数的个数,常用于循环判断参数的个数是否正确以及加强脚本的健壮性

$* 代表命令行中所有的参数,*把所有的参数看成一个整体

$@ 也代表命令行中所有的参数,不过@把每个参数区分对待

$? 最后一次执行的命令的返回状态,如果这个变量为0,证明上一个命令正确执行,如果这个变量不是0,则证明上一个命令执行不正确,具体返回数字由命令自己决定

expr 计算 要在计算符两边加空格 如果是乘号需要 *

直接使用 ( ( ) ) 或 者 (())或者 (())或者[] 即可 例如在shell脚本里输入

#!/bin/bash

echo Num:$[$1*$2] 然后在外面输入两个数字就能计算出他们的结果


语法条件判断

一般用test condition 加echo $?查看,前者用于查看条件判断,后者用于查看结果,如果是0则正确执行 比如a=100,test $a=100 echo $? 最后结果就是0

或者直接使用中括号[ condition ] 注意括号两边要有空格。这个条件非空即true,如果里面随便写东西也是true,不写东西才是false

常用判断条件

-eq 等于 -ne 不等于 -lt 小于 -le 小于等于 -gt 大于 -ge 大于等于

如果是字符串比较,=判断,!=不等于

按文件权限判断

-r 有读的权限,-w 有写的权限 -x有执行的权限

按文件类型

-e文件存在 -f 文件存在并且是个常规的文件(file) -d文件存在并且是一个目录(directory)

多条件判断,如果是要两个条件都满足可以使用&& 如果其中一个条件满足可以使用 || 比如 [ abc ] && echo ok || echo notok 结果就会输出ok  [   ] && echo ok || echo notok 结果就会输出notok


流程控制

than 和分号;

单分支

if [条件判断式] 
then
    程序
fi
或者 if [条件判断式]; then echo ok; fi

用例1:
a=9
if [ $a -le 10 ]; then echo ok; fi
ok

用例2:
#!/bin/bash
if [ "$1"x = "feavzd"x ]
then
    echo "welcome,feavzd"
fi

之后调用脚本并传入用户名便可,x是为了避免空字符串

多分支的话也可以用之前使用过的&&和 || 如果在一个括号内可以使用-a (and) 和-o (or) 和之前两个用法相同

比如

if [ $a -gt 18 ] && [ $a -lt 40]; then echo ok; fi
这样就是判断他是否大于18并且小于40
如果要用一个中括号完成也可以这样
if [ $a -gt 18 -a $a -lt 40]; then echo ok; fi

如果一条判断两个结果可以使用else

比如
 if [ "$2"x -lt "18"x ]
 then
         echo "未成年人"
 else
         echo "成年人"
 fi
判断传入的第二个参数是否小于18,是就是未成年人,否便是成年人

如果是多分支多判断结果可以使用elif,最后使用else

if [???]
then
	echo ???
elif [???]
then
	echo ???
else
	echo ???
fi

case语句

case $变量 in
"值1")
	如果变量的值等于值1,则执行程序1
;;
"值2")
	如果变量的值等于值2,则执行程序2
*)
	如果变量的值都不是以上的值,则执行此程序
;;
esac
双分号相当于break
最后的 * 相当于是default

for循环

基本语法

for ((初始值;循环控制条件;变量变化))
do
	程序
done

实例
for ((i=1; i<=$1; i++))
do
	sum=$[ $sum+$i ]
done
echo $sum
比如输入的数字是10,则计算1+2+3一直加到10的和

基本语法2

for 变量 in 值1 值2 值3; do echo $变量名 done
会输出值123
比如
for a in aaa bbb ccc; do echo $a; done

也可以使用大括号加省略号
for i in {1..100}; do sum=$[$sum+$i]; done; echo $sum

while循环

while [条件判断式]
do
	程序
done
实例

i=1
while [ $i -le 100 ]
do
	sum=$[$sum+$i]
	i=$[$i+1]
done
echo $sum
也是1-100的和
可以使用let,之后就可以使用java中常用的语言,比如i++,i+=这种
读取控制台输入

read 选项 参数 -p指定读取值时的提示符 -t 指定读取值等待的时间秒,如果不加-t表示一直等待

参数,指定读取值的变量名

read -t 10 -p "请输入姓名:" name
echo "welcome,$name"
自定义函数

函数就是一个轻量级的脚本

脚本就是复杂化的函数

调用函数的地方之前必须先声明,shell脚本是逐行运行,不会像其他语言一样先编译

函数返回值只能通过$?系统变量获得,可以显示加return返回,如果不加,将以最后一条命令运行结果,作为返回值,return后跟数值n(0-255) 0为成功,1-255表示执行错误

[function] 方法名()
{
	action
	[return int;]
}
实例
function sum(){
	s=$[$1+$2]
	echo "和为"$s 或者 直接echo $s
}
read -p "请输入第一个数字" a
read -p "请输入第二个数字" b
sum $a $b
或者
sum=$(sum $a $b)
echo "和为" $sum
文本处理工具

cut 选项参数 filename -f列号,提取第几行 -d 分隔符,默认是制表符t -c 按字符进行切割,后加加n表示取第几列,比如-c 1

比如
cut -d "" -f 1 cut.txt 就是提取第一列

awk 可以把文件逐行读入,以空格为默认分隔符把每行切片,切开的部分再进行分析处理,可以同时处理行和列,功能比较强大

-f指定输入文件分隔符 -v赋值一个用户定义变量

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号