Linux学习笔记

(ps:linux学习参照韩老师的教学视频)
linux方向有:
1.linux运维工程师:服务器动态规划,调试优化,日常监控,故障处理,数据备份等
2.linux嵌入式工程师:c语言开发驱动
3.linux开发项目:javaee开发,python开发,大数据,php,c++
linux是一个开源的、免费的操作系统,其稳定性、安全性、处理多并发

虚拟机网络连接(三种模式):
桥接模式:使得虚拟机的ip地址和主机ip地址在同一网段,可能会造成ip冲突
NAT连接:网络地址转换方式,linux访问互联网,ip不冲突,但不可被访问
仅主机连接:linux是一个独立主机,不能访问外网
linux机器与windows双方之间可以相互赋值粘贴,安装vmtools
***共享文件夹***创建,在VM虚拟机—>Setting设置----->option选项----->总是共享,添加路径
在linux的系统文件夹中找到mnt文件夹找到共享文件夹
linux目录结构:
根目录:/
根目录下的目录:bin、home、root、boot、lib、usr、media等
/dev设备管理;/media目录;
/bin存放着经常使用的命令;/sbin存放系统管理员使用的系统管理程序
/home存放普通用户主目录,在linux中每个用户都有一个自己的目录
/root该目录为系统管理员;/usr用户的应用程序和文件都放在这个目录下
/lost+found:非法关机后,存放一些文件
/lib系统开机所需要的基本动态链接共享库类似于windows的dll文件
/proc系统内核;/mnt用户挂载别的文件系统;/var存放日志文件
linux远程登录:
xshell5远程登录
终端命令:setup:查看linux目前所启动的服务
连接网络并获取ip地址,根据ip地址以及登录用户(当前为root用户)
远程命令rebot:可以重新启动当前的linux系统
xftp5上传和下载
远程上传和下载文件的软件xftp基于Sftp、ftp文件传输协议的软件
vi与vim三种模式:
正常模式:上下左右移动光标,删除操作
插入模式:按i、I、o、O、a、A、r、R进入插入模式
命令行模式:可以提供你相关的指令,完成读取、存盘、替换、离开vim、显示行号
vim快捷键:
a.拷贝当前行yy,拷贝当前向下5行5yy,并粘贴(p)
b.删除当前行dd,删除当前向下5行5dd
c.在文件中查找某个单词[命令行/关键字,回车 查找,输入n查找下一处]
d.设置文件的行号,命令行:set nu 和:set nonu
e.编辑/etc/profile文件,使用快捷键到文档的最末尾[G]和最首行[gg]
f.撤销使用 u
g.编辑/etc/profile文件,并将光标移动到20行shift+g(15)
linux的关机重启
shutdown -h now 立刻关机
shutdown -h 1 表示1分钟后关机
shutdown -r now 立即重启
halt 关机
reboot 重新启动
syn:数据同步到磁盘
用户登录和注销:创建用户 使用su切换到root用户
远程登录注销:logout(退出远程登录);exit(退出当前用户,root用户时退出登录)
linux用户需要创建组并且每个用户至少属于一个组,用户需要向系统管理员申请账号和密码
语法:useradd 选项 用户名(例如:useradd yanxing)
useradd -d 指定目录 新的用户名
为用户指定密码: passwd 用户名(例如:passwd yanxing)
删除用户语法:(只能使用root身份删除) userdel 用户名
删除用户:userdel 用户名
删除用户以及用户家目录:userdel -r 用户名
查询用户信息语法:id 用户名(查看用户的id 组号 组名称) 不存在返回没有该用户
切换用户语法:su -用户名(例如:su - yanxing)使用exit返回之前用户
注:从权限高的用户到权限底的用户不需要密码,反之需要密码
添加组语法:groopadd 组名(例如groupadd xing)
删除组语法:groupdel 组名(例如groupdel xing)
添加用户时将用户放入组中:useradd -g 用户组 用户名(useradd -g xing yanxing)
id yanxing 查看当前用户信息
修改用户的组信息:usermod -g 用户组 用户名(将用户修改到该组)
linux中将用户的信息存放在(/etc/passwd;/etc/group;/etc/shadow)
passwd文件:用户配置文件,记录用户的各种信息
文件中每行信息表示:用户名:口令:用户标识号:组表示号:注释性描述:主目录:登录shell
shadow:口令配置文件
group:组配置文件,记录linux包含的组信息
每行含义:组名:口令:组标识号:组内用户列表(不可见)
常用指令:
linux分级别(运行级别文件在/etc/initable):
0:关机;1:单用户;2:多用户无网络;3:多用户有网络;4:保留
5:图形界面;6:重启
切换指定运行及级别指令:init[012356]
例如:init 3 (表示当前的运行状态在多用户有网络状态)
问题:如何找回root密码?
进入单用户模式,不需要密码也可以登录(开机时按enter,启动前输入e,光标放置第二行Kernel,按e,

最后一行输入空格和输入1,enter,再输入b登录,进入系统后更改密码passwd root)

帮助指令(指令不熟悉时使用):
man 命令(例如:man ls)
help 命令(例如:help ls)
文件目录类指令:
pwd指令:显示显示当前工作目录的绝对路径(例如 pwd)
ls指令:显示当前目录/文件的所有内容(例如:ls 参数-a:显示隐藏文件;-l:排列方向)
cd 切换目录
mkdir指令:创建目录(例如多级目录创建:mkdir -p /home/animal/dog)
rmdir指令:删除空目录(例如:rmdir 目录路径;删除非空目录:rm -rf 目录路径)
touch指令:创建空文件(例如:touch hello.txt hello2.txt;可以一次性创建多个文件)
cp指令:拷贝文件,cp 源文件 目标文件,参数-r递归复制整个文件夹
(例如将home/aaa.txt拷贝到home/bbb/:cp aaa.txt bbb/)文件存在时覆盖问题:\cp强制覆盖
rm指令:参数:-r(递归删除)和-f(强制删除不提示)(例如 rm -rf a.txt) 删除:rm -rf 文件
mv指令:移动文件/目录或重命名(例如:重命名:mv a.txt b.txt;移动 mv a.txt /root)
cat指令:浏览文件,参数-n显示行号 |more
more指令:文本过滤器,加载全部并按页显示文本内容(enter一行一行往下;空格一页一页向下;

ctrl+b向上;ctrl+f向下)
less指令:分屏查看文件内容,不会将文件全部加载显示

输出重定向和>>追加指令:(例如:ls -al >文件 将列表信息写入文件覆盖性质 ls -al >>文件 将列
表信息追加到文件尾部)
cal指令:显示日历
echo指令:输出环境变量,输出当前的环境路径(例如输出环境变量:echo $PATH)
head指令:查看当前文件的前10航内容(例如:head 文件; 参数 -n;查看前5行 head -n 5 文件)
tail用于输出文件中尾部内容,默认情况下指令显示文件的后10行内容(例如:tail 文件)
(用于监视文件信息:tail -f 文件)
ln指令:软连接或符号链接 语法为ln -s 源文件 软连接文件
(打开a文件显示源文件root文件例如:ln -s /root a);删除软连接:rm -rf 软连接文件名
history指令:查看已经执行过的历史命令,也可以执行历史指令(执行编号为178的历史命令:!178)
时间日期类:
date:(时间:date;年月日,时分秒:date “+%Y-%m-%d %H:%M:%S”;)
设置系统日期:date -s 字符串时间(例如:date -s “2018-10-11 10:22:30”)
cal:日历 选择某一年的日历:cal 2018

解压压缩包:
gzip与gunzip指令(使用较少,压缩文件后原文件不保留):
gzip压缩文件;gunzip解压缩(生成后缀为.gz文件)
zip与uzip指令:
zip压缩文件;uzip解压缩文件
zip 选项 要压缩的内容(例如:zip -r 文件)
uzip 选项(有参数-d表示解压到目录) 解压缩文件
tar指令(既可以解压也可以压缩,参数不同):tar -xvf 文件(压缩文件)
指定文件夹: tar -xvf XXX.gz -C 路径
tar指令应用:
1.将两个a.txt和b.txt文件压缩成a.tar.gz: tar -zcvf a.tar.gz a.txt b.txt
2.将整个目录下的文件压缩:tar -zcvf a.tar.txt /home/yanxing
3.解压到当前目录:tar -zxvf a.tar.gz
4.将当前路径下的文件解压到指定文件:tar -zxvf myhome.tar.gz -C /home/yanixng
**组管理:**一般一个文件有所属者 所属组以及其他组等信息
查看文件所有者: ls -ahl
修改文件所有者:chown 用户名 文件名
修改文件所在的组:chgrp 组名 文件名
改变用户所在的组:usermod -g 组名 用户名 或者 usermod -d 目录名 用户名(改变该用户初始目录)
文件类型介绍:
-:表示普通文件 d:目录 l:软连接 c:字符设备(键盘,鼠标) b:块文件,硬盘
rw-表示所有者权限
r–表示所在组用户的权限,只有读权限
r–表示其他组用户的权限,只有读
数字:文件则表示硬链接的数;若是目录表示该目录子目录的个数
rwx:表示文件可读可写可执行;表示目录可以读取,可以修改(创建,删除),可以进入
权限的更改:
给定文件权限设置:chmod u=rwx,g=rw,o=r a.txt;(表示该用户可读可写可执行,该组用户可读可写,其

他组用户读)
给定文件用户所有者除去执行权限,增加组写权限:chmod u-x g+w a.txt
给定a.txt文件的所有用户添加读权限:chmod a+r a.txt
更改权限的方式二(使用数组进行更改权限):
规则:r=4 w=2 x=1(例如:chmoe 755 a.txt)
修改文件所有者:
chown newowner 文件(chown -R 用户名 文件/文件夹)
chown newowner
修改文件组
chgrp newgroup file(chgrp -R 组名 文件/文件夹)
{
groupadd police
groupadd badman //创建组
useradd -g police zs
useradd -g police ls
useradd -g badman ww
useradd -g badman gw//创建用户并放入组
passwd zs
passwd ls
passwd ww
pass gw //设置密码
//zs创建文件自己可读可写,本组可读,其他组无权限
chmod 640 01.txt
//zs修改文件权限,其他组可以读,本组人可读可写
chmod o=r,g=rw 01.txt
//ww想要查看其他组的文件,要么更改ww的组,要么更改文件的权限
usermod -g police ww(使用root用户将ww放入police组)
//zs给ww权限
chmod g=rx zs/(更改自己的文件夹权限可读可进入)

}

任务调度(crond)
基本语法:crontab 选项
crontab -r:终止任务调度
crontab -l:列出当前有哪些任务调度
service crond restart [重启任务调度]
例如:crontab -e ;/1**ls-l/etc/>/tmp/to.txt表示每小时的每分钟执行ls-l/etc/>tmp/to.txt
占位符
任务调度应用实例:
每隔一分钟将当前日期加入/tmp/mydate文件中
1.先编写文件mytask1.sh 文件中写入:date>>/tmp/mydate
2.给mystask1.sh一个可执行的权限 chmmod 744 mytask2.sh
3.crontab -e
4.
/1 * * * * /home/mystask1.sh
每隔1分钟,将当前日期和日历都追加到/home/mycal文件中
1.先编写文件mytask2.sh
文件中写:date>>/tmp/mycal;cal>>/tmp/mycal
2.给mystask1.sh一个可执行的权限 chmmod 744 mytask1.sh
3.crontab -e
4.
/1 * * * * /home/mystask2.sh
每天凌晨备份数据库文件
1.先编写文件mytask3.sh
文件中写:/usr/local/mysql/bin/mysqldump -u root -proot testdb>/tmp/mydb.bak
2.给mystask1.sh一个可执行的权限 chmmod 744 mytask3.sh
3.crontab -e
4.0 2 * * * /home/mystask2.sh

磁盘分区与挂载:
mbr分区:最多支持四个主分区;系统只在主分区;扩展的分区占一个主分区;最大支持2tb
gtb分区:支持无限主分区;最大支持18eb的大容量
linux分区:采用mount指令挂载硬盘分区指定分区对应的文件
IDE硬盘:驱动标识符hdx
查看系统的分区和挂载的情况:lsblk -f (老师不离开)
案例新加硬盘挂载到/home/newdesk
1)虚拟机添加新的硬盘(setting->硬盘->添加->SCSI)
2)分区 fdisk /dev/sdb(填入m )
3)格式化 mkfs -t ext4 /dev/sdb1
4)挂载 创建/home/newdisk ;挂载mount /dev/sdb1 /home/newdisk(临时挂载)
5)永久挂载:vim /etc/fstab;写入:/dev/sdb1 /home/newdisk mount -a
解挂载:umount /dev/sdb1或者umount /home/newdisk
磁盘情况查询:
df -h
查询指定目录占用磁盘情况:du -h /目录
参数:-s指定目录占用大小汇总;-h带计量单位;-a含文件;–max-depth=1文件深度;
-c列出文件明细,增加汇总值
常见题目:(以-开头为文件;以d开头为文件夹)
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
安装一个指令:yum install tree(安装tree指令)

网络配置(常采用NAT模式):
查看主机的ip(Edit编辑–VNNET虚拟网络设置—下边有ip地址)
以及网关(Edit–虚拟网络配置–NAT设置查看网关)
查看虚拟网络编辑器:edit–>虚拟网络
自动获取ip自动连接网络:
方式一:系统–首选项—网络连接–ipv4自动获取(缺点是每次获取的ip地址不一样)
方式二:固定ip,修改配置文件指定ip:vi /etc/sysconfig/network-scripts/ifcfg-eth0
每次更改网络配置重新启动网络服务不需要重新启动主机:service network restart

进程管理:
1.每个执行的程序都称为一个进程,每个进程分配一个id号
2.每个进程都有一个父进程,而这个父进程可以复制多个子进程
3.每个进程的存在方式有前台(可以在屏幕上进行操作)与后台(屏幕不进行显示)
4.一般系统进程以后台进程的方式存在,并且都会在系统中运行,关机时结束
查看进程的指令:ps
ps -a 显示当前终端的所有进程信息
ps -x 显示后台进程运行的参数
ps -u 以用户的格式显示进程信息
(VZS:占用的虚拟内存状况;RSS代表真是物理内存占用;TTY:使用终端;start:进程状态s休眠r运行;

time:进程启动时间;COMMAND:进程执行时的命令行)
使用管道命令查看某个服务:ps -aux|grep 进程名
应用实例:以全格式显示父进程(ppid)ps -ef|more(-e显示所有进程 -f全格式)
终止进程kill和killall
kill 选项 进程号(kill )
killall 进程名称(支持通配符)
案例:
1.踢出一个非法用户登录(ps -aux|grep sshd找到进程的id号;kill 进程号)
2.终止远程服务sshd,是当时再启动(杀死一个进程首先知道服务名;找到对应的id)
3.终止多个gedit编辑器(killall,通过名称关闭进程;关闭打开的所有编辑器killall gedit)
4.强制杀死一个终端(ps -aux|grep bash(bash对应的是一个终端);kill -9 终端进程号)
pstree 选项可以以树的形式展示(-p 显示进程PID -u显示进程的所属用户)

服务管理(Service)本质就是进程,运行在后台,通常都会监听某个端口(mysql,sshd,防火墙等)
Service管理指令:service 服务名 【start|stop|restart|reload|status】 systemctl
mysql(3306);sshd(22)
开启/关闭/状态防火墙:service iptables stop|service iptables start|service iptables status
telnet ip端口:使用windows的telnet ip 端口(远程连接:telnet 192.168.159.132 22)
查看服务:
方式1.使用setup—系统服务可以图形化查看服务
方式2./etc/init.d/
linux服务的运行级别(runlevel:0—6;级别设置在/etc/inittab)
0:停机状态,默认不为零
1:单用户工作状态,root权限,进制远程
2:多用户无网络(无NFS)
3:多用户有网络(有NFS)
4:系统未使用,保留
5:登录后进入图形GUI模式
6:系统正常关闭并启动,默认不为6
chkconfig指令:
1)查看服务 chkconfig --list|grep xxx
2)chkconfig 服务名 --list
3)chkconfig --level 5 服务名 on/off
案例:
1)显示当前系统的所有服务的各个运行级别的运行状态 bash>chkconfig --list
2)查看sshd服务的运行状态 bash>service sshd status
3)将sshd服务在运行级别5下设置为不自动启动 bash>chkconfig --level 5 sshd off
4)当运行级别为5时,关闭防火墙 bash>chkconfig --level 5 iptables off
5)在所有运行级别下,关闭防火墙 bash>chkconfig iptables off
6)在所有运行级别下,开启防火墙 bash>chkconfig iptables on
设置好服务后需要重启服务
监控网络状态:top 选项(按cpu使用排序:P、按内存:M、按pid排序N、q)
输入top可以查看当前运行的进程状况(当前时间,运行时间,当前的用户登录数):输入u用户名
输入top–输入k–输入进程id(杀死进程)
netstat -an/-p:-an按照一定顺序排列;-p显示哪个进行在调用
RPM(redhat Package Manager)与YUM()包管理:
查询已安装rpm列表:rpm -qa|grep xx
查询linux是否安装了火狐:rpm -qa|grep firefox
rpm -qi 软件名(查询软件的信息)
rpm -ql 软件名(软件的位置,文件位置)
rpm -qf 文件名(查询文件属于哪个软件包)
rpm的卸载与安装:
卸载:rpm -e rpm包名称(例如删除firefox:rpm -e firefox;提示软件包被依赖强制删除:rpm -e --nodeps foo)

安装:(ivh:install安装 verbose提示 hash进度)
首先找到firefix的rpm包,需要挂载到centos的iso文件,在/media/文件夹中找rpm
然后将其复制到opt下:cp fire-----.rpm /opt/
进入opt/ 使用rpm -ivh fire--------.rpm
yum是一个shell前端软件管理器,基于rpm包管理,能够从指定的服务器自动下载rpm包并安装
查询服务器是否有需要安装的软件:yum list|grep XXX
安装软件 : yum install XXX
首先将下载的jdk放置在opt目录下:在进行解压tar -vxzf jdk…;
配置环境变量:vim /etc/profile(使用大写的G直接移动到文件末尾)
加入:JAVA_HOME=/opt/jdk.1.7.0_79;PATH=/opt/jdk.1.7.0_79/bin;export JAVA_HOME PATH;
最后注销用户使其生效
安装tomcat:
1.解压到 /opt/
2.启动tomcat(执行startup.sh)
3.打开防火墙(外网访问linux的8080端口:vim /etc/sysconfig/iptables-----重新启动 service

iptables restart)
安装eclipse
解压到/opt/(tar -zxvf eclipse)
启动eclipse(进入解压的eclipse文件,使用命令./eclipse)
编写Hello world
编写jsp页面 测试
安装mysql(安装mysql5.6)
先查看是否有mysql:rpm -qal |grep mysql
删除lib库:rpm -e --nodeps mysql-libs
安装:yum -y install make gcc-c++ cmake bison-devel ncurses-devel
解压 /opt/下的mysql5.6
进入文件夹执行命令:

  cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -

DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -

DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -

DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -

DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

配置mysql:查看用户列表和用户组列表:cat /etc/passwd ;cat /etc/group
增加mysql组和mysql用户:groupadd mysql useradd -g mysql mysql
修改/usr/local/mysql权限:
chown -R mysql:mysql/usr/local/mysql
初始化mysql(这是一条指令):

  scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --

user=mysql

启动mysql:

  cp support-files/mysql.server /etc/init.d/mysql

手动启动 chkconfig mysql on
service mysql start
进入mysql:./mysql -u root -p
设置密码:set password = password(“root123”)
退出mysql:quit
配置环境:/etc/profile中最后一行加入路径/usr/local/mysql/bin:
刷新环境变量:source /etc/profile

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值