linux

Linux目录结构

linux中一切皆文件

/bin 存放着linux经常使用的目录

/boot 存放着linux核心文件

/dev存放着linux的外部设备

/etc 存放配置文件

/home 每个用户都有自己的home

/lib存放着系统最基本的动态链接库

/mnt 系统提供挂载别的文件系统

/opt下载软件文件夹

/var 存放日志文件

/etc/passwd:存储用户信息

/etc/shadow:口令配置文件

etc/group:存储组信息

常用指令

添加用户:useradd yb

设置密码:passwd yb

添加组:groupadd jdzxy --这里一定先要有jdzxy

给用户指定组:usermod -g jdzxy yb

用户基本信息:id yb

如何重置root用户密码

内网地址:ifconfig

外网地址:curl ifconfig.me

帮助指令

man ls --可以查看ls的用法

在linux下隐藏文件是以 . 开头

文件目录指令

mkdir -p 创建多级目录

rmdir [目录名称] 移除目录

rm -rf [目录名称] 递归删除

cp [选项] source dest

-r:递归复制整个文件夹

\cp -r source dest 强制覆盖

mv [源路径] [目标路径] 移动文件 相当于剪切

查看文本指令汇总

cat -n a.txt 查看文件

more 查看文件 entry 下一行 空格下一页

less 指令动态加载 /JAVA 全局搜索

echo $HOSTNAME输出主机名

head从头开始查询文本

tail显示文本后面几行

tail -f监控某个文件

"> 覆盖 >

">> :追加 >>

ln -s 目标目录 链接目录

history -n 查看历史指令

搜索查找指令

find 目录 选项

-name 文件名

-user 用户

-size 大小 +n (大于) -n(小于) n(等于) find / -size 300M

located --定位文件的路径

先执行updatedb

which ls --查看ls指令的路径

grep 搜索 -i 忽略大小写 -n 显示行号

tar -zcvf解压

tar -zxvf打包

Linux cpu飙高怎么办

  1. 确定cpu占用率高的进程ID - PID
    在Linux下可以使用 jps -v 或者 top 命令直接查看。

  2. 查看进程中cpu占用率高的线程ID - TID
    执行top -H -p [PID],查看结果

  3. 将线程ID - TID 转换成16进制 - XTID
    执行printf “%x\n” [TID],输出结果记为 XTID

  4. 将进程中的所有线程输出到文件
    执行命令jstack [PID] >> jstack.txt。

  5. 在输出文件中查找对应的线程ID
    执行命令cat jstack.txt | grep -i [XTID]。

centos网络连接方式

桥接模式:同一个网段的虚拟机可以进行通信

NAT模式:虚拟系统可以和外部通信

主机模式:独立系统

Linux组管理权限管理

修改文件所有者 chown james 2.txt

修改文件所有组 chngrp jdztcdx 2.txt

Linux的权限

0-9位说明

第一位:

-普通文件

l:软连接

d:目录

c:字符设备 鼠标

b:块设备 硬盘

修改文件权限:u 所有者 g所有组 o其他人 a所有人

chmod 777 最大权限

chown root:root 2.txt -R递归

练习1

创建警察 police 劫匪 bandit组,在police添加jack jam bandit中添加 xh xl

[root@localhost /]# groupadd police
[root@localhost /]# groupadd bandit
//新建用户并分配组

[root@localhost /]# useradd jack -g police
[root@localhost /]# id jack
uid=1001(jack) gid=1003(police) 组=1003(police)
[root@localhost /]# useradd jam -g police
[root@localhost /]# id jam
uid=1002(jam) gid=1003(police) 组=1003(police)

jam用户创建一个test文件,用户可读写 本组用户可读 其他组不能操作

[jam@localhost ~]$ vim test.txt
[jam@localhost ~]$ ls
test.txt
[jam@localhost ~]$ ll
总用量 4
-rw-r–r–. 1 jam police 25 8月 11 14:27 test.txt
[jam@localhost ~]$ chmod 640 test.xtt
chmod: 无法访问"test.xtt": 没有那个文件或目录
[jam@localhost ~]$ chmod 640 test.txt
[jam@localhost ~]$ ll
总用量 4
-rw-r-----. 1 jam police 25 8月 11 14:27 test.txt

目录 rwx 权限

x: 可以进入到该目,cd 到该目录
r: 是否可以在目录下执行 ll 读取目录下的数据
w: 执行更改 ,删除操作

定时任务 crontab

-e 编辑自己的定时任务

-l 查询定时任务

-r删除定时任务

第一个* 一小时中的第几分钟

每隔一分钟将 etc文件夹信息覆盖进 crontab.txt

*/1 * * * * ls -l /etc > /crontab.txt

编写脚本每隔一分钟将日期 日历写入文件夹

[root@localhost /]# vi my.sh

date >> /mydate

cal >> /mydate

[root@localhost /]# chmod 700 my.sh
[root@localhost /]# ./my.sh
[root@localhost /]# cat mydate

磁盘分区 磁盘挂载

网络

进程管理

ps -aux

ps -ef 全格式显示进程

查看远程登陆的用户 ps -ef|grep sshd

强制下线 kill -9 pid

杀死远程登陆进程则无法远程登陆需要重启 bin/systemctl start sshd.service

远程登陆 ssh root@ip

killall 进程名

pstree

-p :显示进程pid

-u:显示进程所有用户

服务管理

service network (start|restart|reload|stop|status)

chkconfig

–list 列出服务

systemctl

查看服务开机自启动状态 systemctl list-unit-files

查看某服务是否开机自启动 systemctl is-enabled crond.service

设置开机自启动 systemctl enable 服务名

systemctl服务所在位置 ls -l /usr/lib/systemd/system

开启防火墙

开启端口 firewall-cmd --permanent --add-port=8080/tcp

关闭端口 firewall-cmd --permanent --remove-port=8080/tcp

查看开放端口 firewall-cmd --permanent --list-ports

重载之后才能生效 firewall-cmd --reload

远程测试端口是否能够通信

[root@localhost /]# telnet 192.168.159.201 9092

动态监控系统top

top

-p 监控某个进程的状态

监控指定用户:

top

u

jam

显示jam用户的进程信息

监控网络状态

netstat

-an 按一定顺序输出

-p显示哪个进程在调用

rpm yum

yum 相当于 setup

rpm -qa查看当前系统安装的软件

rpm -q 软件名查询软件是否安装

rpm -qi 查询软件包信息

rpm -ql查询软件包中文件

rpm -qf 路径 查询文件所属软件包

删除软件包:rmp -e 软件包

-nodeps:强制删除

安装rpm

rpm -ivh 包

i安装

v提示

h进度条

shell编程

#!/bin/bash

export 让变量变成全局变量

source 加载改文件立即生效

echo 输出环境变量

:<<!多行注释!

A=“abcd”

输出A

echo $A;

B=date

执行date并且输出

echo $B
~

位置参数变量

[root@myPc /]# ./position.sh 1 2 3 4
1 echo “$1”
2 echo “ 2 " 1234 e c h o " 2" 1 2 3 4 echo " 2"1234echo"@”
1 2 3 4 echo “ ∗ " 4 e c h o " *" 4 echo " "4echo"@”

预定义变量

$$ 当前进程的pid

$! 后台运行的最后一个进程的pid

$?最后一次执行命令的状态 如果为0说明命令执行正确

echo “当前进程pid=$$”

echo “最后一个进程的pid=$!”

echo “最后执行指令返回值 i=$?”

运算符

计算(2+3)*4

A=$(((2+3)*4))

echo $A

B=$[(2+3)*4]

echo $B

C=expr 2 + 3记得 2 + 3中间有空格

echo $C

D=expr $C \* 4

echo $D

E=expr 2 + 2

echo $E
~

求出命令行的和 20 50

F=$(($1+$2))

echo $F

G=$[$1+$2]

echo $G

H=expr $1 + $2

echo $H

条件判断

条件

1 =字符串比较

2整数比较

-ge >=

-gt >

-lt <

-le <=

-ne !=

-eq 等于

3按权限判断

-r

-w

-x

4按照文件类型

-f

-e

-d

if条件

if [ 条件 ] 条件和中括号之间必须有空格

then

fi

多分支

if

then

elif

then

fi

编写程序如果输入大于60则输出及格了小于输出不及格

#! /bin/bash

if [ $1 -ge 60 ]

then

echo “及格了”

elif [ $1 -lt 60 ]

then

echo “没及格”

fi

case语句

case $变量 in “1”)

echo “1”

;;

“*”)

echo “other”

;;

esac

例如:

case $1 in
“1”)
echo “星期一”
;;
“2”)
echo “星期二”
;;
)
echo "
"
;;
esac

for循环

当 $* 和 $@ 不被双引号" "包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔。

但是当它们被双引号" "包含时,就会有区别了:

  • "$*"会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。
  • "$@"仍然将每个参数都看作一份数据,彼此之间是独立的。

语法:for i in 变量1 变量2 变量3

​ do

​ 代码

​ done

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

do

done

输出1-100的和

for((i=1;i<=100;i++))
do
SUM= [ [ [SUM+$i]
done
echo “1-100的和是 $SUM”

While循环

while[ 条件 ] 条件,while 和[]之间必须有空格

do

程序

done

从命令行输入n统计1-n的和

SUM=0
k=0
while [ $k -le 1 ] d o S U M = 1 ] do SUM= 1]doSUM=[ S U M + SUM+ SUM+k]
k= [ [ [k+1]
done
echo “运算结果是 $SUM”
~

_read获取输入

read

-p 指定读取值的提示符

-t 指定读取值的等待时间 s

read -p “pls input a num =” NUM1
echo “the num input is $NUM1”
echo “====================”

read -t 10 -p “请输入默认十秒钟关闭” NUM1
echo “打印你的输入 $NUM1”
~

系统函数

[root@myPc shell]# basename /shell/2.txt
2.txt
[root@myPc shell]# dirname /shell/2.txt
/shell
[root@myPc shell]#

自定义函数

function getSum(){
SUM=$[$1+$2]
echo $SUM
}

echo "pls input 2 nums "
read -p "num1 is " n1
read -p "num2 is " n2

getSum $n1 $n2

shell编程案例

日志管理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值