首页 > 系统相关 >mark一些常用的linux 命令

mark一些常用的linux 命令

时间:2023-03-31 17:44:22浏览次数:39  
标签:常用 查看 tar echo sh linux home mark 目录


/etc 配置文件
/boot linux 启动相关文件
/bin 命令
/proc 系统映射
/srv 系统
/sys 系统
/tmp 缓存
/dev 设备管理器
/media 比如u盘设备
/mnt
/opt 一般安装文件放这里 约定俗成
/usr/local/ 安装额外的软件安装的目录
/var 比如日志 可变的
/selinux 需要启动 相当于360 保证安全的

//开关机
重启 reboot
关机 shutdown -h now
保存内存数据到磁盘 sync

 

vi vim

yy拷贝 p 黏贴 当前行 2 yy p 拷贝当前2行 并黏贴到下面

dd 删除当前行 2 dd 删除当前2行

G 定位到最后一行 gg 定位第一行

15 shift + g 定位到15行

u 撤回

命令行
:/ 或者 / 关键词 查找关键词

1、进入vi中,先按下"ESC"跳转成命令输入模式

2、输入斜杠“/”,这时屏幕会跳转到底部,输入栏出现"/"

3、输入你需要查找的关键字,回车

4、如果要继续查找关键字,输入n

5、向前查找,输入N(大写)


:set nu 显示行号 :set nonu 不显示行号


用户

用户权限
su - name 切换用户 权限 从小切到root 要输密码 从root 切到小不用
logout exit

useradd gzh 自动创建一个gzh用户 自动创建目录/home/gzh

useradd -d /home/test jj

passwd gzh 指定/修改密码

userdel gzh 删除gzh 需要切换root和gzh 不在线 保留/home/gzh 目录
userdel -r gzh 删除gzh 和他的目录

id 用户名 查看用户
who am i 查看当前用户是谁



pwd 当前用户所在目录

 

用户组
groupadd 组名

groupdel 组名

useradd -g 组名 用户名 添加分组用户

usermod -g 组名 用户名 切换用户分组

/etc/passwd 用户的配置文件
/etc/shadow 口令的配置文件
/etc/group 组的文件


运行级别


# 查看当前运行级别
systemctl get-default

# 设置当前运行级别为3 (开机为命令行模式)
systemctl set-default multi-user.target

# 设置当前运行级别为5 (开机为图形界面) 如果切换没效果 是没装图形化界面
systemctl set-default graphical.target

 

绝对路径 / 从根目录开始往下 相对路径 当前目录

cd ~ 回到自己家目录 ~
cd / 回到根目录

创建目录
mkdir /home/gzh 一级目录
mkdir -p /home/ddd/aaa 多级目录

删除目录
rmdir 要删除的空目录
rm -rf 删除非空多级目录

rm -f 文件名 -f 删除不提示

touch 创建一个空文件

cp 文件名 要拷贝的目录 cp -r /home/ddd /opt/ 拷贝目录
\cp -r /home/ddd /opt/ 拷贝目录 强制覆盖

mv 原地重命名 不同地址 移动

cat 查看文件不修改 -n 显示行号

less 动态查看 用于读取大文件

head -n 5 文件名 查看文件前5行
tail -n 5 文件名
tail -f 显示最后10行 实时监控

echo $HOSTNAME 输出HOSTNAME

echo hello > my.txt 覆盖写入
echo hello >> my.txt 追加写入

ls -l /home > /home/home.txt 将输出信息存入到 home.txt 里面


时间

cal 查看日历 date 显示当前日期

date -s "2022-11-28 16:00:00" 修改时间
cal 2020 显示2020 年的日历


ln -s /root/ /home/myroot 将root 目录放到 /home/myroot下面 (相当于是快捷方式)

unlink 和 rm 都可以删除


查找命令
find 查询区域 类型 具体的值

find / name 按名字查找 查询区域 类型
-size +200M 大于200M的文件
-user 按用户名查找


grep -r 'hello' /home 查找目录或者文件里面有没有匹配字段 -r 递归


locate

没有要安装 yum install mlocate

原理 使用之前新建索引 updatedb -> locate 你要查找的文件名

which ls 查看命令在哪个目录

grep 过滤查找 -i 忽略大小写

cat home.txt | grep -n "root" 查找home.txt 下 过滤出root 并显示行号

= grep -n "root" home.txt


查看目录大小
du -sh /home


解压缩 文件
gzip b.php 压缩
gunzip b.php.gz 解压

解压缩 文件夹
zip zip -r myhome.zip /home/ 把home目录及子文件压缩成myhome.zip
unzip unzip -d /opt/tmp myhome.zip
把myhome.zip 解压到/opt/tmp 目录下


tar
tar [选项] xxx.tar.gz 打包的内容
选项 -c 产生.tar 打包文件
-v 显示详细信息
-f 指定压缩后的文件夹
-z 打包同时压缩
-x 解压.tar文件

tar -zcvf demo.tar.gz hello.txt b.php 把 hello.txt 和b.php 打包到demo.tar.gz 里面

tar -zcvf myhome.tar.gz /home 将/home 目录打包成myhome.tar.gz

tar -zxvf tar.tar.gz 将文件解压到当前目录


tar -zxvf /home/tar.tar.gz -C /opt/ 把/home下面的tar.tar.gz 解压到 /opt下面

用户组
groupadd monster 添加组

useradd -g monster fox 将fox 添加到monster里面

chgrp root test.txt 给文件修改组


drwxr-xr-x 2 fox root 6 11月 28 19:51 foxdemo

0 l 链接
d 目录
c 字符设备文件 鼠标键盘
b 块设备 硬盘
1-3 所有者权限
4-6 所有组权限
7-9 其他组权限

r 读 w写 x执行
作用到文件 r 可查看 w 修改 不能删除 x 可执行
作用到目录 r 可查看 w 可修改 创建 删除 重命名 x 可以进入目录

2 有两个文件

fox 用户

root 组

6 字节

11月 28 19:51 最后修改的日期

foxdemo 文件名或目录名

r 4 w 2 x 1 rwx =4+2+1 = 7

chmod -R 777 test/

usermod -g police xh 改变xh分组

 

crond 任务调度

crontab -e 编辑
-l list
-r 删除


*/1 **** ls -l /etc/ >> /tmp/to.txt 每分钟执行一次

1 小时的第几分钟 0-59
2 一天的第几个小时执行 0-23
3 一个月的第几天 1-31
4 一年的第几个月 1-12
5 一个礼拜的星期几 0-7 (0和7都代表周末)

/ 每隔多久执行

执行脚本

新建脚本 /home/root/my.sh
date >> /tmp/date
cal >> /tmp/date


给脚本加执行权限
chmod u+x my.sh

执行脚本 ./my.sh

任务执行 */1 * * * * /home/root/my.sh

at 定时任务 只执行一次

ps -ef | grep atd 检测在不在运行

at now + 2 minutes 2分钟后执行
date > /home/root/log 写完之后 按ctrl + d 两次退出

atq 显示未执行的任务列表

atrm id 删除任务


分区 和挂载

lsblk 查看 -f

df -h 查看磁盘利用率

du -h /home 目录使用情况

tree /home 树状显示


主机名配置 hostname
/etc/hostname 在这个文件下设置 设置后重启生效

windows C:\Windows\System32\drivers\etc\hosts
linux /etc/hosts


用户输入网站域名解析过程

浏览器缓存 -> dns 解析器缓存 -> host文件 ->域名dns服务器

windows操作
查看dns缓存 ipconfig/displaydns
清理dns缓存 ipconfig/flushdns


查看进程
ps -aux | grep sshd 查看现在有谁登录了

ps -agft 查看当前目录下进程

查看端口是否被占用
netstat -anp |grep 9501

终止进程
kill -9


pstree -p 显示进程号 -u

后台进程/守护进程/服务
service

service start stop restart reload status

= systemctl

ls -l /etc/init.d 就可以查看运行的服务


chkconfig --list 查看服务在不同运行等级是否开启

chkconfig --list | grep network 匹配

chkconfig --level 5 network on / off 开关


systemctl

ls-l /usr/lib/systemd/system

查看防火墙
ls -l /usr/lib/systemd/system | grep fire

查看防火墙是否开启
systemctl is-enabled firewalld

 

查看运行状态
systemctl list-unit-files | grep firewalld

查看防火墙状态
systemctl status firewalld

关/开防火墙

临时有效
systemctl stop / start firewalld

真正有效
systemctl enable / disable firewalld


netstat -anp | more

windows 下
telnet 192.168.109.131 80


firewall指令

打开端口 firewall-cmd --permanent --add-port=25/tcp 端口号/协议
关闭端口 firewall-cmd --permanent --remove-port=25/tcp
重载 firewall-cmd --reload
查询 firewall-cmd --query-port=25/tcp

top 命令 和ps 差不多 但top 是实时更新

-P 按cpu排序 M 内存 u 名字 user k kill 等级 9

netstat 监控

-an 按一定顺序
-p 显示哪个应用在调用

netstat -an | more 网络状态

RPM 软件包
rpm -qa | grep 查询是否安装包
rpm -e 卸载


yum shell 前端软件管理包 基于RPM 包管理 能指定服务器自动下载和安装,也能自动安装对应的依赖

查询包
yum list | grep

安装命令
yum install


环境变量
echo $PATH

vim /etc/profile =》 export 变量名=变量值
source /etc/profile 变量文件 //刷新


shell

vim helloworld.sh
chmod u+x helloworld.sh

执行
./helloworld.sh = /home/root/helloworld.sh = sh helloworld.sh 不用给权限

系统变量 可以通过 set 查看

比如 $HOME $PWD $SHELL $USER

 

A=100 #=后面变量不能有空格

echo $A #输出变量要加$
echo "a=$A" 解析
echo 'a=$A' 不解析
#撤销变量
unset A
echo"A=$A"
#声明静态变量 静态变量不能被删除
readonly B=2
echo "B=$B"
unset B

A=`date` 将命令的结果赋值给变量A 要加反引号 = A=$(date)

位置参数变量 可获取命令行参数

比如

vim wzcs.sh

#!/bin/bash
echo "$0 $1 $2" #$0 是命令本身 $1参数1 $2 参数2
echo "$*" #所有参数
echo "$@" #所有参数
echo "$#" #参数个数

 

sh wzcs.sh 1 2

wzcs.sh 1 2
1 2
1 2
2

预定义变量
$$ 当前脚本的进程号 pid
$! 后台最后运行的进程 pid
$? 执行结果

运算符 + - * / % 加 减 乘 除 取余

#!/bin/bash
RES1=$[(2+3)*2] //10
echo $RES1
RES2=$[$1+$2] //传参
echo $RES2


sh oper.sh 10 20
10
30

条件判断
字符串 =

整数比较
-lt 小于
-le 小于等于 little equal
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于

文件权限判断
-r 有读权限
-w 有写权限
-x 有执行权限

按文件类型判断
-f 文件存在并且是常规文件
-e 文件存在
-d 文件存在且是一个目录


demo

#!/bin/bash
if [ "qqok" = "ok" ]
then
echo "equal"
else
echo "not equal"
fi

if [ 23 -gt 22 ]
then
echo "equal"
fi

if [ -f /home/root/test.txt ]
then
echo "存在"
else
echo "不存在"
fi


流程控制

#!/bin/bash
if [ $1 -ge 60 ]
then
echo "及格"
elif [ $1 -lt 60 ]
then
echo "不及格"
fi

命令 sh checkpoint.sh 60

 

case

./checkweek.sh 1


#!/bin/bash
case $1 in
"1")
echo "礼拜一";;
"2")
echo "礼拜二";;
"3")
echo "礼拜三";;
"4")
echo "礼拜四";;
*)
echo "五六七";;
esac


for 循环


for i in "$*"
do
echo "num is $i"
done

echo "*************************"

for j in "$@"
do
echo "num is $j"
done


#!/bin/bash

SUM=0
for(( i=1; i<=$1; i++ ))
do
SUM=$[$SUM+$i]
done
echo "和是 $SUM"

 

while 循环

#!/bin/bash
SUM=0
i=0
while [ $i -le $1 ]
do
SUM=$[$SUM+$i]
i=$[$i+1]
done
echo "$SUM"


数据库备份

#!/bin/bash

#备份目录
BACKUP=/data/backup/db

#当前时间
DATETIME=$(date +%Y-%m-%d_%H%M%S)

#数据库地址
HOST=localhost

#数据库用户名
DB_USER=root

#数据库密码
DB_PW=root

#要备份的数据库
DATABASE=school

#创建备份目录,如果不存在就创建
[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"

#备份数据库
mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz

#将文件处理成 tar.gz
cd ${BACKUP}
tar -zcvf $DATETIME.tar.gz ${DATETIME}

#删除对应的备份目录
rm -rf ${BACKUP}/${DATETIME}

#删除10天前的备份文件
find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;

 

 

 

 


日志管理

保存目录
/var/log

配置
/etc/rsyslog.conf

boot 系统启动日志
cron 系统启动日志
lasllog 记录用户最后一次登录 用lastlog 命令查看
mailog
message
secure 安全 登录信息 添加用户
ulmp who查看当前用户

 


ps aux | grep "rsyslog" | grep -v "grep" grep -v 反向匹配


查看是否启动
systemctl list-unit-files | grep "rsyslog"

日志轮替
/etc/logrotate.conf

linux 计划任务 -> 日志轮替


内核升级
uname -a 查看当前内核版本
yum info kernel -q 检测内核版本 显示可以升级的内核
yum update kernel 升级内核
yum list kernel -q 查看已经安装的内核

重启生效

linux备份 和恢复

yum -y install dump

yum -y install restore

 

标签:常用,查看,tar,echo,sh,linux,home,mark,目录
From: https://www.cnblogs.com/gooo/p/17277016.html

相关文章

  • Linux操作--9
    定制自己的Linux系统制作minLinux系统具体操作查看文件......
  • 在windows 11家庭版 系统上安装linux子系统
    步骤:1.启动WSL单击Win11任务栏上给出的“搜索图标”类型–打开或关闭窗口功能选择它,当“WindowsSubsystemforLinux”时。按确定按钮。然后“重启”你的系统.2.如果机器比较新,一般从WSL1升级到WSL2再进行操作。WS2可以通过命令行直接安装系统。可节省第三步。但有时升级......
  • Linux忘记root密码的处理办法
    1.开机选项界面按e进行内核信息编辑界面2.在以linux16开头的行末添加rb.break后,按crtl+x进入单用户模式3.以可读写方式重新挂载系统文件mount-oremount,rw/sysroot4.访问系统,chroot就是ChangeRoot,也就是改变程序执行时所参考的根目录位置chroot/sysroot5.更改root......
  • ansible 常用模块 service
    模块说明Manageservices参数说明ParameterCommentsargumentsaliases:argsstring命令行上提供了其他参数。将远程主机与systemd一起使用时,此设置将被忽略。enabled boolean服务是否应在启动时启动。至少需要state和enabled中的......
  • eclispe freemarker ide 插件安装
    首先打开jbossTools的下载页面 http://www.jboss.org/tools/download/进入到此页面,看到图上的红色框吗?这里的链接是安装jbosstools http://download.jboss.org/jbosstools/updates/stable/juno/好了,打开eclipse  好了,你点OK后,左则就会提示一系列jbosstools的eclipse插......
  • ansible 常用模块 archive
    模块说明该unarchive模块解压缩存档。它不会解压缩不包含存档的压缩文件。默认情况下,它会在解包之前将源文件从本地系统复制到目标。设置remote_src=yes为解压缩目标上已存在的存档。在目标主机上需要zipinfo和gtar/unzip命令。需要目标主机上的zstd命令来展开.tar......
  • MyBatis 框架的常用优化方法
    优化1:单独使用MyBatis时,可以封装一个用来获取MyBatis中Session的工具类(1)工具类MybatisUtil将Mybatis框架中的Session对象的获取和关闭封装成一个类;(2)UserDaoImpl中,改为对MybatisUtil类的调用。 优化2:将连接字符串写入配置文件(1)阅读database.prop......
  • python远程监控linux进程
    1、效果图  2、配置文件  3、源码importparamikoimportioimportcoloramadefprocess(cfg):#创建SSH客户端ssh=paramiko.SSHClient()#自动接受新的主机密钥ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())#连接到......
  • ansible 常用模块 user
    模块说明管理用户帐户和用户属性。此模块用于useradd创建、usermod修改和userdel删除帐户。参数ParameterCommentsappend boolean如果true,将用户添加到中指定的组groups。如果false,用户将只被添加到在指定的组中groups,将他们从所有其他组中删......
  • linux常用命令
    针对linux发行版(如ubuntu、raspian等)的基础使用说明,以快速熟悉linux发行版的操作。一、系统信息查看处理器架构:arch查看内核版本:cat/proc/version;uname-a查看操作系统版本:head-n1/etc/issue查看内存使用:free查看磁盘使用:df-m查看环境变量:env查看CPU信息:cat/proc/cpuinfo......