ubuntu入门

linux的学习方向有一下几个方向:
1.linux运维工程师 :管理服务器,
2.linux嵌入式工程师。
3.linux程序开发。
linux应用领域:个人桌面领域的应用:
服务器领域:
嵌入式领域:运行稳定,对网络的良好支持性。
linux学习路线:第一阶段:linux环境下基本的操作命令。文件操作命令(rm,mkdir,chmod,chown),编辑工具使用(vi vim),linux用户管理(useradd userdel usermod)
第二阶段:linux的各种配置(环境变量配置,网络配置,服务配置)
第三阶段:linux下如何搭建对应语言的开发环境
第四阶段:能编写shell脚本,对linux服务器进行维护
第五阶段:能进行安全设置,防止攻击,保障服务器正常运行,能对系统调优
第六阶段:深入理解linux系统,熟练掌握大型网站应用架构组成,并熟悉各个环节的部署和维护方法。
linux介绍:吉祥物(企鹅TUX)
用户—应用软件,浏览器-------shell层(解释层)------操作系统(linux)----硬件—
崇尚软件自由。
安装软件:网络连接三种说明:1.桥连接:linux可以和其他的系统通信,但可能造成ip冲突2.NAT网络地址转换,ip不冲突。可以访问外网。
3.主机模式:独立的主机,不能访问外网。
安装vmtools:共享文件夹:
linux的目录结构:树状结构:
/根目录
/dev管理设备文件
/media媒体设备,光驱,u盘
/bin常用指令
/etc存放配置文件
/home家目录
/lib库文件
/opt软件安装目录
/proc内核文件
/root root的文件
/sbin超级用户使用的指令
/selinux安全目录,360
/src service缩写,该目录存放一些服务启动之后需要提取的数据。
/mnt系统提供该目录是为了让用户临时挂载别的文件系统的
/sys系统文件
/tmp临时文件夹
/user用户
/var这个目录中存放着不断扩充着的东西,包括各种日志文件
useradd tom//添加用户
userdel -r tom //删除用户
在linux世界里,一切皆文件

远程登陆linux服务器:需要linux系统开启sshd服务。该服务会监听22号端口。
需要知晓ip地址
安装xshell远程登陆到linux
xshell完美解决了中文乱码问题
具体安装:

远程上传下载的软件ftp5:

如何解决乱码:选择属性-选项-使用utf-8编码

linux实操篇-vi和vim编辑器
三种模式:
正常模式:可以使用快捷键
插入模式/编辑模式:可以输入内容按i进入模式
命令行模式:提供相关指令,完成读取,存盘,替换,离开vim,显示行数

vim hello.java
#i   插入模式
public void hello{
public static void main(String[] args)
{
System.out.print("hello java");
}
}
esc
:q!

命令行—一般模式 vim filename
一般模式—编辑模式 i
编辑模式—一般模式 esc
一般模式—命令模式 :
命令模式—一般模式 esc
命令模式—命令行 :wq

shutdown -h now 关机 halt()
wmware备份系统:两种1.快照:设置还原点。侧重短期备份
2.克隆:复制,侧重长期备份。
虚拟机-快照;
恢复:虚拟机-快照-快照管理器
linux实用篇:帮助指令:
介绍一下:当我们对某个指令不熟悉时,我们可以使用linux指令
了解一下:
1.man <命令配置文件>
ex:man ls
2.help <命令>
文件目录篇:
pwd:显示当前目录的绝对路径
ls:显示当前目录所有的文件和目录。
mkdir:创建文件夹
rmdir:删除空文件夹
rm -rf /home/xiaozhipeng:删除非空目录。
touch animal.txt:创建animal。txt文件
cp :拷贝文件
cp -r :拷贝整个文件夹
\cp -r :拷贝整个文件夹,强制覆盖原来的文件,不会提示。
rm <删除的目录> :移除文件或目录。
rm -r <删除的目录>:递归删除整个文件夹
rm -f <删除的目录>:强制删除不提示。
mv <文件> :移动文件与目录或者重命名

#将a.txt重命名b.txt
touch a.txt
mv a.txt b.txt
/#将/home/pig.txt移动到/root目录下
mv /home/pig.txt /root

cat指令:查看文件内容
cat <要查看的文件>:

#查看/etc/profile的文件内容,并显示行号
cat -n /etc/profile | more

more指令:一个基于vi编辑器的文本过滤器,以全屏幕的方式按页显示文本文件
一行一行的看:空格(space)键
一页一页的看:enter
ctrl+f:向下滑动一屏幕
ctrl+b:返回上一屏
q:离开more指令
less指令:用来分屏查看文件内容,比more要强大:并不是将整个文件全部加载后才显示,效率高
(>)重定向和(>>)追加:
ls -l >:列表的内容写入到file中(覆盖写)
ls -al >>:列表的内容追加到文件file的末尾。
cat file1>file2:将file1内容覆盖到file2
echo ”内容">>file:将内容重定向到file

#/home目录下的文件列表写入到/home/info.txt
ls -l /home > /home/info.txt
#将当前日历信息追加到/home/mycal文件中
cal >> /home/mycal

文件目录类:
echo <输出内容>
输出环境变量:echo $PATH
head指令:
head :默认查看file的前十行内容
head -n 5 :查看文件前5行内容
tail指令:
tail :默认查看文件的后10行
tail -n 5 :查看文件后5行
tail -f :实时追踪文件的更新。

#实时追踪mydate.txt ,看看文件有变化吗,是否看到实时的追加日期
date >>mydate.txt
tail -f mydate.txt

ln指令:类似与windows的快捷方式:
ln -s <源文件目录> <软链接名字>:给源文件创建了软连接

#在/home目录下创建一个软连接linktoroot,连接到root目录
ln-s /root linktoroot
#删除软连接linktoroot(后边不带/)
rm -rf linktoroot

history指令:
查看已经执行过的历史命令,可以查看历史命令。

#显示所有的历史命令
history
#显示最近使用过的10个指令
history 10
#执行历史编号为5的指令。
!5

时间日期类:

#显示年月日
date  +%y-%m-%d
#显示年月日时分秒
date "+%y-%m-%d %H:%M:%S"
#设置时间
date -s "2020-08-15 19:05:10"

日历:
cal
搜索查询类:
find:从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者
目录显示在终端。
find <搜索范围><选项>

#按文件名,根据名称查找home目录下的hello.txt文件
find /home -name hello.txt
#按拥有着,查找/opt目录下,用户名称为nobady的文件
find /opt -user nobady
#查找整个linux系统下大于20m的文件(+n大于,-n小于,n等于)
find / -size +20M

locate:快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的
locate数据库实现快速定位给定的文件,locate文件无需遍历整个文件系统,查询速度较快,
为了保证查询结果的准确度,管理员必须定期更新locate时刻。
特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb
指令创建locate数据库。

#使用locate快速定位hello.txt文件所在目录。
updatedb
locate hello.txt

grep:过滤查找,管道符,|,表示将前一个命令的处理结果输出传输给后面的命令处理。
grep <选项> <查找内容> <源文件>
-n:显示匹配行和行号。
-i:忽略字母大小

#请在hello.txt文件中,查找yes所在行,并显示行号
grep -ni yes hello.txt
cat hello.txt |grep -ni yes 

压缩/解压缩指令:gzip/gunzip
特别注意:压缩之后源文件不保留
gzip file
gunzip file

#将/home下的hello.txt文件压缩
gzip hello.txt
#将/home下的hello.txt.gz进行解压
gunzip hello.txt.gz

zip/unzip
zip:用于压缩文件:
zip -r <目录>:能够压缩目录
unzip:用于解压:

#将/home下的所有文件进行压缩mypackage.zip
zip -r mypackage /home/*
#将mypackage.zip解压到/opt/tmp目录下
unzip -d /opt/tmp/mypackage.zip

tar指令:打包指令,最后的打包文件是filename.tar.gz
-c 产生tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解压.tar文件

#1.压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz
tar -zcvf a.tar.gz a1.txt a2.txt
#2.将home文件夹压缩成mypackage.tar.gz
tar -zcvf mypackage.tar.gz /home/
#3.将a.tar.gz解压到当前目录
tar -axvf a.tar.gz
#4.将myhome.tar.gz解压到/opt/tmp2目录下:特别注意:解压指定目录,该目录必须先存在
mkdir /opt/tmp2
tar -zxvf myhome.tar.gz -C /opt/tmp2/

组管理和权限管理;
用户配置信息:/etc/passwd
在linux中每个用户必须属于一个小组
文件的三个概念:1.所有者2.所在组3.其他组
文件目录的所有者信息:ls -ahl


#创建一个组police,在创建一个用户tom,将tom放在police组,然后使用tom来创建一个文件,
groupadd police
useradd -g police tom
passwd tom 
123
*/

修改用户所有者
chown <用户名><文件名>

#使用root创建一个文件apple.txt,然后将其所有者修改成tom
touch apple.txt
chown tom apple.txt

组的创建:
groupadd moster
useradd -g moster fox

文件目录所在组:
查看文件所在组,
ls -ahl
修改文件所在组
chgrp police apple.txt
其他组:除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
改变用户所在组:
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变该用户登陆的初始目录。

#创建一个bandit组,将jame用户从原来的police修改到bandit组
groupadd bandit
useradd -g police jame
usermod -g bandit jame

权限的管理:
基本介绍:
第0位确定文件类型,-普通文件,d:目录 l:软连接 c:字符设备 b:块文件
1-3位确定所有者:r:读权限,w:写权限,x:执行权限
4-6位确定所属组
7-9位确定其他组
数量
chmod:修改文件或者目录权限
方式1:+,-,=变更权限
u:所有者,g:所有组,o:其他人,a:所有人
1.chmod u=rwx,g=x,o=x <文件或目录名>
2.chown o+w <文件目录名> :给其他人加写权限
3.chmod a-x <文件目录名>:给所有人减执行权限
/*

#给abc文件的所有者读写执行权限,给所在组读执行权限,给其他组执行权限
touch abc
ls -l
chmod u=rwx,g=wx,o=x abc
#给abc文件的所有者除去执行权限,增加读写权限
chmod u-x,g+w abc
#给abc文件的所有用户添加读的权限
chmod a+r abc

*/
方式2:通过数字变更权限
r=4,w=2,x=1
chmod 551 abc
修改文件所有者:
chown
/*将/home/abc文件的所有者修改为tom
chown /home/abc tom
/
/

将kkk下的所有文件的所在用户改成tom
chown -R tom kkk/

#最佳实践-警察和土匪的游戏
#应用文件权限管理:
#组:pilice,bandit
#警察用户:jack,jerry
#土匪:xh,xq
#1.创建组
groupadd police
groupadd bandit
#2.创建用户
useradd -g police jack
useradd -g police jerry
useradd -g bandit xh
useradd -g bandit xq
passwd jack 123
passwd jerry 123 
#3.jack创建一个文件,可以自己读写,本组人可以读,其他人没有任何权限
vim jack01.txt
chmod 640 jack01.txt

#4.jack修改该文件,让其他人可以读,本组人可以读写
chmod o=r,g=wr jack01.txt

#5.xh投靠警察,看看是否可以读写。
#用root修改xh的组
usermod -g police xh
#使用jack给他的家目录/home/jack的所在组一个rx的权限
chmod g=rx jack/
#xh需要重新注销在到jack目录就可以操作jack的文件

课后练习:
1.建立两个组(神仙,妖怪)
2.建立四个用户(唐僧,悟空,八戒,沙僧)
3.设置密码
4.把悟空,八戒放入妖怪,唐僧沙僧放到神仙
5.用悟空建立一个文件(monkey.java该文件要输出i am monkey)
6.给八戒一个可以rw的权限
7.八戒修改monkey.java加入一句话 i am pig
8.唐僧沙僧对该文件没有权限
9.把沙僧放入到妖怪组
10.让沙僧修改该文件monkey,加入一句话(”我是沙僧,我是妖怪“)
groupadd shenxian
groupadd yaoguai
useradd -g shenxian tangseng
useradd -g shenxian shaseng
useradd -g yaoguai wukong
useradd -g yaoguai bajjie
passwd wukong 123
passwd tangseng 123
passwd shaseng 123
passwd bajie 123
su wukong
touch monkey.java
chmod 760 monkey.java
usermod -g yaoguai shaseng
su shaseng
vim monkey.java
i
esc
:wq
linux实用篇:crond任务调度
定时调用脚本或者任务crontab
crontab进行定时任务的设置:
crontab -e:编辑crontab任务
crontab -l:查询crontab任务
crontab -r:删除当前用户所有的crontab任务。
service crond restart:重启任务调度。
/*
设置任务调度文件:/etc/crontab
设置个人任务调度,执行crontab -e命令
接着输入任务到调度文件

#每小时每分钟执行ls -l /etc/ > /tmp/to.txt命令
#步骤:1.
crontab -e 
*/1****ls -l /etc >> /tmp/to.txt
#3.保存退出

5个星的说明
第一个* 一小时中第几分钟范围(0-59)
第二个* 一天中的第几小时(0-23)
第三个* 一个月中的第几天(1-31)
第四个* 一年中的地几个月(1-12)
第五个* 一周中的星期几(0-7)
特殊符号的说明
:代表任意时间,比如第一个就代表一小时中每分钟都要执行一次
,:表示不连续的时间,比如0 8,12,16 * * *
/
如果只是简单的任务,可以不写脚本,直接在crontab中加入任务即可
2.对于比较复杂的任务,需要写脚本(shell)
/

实例:

#1.每隔一分钟,就将当前的日期信息,追加到/tmp/mydate文件中
#1)。先编写一个文件:
cd /home/
vim mytask1.sh
date >> /tmp/mydate
ls -l
chmod 744 mytask1.sh
ls -l
crontab -e
*/1 * * * * /home/mytask1.sh
more mydate
#2.每隔一分钟,将当前日期和日历都追加到/home/mycal文件中
cd /home/
vim mytask2.sh
date >> /tmp/mydate2
cal >> /tmp/mydate2
ls -l
chmod 744 mytask2.sh
ls -l
crontab -e
*/1 * * * * /home/mytask2.sh
more mydate

3.每天凌晨三点将mysql数据库testdb,备份到文件mydb.bak
1).先编写一个文件 /home/mytask3.sh
/user/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak
2).给mytask3.sh一个可执行权限
chmod 744 /home/mytask3.sh
3).crontab -e
4) 0 2 * * * /home/mytask3.sh
5)成功
/
实操篇之分区:
1.mbr分区:
最多支持四个分区
系统只能状态主分区里
扩展区要占一个主分区
MBR最大只支持2TB,但拥有最好的兼容性
2.gtp分区:
支持无限分区,最大支持18EB=18
1024PB=181024102TB
windos7 64位支持gtp
linux中每个分区都是用来组成整个文件系统的一部分。
linux硬盘分为IDE和scsi硬盘
IDE硬盘标识:hd
SCSI硬盘标识sd
查看分区情况;lsblk -f
分区情况 分区类型 唯一标识分区的40位不重复的字符串 挂载点
使用mount指令进行分区的挂载。
给linux增加一块新的硬盘:
步骤:
1.虚拟机增加硬盘
虚拟机-设置-硬盘-scsi-2g
2.分区

ls    
reboot
lsblk -f   #查看分区情况
fdisk /dev/sdb/      #分区-n
n 
#add a parttion创建分区
w 

3.格式化

mkfs -t ext4 /dev/sdb1  
#格式化为指定的文件格式

4.挂载。

mkdir /home/newdisk/
cd /home/newdisk
mount /dev/sdb1 /home/newdisk
ls

5.设置可以自动挂载
(永久挂载)

vim /etc/fstab    
#记录的是分区挂载点的情况
mount -a 
#自动挂载
umount /home/newdisk   
#卸载分区

查看磁盘的情况
df -l
du -h /目录 //查询某个目录的使用情况
查询/opt目录的磁盘占用情况,查询深度为1
du -ach --max-depth=1 /opt
磁盘查询:

#1.统计/home文件夹下文件的个数
ls -l /home | grep "^-" | wc -l

#2.统计/home文件夹下目录的个数
ls -l /home | grep "^d" | wc -l

#3.统计/home文件夹下文件的个数,包括子文件夹里的
ls -lR /home | grep "^-" | wc -l

#4.统计文件夹下目录的个数,包括子文件夹里的
ls -lR /home | grep "^d" | wc -l

#5.以树状显示目录结构。
sudo apt-get install tree
tree

linux网络配置:
ps -aux //查看进程
终止进程:
kill 终止一个
killall 终止多个

#案例1:踢掉某个非法登陆用户
ps -aux |grep sshd
kill 进程号

案例2;终止远程登陆服务sshd,在适当的时候再次重启服务
ps -aux |grep sshd
kill 进程号
案例3:终止多个gedit编辑器
killall gedit

#案例4:强制杀掉一个终端。
ps -aux | grep bash

kill -9 进程号
进程树:pstree
服务管理(service)
守护进程,服务管理是后台进程。
指令:service 服务名 start |stop | restart |reload |status
systemctl

#案例查看当前防火墙情况,关闭防火墙和重启防火墙。
sudo /etc/init.d/ufw start
#命令查看当前防火墙状态
sudo ufw status

在/etc/init.d/目录中可以查看服务
运行级别:查看系统的运行级别:vim /etc/inittab
服务的运行级别:
chkconfig指令:可以给各个运行级别设置自启动/关闭
1.查看服务 chkconfig --list|grep xxx
2.chkconfig xxx --list
3.chkconfig --level 5 xxx on/off
案例:乌班图下使用sudo sysv-rc-conf查看服务给、状态

开机的流程说明:开机–bios–/boot–init进程–运行级别–运行级对应的服务。
请将sshd运行级别为5的情况下设置自启动:
os指令:chkconfig --level 5 sshd on
chkconfig sshd --list
案例1:请显示当前系统所有服务的各个运行状态
bash>chkconfig -list
案例2:请查看sshd服务的运行状态
bash>service sshd status
案例三:将sshd服务在运行级别5下设置为不自动启动,看看有什么效果
chkconfig -level 5 sshd off
案例四:在运行级别为5时,关闭防火墙。
chkconfig -level 5 iptables off
案例五:在所有运行级别下,关闭防火墙。
chkconfig iptables off
案例六:在所有运行级别下,开启防火墙。
chkconfig ip tables on

动态进程监控,监控网络状态netstat
top指令,与ps类似,可以在执行一段时间可以更新正在运行的进程。
top
案例1:监视特定用户
top
u
案例2:终止指定进程
top
k
案例3:指定系统状态更新时间。
top -d

netstat指令
netstat -anp

#查看系统所有的网络服务
netstat -anp

rpm|yum
rpm一种(redhat,centos)用于互联网下载包的打包及安装工具,它包含在某些linux分发版中,它生成具有.rpm扩展名的文件
乌班图的包管理软件时deb。
查询是否有firefox.rpm文件
rpm -qa |grep firefox
查询安装的rpm包软件信息
rpm -qi firefox
查询rpm文件包的文件安装到哪里去了
rpm -ql firefox
查询文件属于哪个软件包
rpm -qf /etc/passwd
卸载firefox包
rpm -e firefox
强制删除 firefox包,
rpm -e --nodeps firefox
安装火狐
1.先找到firefox的安装包,你需要挂载上我们安装的centos的iso文件,然后到/media/下去找rpm

rpm -ivh firefox
yum 是shell前端软件包管理器,基于rpm包管理,能够从指定的服务器自动下载rpm包并安装,可以自动的处理依赖关系,并且一次性安装所有的依赖软件包
查询yum服务器是否有需要安装的软件
yum list |grep
安装指定的yum包
yum install

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值