Linux基础

这篇博客详细介绍了Linux系统中常用的操作命令,包括用户和用户组管理、系统管理、文件管理、文件权限、文件查看、文件压缩、网络与磁盘管理、软件安装等方面。同时,还深入讲解了Shell脚本的基础知识,如变量定义、条件语句、循环语句和函数等。最后,提供了安装JDK1.8的步骤,并给出了一些实战示例,如查看占用端口的进程和查询进程信息。
摘要由CSDN通过智能技术生成

1 Linux

1.1 常用命令

1.1.1 用户和用户组管理

su 用户名 #切换到用户
useradd 用户名 #添加用户
passwd  密码 #设置密码
usermod 用户名 #修改用户名
userdel -rf 用户名 #强制删除用户和相关的所有文件

groupadd 用户组 #新增用户组
groupmod 用户组 #修改用户组
groupdel 用户组 #删除用户组
groups 用户名 #查询用户所属组
gpasswd -a 用户名 用户组 #将用户添加到组
grep '用户组' /etc/group #查看用户组下所有用户

1.1.2 系统管理

sudo 指令 #以root的身份执行指令
top #实时显示进程信息
ps #显示当前进程信息
kill -9 pid #强制杀死进程
shudown #关机
reboot #重启
who -H #显示当前登录系统的用户和标题信息
timedatectl status #显示系统当前时间 
timedatectl set-ntp true #同步系统时间到NTP服务器

1.1.3 文件管理

ls -al #列出所有文件,包含隐藏和详细信息
pwd #显示当前目录
cd #切换到home目录,相当于cd /root或者cd /home/当前用户名
cd .. #切换到上级目录
cd /usr/share/doc #切换到绝对目录
cd ./temp #切换到相对目录
mkdir -p aaa/bbb #创建多级目录
rmdir -p aaa/bbb #删除多级空目录
cp –r aaa/* ccc #复制aaa下的全部文件和目录到ccc,不加-r会略过目录
mv 原文件/目录名 新文件/目录名 #重命名/移动
rm -rf 文件/目录名 #强制删除目录或文件

1.1.4 文件权限管理

输入ls -l后,每个文件的属性由左边第一部分的10个字符来确定
第0位确定文件类型:

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件
  • 若是[ l ]则表示为链接文档(link file)
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置)
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

第1-3位确定属主(该文件的所有者)拥有该文件的权限
第4-6位确定属组(所有者的同组用户)拥有该文件的权限
第7-9位确定其他用户拥有该文件的权限
r代表可读(read), w代表可写(write),x代表可执行(execute),-代表没有权限

chgrp 属组 文件 #更改文件的属组
chown 属主:属组 文件 #更改文件的属主(属组也可以)
chmod -R 770 文件 #递归设置文件权限[r]4 [w]2 [x]1 [-]0
chmod -R u=rwx,g=rx,o=r 文件 #递归设置文件权限user group others,此外a代表all

1.1.5 文件查看

touch 文件名 #创建新文件,touch test_{1..10}.txt批量创建
stat 文件名 #查看文件信息
vim 文件名 #打开文件进入命令模式,按i进入编辑模式,再按Esc回到命令模式,按:wq强制保存退出,vim test.txt +6可以直接定位到第6行
cat -n 文件名 #查看小文件内容,-n表示加入行号
less 文件名 #查看大文件内容
head 文件名 #查看文件的前一部分
tail -3f 文件名 #动态查看文件最后3行,tail -nf log.txt看日志
grep -n 关键字 文件名 #根据关键字搜索行,ps -ef | grep -c sshd查找指定进程个数
echo 字符串 #将字符串输出到控制台,> 文件名表示覆盖,>> 文件名表示追加
ln -s 目标文件绝对路径 快捷方式路径 #给目标文件增加一个软链接
find 指定目录 指定条件 指定内容 #find . -name "*.gz"查找当前目录名字为*.gz

1.1.6 文件压缩

gzip 文件名 #压缩文件,扩展名为.gz
gzip -d 文件名 #解压文件,或者使用gunzip
zip 文件名 #压缩文件,扩展名为.zip
unzip 文件名 #解压文件

1.1.7 网络与磁盘管理

ifconfig #显示激活的网卡信息
ifconfig ens37 down/up #关闭/开启网卡
ifconfig ens37 192.168.23.133 netmask 255.255.255.0 #配置ip地址和子网掩码
ping www.baidu.com #检测是否与主机连通
netstat #显示网络状态

lsblk #列出所有块设备
df -h #换算后显示磁盘使用情况
mount auto /dev/cdrom 文件名 #挂载CD/DVD到文件

1.1.8 软件安装

yum install 软件名 #安装软件
yum update 软件名
yum remove 软件名
yum clean all #清除缓存目录下的软件包及旧的headers

1.2 Shell

#!/bin/bash 
:<<!
这是多行注释,上面指定脚本解释器
!
number=10 #定义变量 
String="abc" #定义字符串变量
date=$(date) #定义命令变量
readonly myUrl=10 #定义只读变量

echo "${number}" #标准的使用变量的方式,简略echo ${number}
unset variable_name #删除变量

arr=(1 2 3 4 5) #定义数组
arr[0]=1 #给数组赋值
${arr[0]} #获取元素
${#arr[*]} #获取长度

expr $a + $b #算术运算符
((a++)) #自增/减运算符
[ $a = $b ] #字符串运算符
[ $a -ep $b ] #关系运算符
[ $a -lt 20 -o $b -gt 100] #布尔运算符or
[[ true && true ]] #逻辑运算符&&
$? #获取上一条语句的执行结果

#if语句,查找一个进程,如果存在,打印true,不存在打印false
if [$(ps -ef | grep -c "ssh") -gt 1 ]
then
		echo "true"
else
		echo "false"
fi

#case选择语句
v = "czbk"
case v in
	"czbk")
		echo "传智播客"
	;;
	"baidu")
		echo "百度"
	;;
esac

#for循环语句
for loop in A B C
do
	echo $loop
done

#while循环语句
a=1
while[ "${a}" -le 10 ]
do
	echo "${a}"
	((a++))
done

#函数
function(){
	echo "接收到参数$1$2"
	return $(($1 + $2))
}
function 10 20
echo $?

1.3 Linux安装JDK1.8

yum install -y java-1.8.0-openjdk-devel.x86_64 

vim /etc/profile

JAVA_HOME=/home/java/jdk1.8.0_131
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export JRE_HOME
export PATH
export CLASSPATH

source /etc/profile

1.4 实战

netstat -netlp | grep 端口号 #查看占用端口的进程id
ps -ef | grep 进程名 #根据进程名查询进程详细信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值