02.Linux相关基础操作

1.用户操作
1.添加用户
useradd aaa
2.指定目录
useradd -d /home/aaa aaa
3.删除用户
userdel aa
4.删除用户及目录
userdel -r aaa
5.查看用户信息
id aa
6.切换用户
su - aa
7.查看用户
who am i
2.用户组操作
1.添加group
useradd goup1
2.删除group
uerdel group1
3.添加用户到组
useradd -g group1 aa
4.修改用户组
usermod -g group2 aa
3.用户组与用户相关的文件
1.密码文件
/etc/passwd
2.口令配置文件
/etc/shadow
3.组配置文件
/etc/group
4.Linux帮助指令
1.man
2.help
5.文件拷贝
1.拷贝文件
cp a.txt /home/a.txt
2.目录递归拷贝
cp -r /home/test /opt
3.强制拷贝
\cp -r /home/test /opt
6.查看文件
查看文件,带行号
cat -n /home/test.txt

less命令

空白键:向下翻页
pagedown:向下翻页
pageup:向上翻页
/字串:n向下查找,N向上查找
?字串:n向下查找,N向上查找
q:离开less


echo输出变量
echo $HOSTNAME

head命令:默认显示前10行
head -n 10 文件

tail命令:默认显示后10行
tail -n 10 文件

7.文件追加/覆盖指令
> 输出重定向
>> 追加
ls -l >文件
ls -al >> 文件
cat 文件1 > 文件2
echo '内容' >> 文件3
8.文件目录链接
ln -s [源文件或目录] [软链接名]
ln -s /root /home/myroot
删除链接: rm /home/myroot
9.日期类
date:显示当前日期
date+%Y :显示当前年份
date+%m :显示当前月份
date+%d :显示当前日期

设置时间:
date -s 字符串时间
date -s '2020-10-10 10:20:30'

日历:cal 
10.搜索查找
find [搜索范围] [选项/-name/-user<用户名>/-size<文件大小>]
find /home -name *.txt
finde /opt -user nobody
find / -size +200M

locate搜索
执行之前,先updatedb
locate hello.txt

which 可以查看某个指令在哪个目录
which ls

grep 查找搜索 -n显示行号 -i 区分大小写
cat /home/hello.txt |grep -n 'yes'
11.压缩解决
gzip/gunzip
gzip 文件
gunzip 文件.gz

zip/unzip
zip -r XXX.zip /home/*
unzip -d /home/temp/ XXX.zip

tar
tar -cvzf aaa.tar.gz /home/aaa.txt /home/bbb.txt
tar -cvzf aaa.tar.gz /home/
tar -xvzf aaa.tar.gz -C /home/temp/
12.权限问题
chgrp 组名 文件名
修改用户所在的组:
usermod -g 新组名 用户名
usermod -d 目录名 用户名

修改目录权限问题:
u:所有者 g:group o:其他other a:所有
chmod u+x aa.txt
chmod u-x bb.txt
chmod 777 cc.txt
13.定时任务
编辑定时任务
crontab -e 进入编辑界面
*/1 * * * * ls -l /etc/ > /tmp/to.txt
*/1 * * * * /home/test.sh
*/1 * * * * mysqldump -u XXXXX > /home/sqlbak.bak.sql

mysqldump -u XXXXX > /home/sqlbak.bak.sql备份数据库

查看定时任务列表
crontab -l
删除定时任务
crontab -r

执行一次,使用at,需要启动atd服务
14.磁盘相关
lsblk 
lsblk -f

挂载磁盘:
1) 先添加scis磁盘
2) 添加分区,命令:fdisk /dev/sbd
	m:显示命令列表
	p:显示磁盘分区,同fdisk - l
	n:新增分区
	d:删除分区
	w:写入并保存
3) 格式化分区,命令:mkfs -t ext4 /dev/sdb1
4) 挂载 mount /dev/sdb1 /newdisk
5) 协助 unmount /dev/sdb1
6) 命令行挂载,重启后会丢失挂载关系
7) 永久挂载:通过修改/etc/fstab实现挂载,添加完成后,执行mount -a 立即生效

查询磁盘使用情况:
df -h
du -h /home
   -s:指定目录占用总大小
   -h:带计量单位
   -a:含文件
   --max-depth=1 子目录深度
   -c:列出明细的同时,增加汇总值
   
统计/opt文件夹下的文件的个数:
ls -l /opt |grep "^-" |wc -l
统计/opt文件夹下的目录的个数:
ls -l /opt |grep "^d" |wc -l
统计/opt文件夹下的文件的个数,包括子文件里:
ls -lR /opt |grep "^-" |wc -l
统计/opt文件夹下的目录的个数,包括子文件里:
ls -lR /opt |grep "^d" |wc -l
以树状结构显示:
tree /home
[root@localhost network-scripts]# cat ifcfg-enp0s3 
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR="192.168.43.202"
NETMASK=255.255.255.0
GATEWAY=192.168.43.1
DNS1=114.114.114.114
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="f17ed393-95ad-4bdd-ab43-4228af6a64c3"
DEVICE="enp0s3"
ONBOOT="yes"
[root@localhost network-scripts]#
16.主机名和IP地址
编辑/etc/hosts文件
127.0.0.1 testlfy
17.进程管理
显示系统执行进程:
ps -aux|grep sshd|more
STAT: 	S:睡眠
		R:正在运行
		D:短期等待
		Z:僵尸进程
		T:被跟踪或被停止
		
重启sshd服务:
systemctl start sshd.service

top -d 10 每隔10秒
M:以内存的使用率排序
P:以CPU使用率
N:以PID大小
u:输入用户名,查看指定用户名查看
18.Service/systemctl
service network start/restart/stop/reload/status

检查启动了哪些服务:
chkconfig --list
设置服务开启/关闭:
chkconfig --level 3 network off/on

systemctl start/restart/stop/reload/status network //stop是临时关闭

systemctl enable/disable/is-enable network//enable/disable是关闭或开起

systemctl list-unit-files |grep network

systemctl status firewalld
19.开启/关闭端口
0.查询端口协议:netstat -anp|grep sshd
1.打开端口:firewall-cmd --permanent --add-port =端口号/协议
2.关闭端口:firewall-cmd --permanent --remove-port =端口号/协议
3.重载后才能生效:firewall-cmd --reload
4.查询端口是否开发:firewall-cmd --query-port=端口/协议
5.netstat -tunlp
20.RPM和YUM
1,查询RPM安装列表
rpm -aq|grep XXX
2.直接查询某个包
rpm -q firefox
3.查询安装信息
rpm -qi firefox
4.查询软件包中的文件
rpm -ql firefox
5.查询文件所属的包
rpm -qf /etc/passwd
6.删除卸载rpm包
rpm -e firefox
7.强制卸载
rpm -e --nodeps firefox
8.安装rpm包
rpm -ivh 包名


1.yum查询list
yum list |grep firefox
2.安装指定应用
yum install firefox
22.Shell脚本
1.Shell变量
1) 字母开头,等号两遍不能有空格,变量名一般为大写
A=100 输出 A=$A
uset A
常量:readonly B=200 无法unset
2) A=`date`将date执行结果,返回给A变量

3) 设置环境变量
export 变量名=变量值 export TOMCAT_PATH=值
source 配置文件 source /etc/profile
echo $变量名 echo $TOMCAT_PATH

4) 位置参数变量
./myshell 100 200
$n:n表示数字,$0代表命令本身,$1-$9代表第一个-第9个参数,${10}
$*:把所有的参数看成一个整体
$@:代表命令中的所有参数,但是$@把每个参数区分对待
$#:所有参数的个数

5)预定义变量
$$:当前进程的进程号PID
$!:后台运行的最后一个进程的进程号PID
$?:最后一次执行的命令的返回状态,如果这个变量的值为0,证明这个命令正确执行, 

6)运算符

7) 条件判断
[condition]
eg:
	[hasEdu] 返回为true
	[] 返回为false
	[condition] && echo 'OK'||echo 'notOK'

if [条件判断] then
elif [条件判断] then
fi

8) 流程控制
case $变量名 in
"值1")
	值1
;;
"值2")
	值2
;;
*)
	"值3"
esac

9) for循环
for 变量 in 值1 值2 值3...
do
	....
done

for((初始值;循环控制语句;变量变化;))
do
 .....
done

10) while
while [条件语句]
do
	....
done
  1. tail -f catalina.out:实时查看Tomcat控制台信息
    2.查看ssh状态 service sshd status
    3.重启ssh连接:service sshd start
    4.查看yum源 /etc/yum.repos.d/
    5.使环境变量生效: source /etc/profile
    6.查询当前系统安装的所有软件包: rpm -q –a | grep [包名]
    7.卸载软件: rpm -e [package name]
    8.卸载软件忽略依赖: rpm -e [package name] –nodeps
    9.查询软件安装到了哪里: rpm -ql [package name]
posted @ 2022-08-28 18:46  NIANER2011  阅读(28)  评论(0编辑  收藏  举报