常用命令积累
- pwd :查看当前在哪个目录
- useradd xiaoming :添加一个xiaoming用户(只有有root权限的人可以)
- passwd xiaoming:给小明设置密码,if只写passwd,那么默认认为是更改当前用户密码。
vi /etc/inittab:进入编辑这个文件,并且找到id:x:initdefault这一行后,这个数字(这里用x代表)规定了linux的运行级别(指开机后所使用的状态):
数字0:关机 1: 单用户 2: 多用户脱机(多用户无网) 3:多用户有网 4:暂时没有这个 5:图形界面 6:系统重启
如果被设置成了6,那么就利用漏洞,在进入red hat标志的界面时就按e,进入更改设置界面,接着选中第二个选项,按e,进入重新设置界面,按 空格+1,这里的1代表运行级别是1,这里只能选1。因为linux不会对单用户模式进行密码验证。就可以绕过密码,进入系统,然后对其进行文件更改,甚至是密码更改。然后再重启就可以了。
- ls -a/-l:列出文件,-a表示列出隐藏文件,-l表示还要列出文件的具体信息。 ls -al 参数同时使用也是可以的
- cp a.out /home/xiaoming/ :复制a.out文件到xiaoming目录下
- more命令:查看一个数据很多的文件时可以使用 more hello.java那么就分页查看这个很多的文件,利用ctrl+pagedown,up,或者空格键就可以上翻页,下翻页。还有一个用法:,ls -l /etc/ | more同样实现翻页。这里有一个管道命令 |
- 管道命令 | :将上一个命令的结果交给后面命令处理。
- less命令:与more作用差不多,实现分页,并可以查看上一页下一页。有些差别,less命令需要按q推出才可以。
-grep命令:查找关键字,grep “wangxinyu” aaa.java表示在aaa.java中找wangxinyu这个关键字所在行。
grep -n “wangxinyu” aaa.java 会显示字段所在行 - find命令:查找文件或者文件名 find 目录名 -name 文件名(这里参数-name表示按照名字查找,还可以换参数)
- >和>>:输出重定向命令,将前面命令的结果输出到后面的文件中,>与>>区别是,>会新建一个文件,无论之前是否有相同文件,都会被覆盖掉。>>会将结果内容输出到后面文件的末尾。不会新建文件。0,代表输入定向;1,代表输出重定向,2代表错误输出重定向。 举例:ifconfig xxxx 2>>test.log 2表示有错误输出时重定向,注意test.log与2>>之间无空格。但这样的很少用,谁要是知道了语句写错,产生错误信息,谁还会去写错呢?于是就使其执行正确时,重定向到test文件中记录,错误时也这样:ifconfig xxx >> test.log 2>&1,命令正确时信息存储到test.log,错误时,错误信息这里用2指代输出到1,由1再输出到tets.log中。简单写法:ifconfig xxxx &>>test.log。如果正确和错误输出文件不一致:ifconfig xxxx >>test1.log 2>>test2.log
- <和<<:输入重定向命令 命令 < 文件名,将文件里面的内容作为输入内容。<<跟<不一样,它是作为标识符使用,使用时作为开始和结束符。
- cat命令:与vi相比,只能查看不能修改。
用户组和用户
每个用户都包含在组中,每个用户可以在多个组中。
- groupadd police:添加一个police组 添加的组在etc的group文件中。,可以用vi或者cat命令查看。
- useradd -g police xiaoming:创建并将此用户放到police用户组
- usermod -g police xiaoming:改变已有用户的用户组。
- usermod -d /etc xiaoming:改变用户登录时默认的初始目录。
- -rw-r–r–:第一个-:代表文件类型:-代表文件;d代表文件夹;第二组三个代表文件所有者的权限;第三组代表所有者是所在组的权限;第四组代表其他组权限。权限三种字母表示:r代表读,w代表写,x代表可执行。
- chmod 777 xiaoming :修改小明这个文件夹的权限。只有此文件所有者或者root才有权限修改。修改过后,就可以让之前别人不能访问的文件夹进行访问了。
- su - xiaoming/su xiaoming:切换到小明用户,第一种会将目录定位到/home/小明中,第二种不会变化目录。
- cat/vi /etc/passwd:查看用户信息
- cat/vi /etc/group:查看用户组信息。
linux使用Windows中的文件
- 将windows中的文件包成iso镜像文件,在vm中右键所在虚拟机选项,找到设置去,cd-rom这一项,将自己的iso文件添加进去即可。然后使用虚拟机的mount命令:mount /mnt/cdrom/。 将文件挂载到mnt目录下面的cd-rom文件夹下,这里的文件夹可以随意指定,一般指定到mnt目录下的目录。
- 还是那个设置位置,点选项,会有一个共享文件目录选项,设置即可(不过一般不常用)
安装文件
将文件挂载上之后,就可以安装了,进入到该文件所在目录下,输入:./文件名即可。便可以自动安装,这里指安装.bin结尾的文件。如果是.tar.gz结尾,需要使用tar命令。
- tar :tar -zxvf xxx.tar.gz
/etc/profile
环境变量配置文件
可以通过修改这个里面的内容来满足我们的需要,注释符号为:‘#’
查看环境变量
输入env即可
切换shell
chsh -s shell所在目录 ,这是在切换不同的shell,一般linux有三种shell,存放在bin目录下,使用ls /bin/sh即可查看, 代表通配符,表示一个或者多个任意字段。
显示历史命令
输入:history,即可显示历史命令。
输入:!5, 表示执行历史编号为5的命令。
输入:!!,表示执行上一条命令
输入:!ls,表示执行最后一个以ls开头的命令,不一定是ls命令,以ls开头。
不同用户的历史记录保存在:各自家目录的.bash_history中。
history -w 由于.bash_history文件中保存的是上次用户退出后的记录,本次用户登陆后的命令记录并未写入,-w即将本次登陆后至现在的命令写入到文件中去。
history -c 清空历史命令。清空history命令的历史,不清空.bash_history文件内容。
配置ip地址
- root用户下输入setup,进入到设置界面。enter到network选项,接着提示是否要进行设置,选yes,然后进入到设置界面。如果想要动态设置ip,那么选择dynamic ip configuration,如果是指定ip,就自己在下面手动输入即可。/结束后运行:/etc/rc.d/init.d/network restart重启生效/
- root用户下输入:ifconfig eth0 ip地址,重新设置IP地址;输入:ifconfig eth0 network 子网掩码,重新设置子网掩码,网关会由系统自动配置。执行后会立即生效,但是重启之后,将恢复为原来的,是一个临时性的命令。
- root用户编辑文件 /etc/sysconfig/network-scripts/ifcfg-eth0,如果有多个网卡,将会找到eth1,eth2,等文件。同样修改保存后,执行/etc/rc.d/init.d/network restart命令。
实际上三种方式都是最终修改第三种方式的那个文件
ping命令和tracert命令
ping命令用来检测两台电脑是否在一个网络内;
tracert命令在检测的同时打印出途径的路由;
途径的路由根据rip协议,最多不能超过15跳,每经过一个路由算一跳,超过了也算作没找到路由。就说不存在这个网址。
rpm 命令
rpm -qa 查看所有rpm的安装文件
rpm -q 文件名 查看是否安装了指定文件。
rpm -e 程序名 删除已安装的应用程序
rpm -e –nodeps 程序名 强制删除已安装的程序
有时其他一些程序与被删除程序有依赖性,那么就提示不能删除,因此要指定参数:nodeps–>nodependence来告知系统忽略这种依赖关系。
sudo命令
此命令是用来在不切换用户的情况下就实现root用户权限。
sudo 要是用的命令:例如,sudo ls 以root用户权限使用ls命令。
用户使用sudo需要在/etc/sudoers下进行配置,找到root那一行,在下面配置自己用户。最后的参数代表可以拥有哪个命令,all代表所有命令
普通用户命令使用
root用户可以使用/bin,/sbin目录下的命令,如果普通用户也想使用,就要告之shell命令。在每个用户的目录下都会有一个.bash_profile环境变量文件,在里面设置path变量即可:PATH= PATH: HOME/bin:/sbin,在下面加:/sbin,即把sbin目录下命令加入到普通用户中。
注意,使用sudo命令时,必须是这个普通用户能够使用的命令,才可以谈,赋予它root权限执行,如果普通用户没有使用这个命令的权限,那么就不能执行sudo,会报错:command not found。
linux下的用户变量和系统变量位置
/etc/profile 系统变量文件
/用户目录/.bash_profile 用户变量
.bashrc,该文件也是在etc与各用户目录下都有,是一个sh文件,里面记录了,所属用户登录后要执行的命令。
永久关闭防火墙
chkconfig iptables on/off
防火墙文件在etc/init.d/iptables 这里
查看状态可以用 /etc/init.d/iptables status
创建链接文件 ln
ln -s /home/aaa.java /home/bbb 在home目录下创建一个bbb链接文件指向aaa.java这个文件,相当于windows中的快捷方式一样。
-s代表软链接,不写默认是硬链接。
软链接和硬链接
硬链接可以看成是java中的引用,它与原文件共同指向搜索表,由搜索表查询出详细信息来获取文件。它要求链接文件与原文件要在同一个分区中。原文件删除后,硬链接文件仍可以使用。
软链接有自己的i节点(可以理解为搜索表的主键)和数据块,但是其数据块中只保存所指向文件的i节点与原文件名。软链接可以跨分区,推荐使用。原文件删除后,很显然,软链接文件由于找不到文件,因此不能使用。软链接的源文件一定要写绝对路径,不然只能是源文件与创建的链接文件在同一目录下才可以找得到,这点硬链接没有要求。
find命令再一遍
find /home -amin -10 查找home文件夹下,10分钟之后存取过的文件或目录
find /home -atime -10 查找10小时内存取过得文件或目录
find /home -cmin -10 10分钟内修改过得文件
find /home -ctime +10 10小时前更改过得文件
find /home -size +10 查找home下文件大小为10k的文件
chkconfig 开启关闭/增加减少 系统服务
chkconfig [–add][–del][–list][系统服务] 增加/减少/列表系统服务
chkconfig [–level <等级代号>][系统服务][on/off/reset] 开启/关闭/重置 系统服务
export增加环境变量
export PATH=$PATH:路径
增加环境变量,
如果在命令行下直接敲,那么,为当前用户增加path变量,并且是临时的;
如果在环境变量的文件下敲,那么将永久增加这个环境变量。在用户的.bash_profile下增加,就是在该用户环境中增加此环境变量。如果在/etc/profile下就是在所有用户中增加
linux与windows不同,windows可以在当前路径下查找文件执行,而linux只有找环境变量目录执行。因此为何linux下.sh文件不能只接写xxx.sh,而是写./xxx.sh
echo,显示指定环境变量
echo $PATH 显示path变量
echo $USER 显示user变量
touch命令 创建一个空文件
touch 目录+文件名 即可 例如:touch /home/a 在home目录下创建一个a空文件
alias命令 取别名/删除别名
alias llh='ls -l /home'; 取别名
unalias llh; 删除别名
linux启动过程分析
- bios自检
- 启动grub/LILO
- 运行linux内核并检测硬件 (硬件指打印机等)
- 运行系统第一个进程init
- init读取/etc/inittab下的数据进行初始化
- /etc/rc.d/rc.sysinit文件
- /etc/rc.d/rcX.d/[ks]* 运行或停止相应服务,运行以s开头的服务;停止以k开头的服务。
- /etc/rc.d/rc.local 执行本地特殊配置
- 其他特殊服务
vi编辑器
vi编辑器
1.命令行下输入vi hello.java//编辑一个hello.java文件
2.输入i 回车,进入插入模式
3.按esc,进入命令模式
4.输入:wq,保存并退出
5.输入:q!退出不保存
编辑器里面支持各类语言的语法格式,关键字
编译文件和运行文件
1. java文件: javac或者如果有gcc自带的java编译器gcj也可以,linux一般不自带所以使用自己安装的javac即可。运行用java命令
2. c文件:编译 gcc xxx.cpp 如果这里不给其取名字,那么系统自动赋给它一个名字。 运行 ./编译生成的文件名。
如果想要编译时取名字,那么gcc -o 自定义名字 xxx.cpp 关键字o的意思是‘out’输出,以。。。名字输出文件
任务调度
什么是任务调度?
任务调度是系统在某个时间执行的特定的任务或程序
crontab 命令
直接用crontab -e来写
该命令在/etc/crontab
设置任务:crontab -e 回车后进入设置页面
假设任务是:每天的凌晨两点要将一个日期写入到一个固定文件中,那么:
date >> /home/mydate,这句话是说,查询出系统时间,并将系统时间写入到mydate这个文件中的末尾。如果开始没有,将新建一个此文件。
0 2 * * * date >> /home/mydate ,这句话是说,在每天的凌晨两点,做上述事件。
第一参数表示:一个小时的第几分钟,从0开始;第二个参数表示:一天中的第几个小时;第三个参数表示:一个月第几天,从1开始;第四个表示:以年中第几个月,从1开始;第五个参数表示一个星期的第几天,从0开始,到6。
在设置页面写完该命令,即像vi命令一样保存退出即可生效。
还可以使用shell编程方式来写。
创建一个.sh文件,例如:mytest.sh,将命令以及可能涉及到的逻辑控制语句写入到里面,如果没有逻辑控制,直接写命令即可。保存后,再进入到crontab -e中写例如:* * * * * /home/mytest.sh,保存即可,这样将命令封装起来,有益于管理,并且shell可以进行编程式编写。
删除调度任务
crontab -r r代表remove
mysql
mysql 安装
tar文件解压
tar -zxvf 包名 即可
创建一个用户组用于mysql
groupadd mysql
创建一个这个组的用户mysql
useradd -g mysql mysql
进入到解压缩完的mysql目录(我这里的目录名叫mysql)
cd mysql
初始化mysql,并将新建的mysql这个用户赋给它
scripts/mysql_install_db --user=mysql 里面scripts目录下的mysql_install_db
改变mysql文件夹下所有者
chown -R root . 改变目录所有者命令,-R表示递归目标文件夹下所有文件,必须大写;root为目标用户;.代表当前文件夹。 chown -R mysql data 将data文件改成mysql所属,因为一会需要用mysql用户来启动它。 chgrp -R mysql . 将当前文件夹下文件都改成mysql组
启动mysql
bin/mysqld_safe --user=mysql & 以后台方式启动mysql,启动用户是mysql
8.使用mysql
进入到bin目录下,找到mysql这个可执行文件
./mysql -u root -p 回车
会提示输入密码,默认是空密码,回车进入。
这个界面就熟悉了
9.停止mysql服务
在bin目录下面,运行mysqladmin shutdown即可。
mysql备份
备份整个数据库
mysqldump -u root -p 密码 数据库名>/home/data.bak
上述使用mysqldump命令将指定数据库中的数据备份到home目录下的data.bak中,后缀名不是死的,因为习惯.bak是备份缩写,所以习惯把备份文件起名为.bak.如果备份多个数据库就用逗号隔开即可
备份单个表数据/视图等
mysqldump -u root -p 密码 数据库名.表名 > /home/data.bak
mysql恢复文件
恢复表和视图等操作同样在数据库后面.表名或者视图名等就行。
mysql -u root -p 密码 数据库名 < /home/data.bak
一般提前建立一个空数据库,用于恢复数据
shell和bat
shell
什么是shell,从某一功能上来说shell是用来解释用户输入的命令然后将命令再输入给机器的一种中间脚本。但是它的功能不止这些。它的功能类似于windows下面的批处理文件。
Windows下 .bat文件
双击可以执行的文件,里面写的是dos命令。双击后执行里面的dos命令。
ssh
- ssh是一种远程操作服务,linux自带ssh服务端,并且是开机自启动的,监听端口号是22。
分区
linux分区
- 基本分区与扩展分区两种。
- 两者数目之和不能超过4个,基本分区可以使用而且不能再进行分区;扩展分区必须再进行分区才可以使用。
- 磁盘开始被分为一个个扇形分区,512字节一个扇区。bios启动时读取磁盘第一个分区中信息,其中446记录启动信息,64字节进行分区表示,16个字节表示一个分区。进而64/16=4,所以最多只能有四个主分区。
- 由扩展分区再分下去的就称之为逻辑分区。而且逻辑分区没有数量的限制。
- 在windows下,右击我的电脑——>管理——>磁盘管理就可以看到分区
- linux下 ,输入fdisk -l 看到结果是/dev/sda1,/dev/sda2,..各个磁盘使用情况
这里sd代表硬盘名,a代表第一块磁盘,如果有第二块磁盘,会显示b,以此类推;1,2,3代表分区。因为主分区+扩展分区最多有四个,所以编号前四个是主分区或者扩展分区,从第五个开始是逻辑分区的编号。即使主分区加扩展分区不满4个,逻辑分区也只能从5开始。 - df -l:列出磁盘在哪个目录下挂载。 df /dev/shm 查看这个目录下在哪块磁盘上
- mount /dev/sda1 /usr:将sda1磁盘挂载到usr目录下。
linux安装时的分区划分
安装linux系统之后,将会对磁盘进行划分:一般是这样的,分为三个
1./boot 下面挂载一个,100MB---启动分区,系统启动时依赖于boot这个文件夹,所以建议给其分配一个分区,让其单独管理。这样不会影响系统启动。
2.swap交换区挂载一个,是物理内存的2倍,也就是8G X 2=16G,但是它不能超过256MB,这个规定是以前制定的,因为之前电脑内存很小。现在一般统一指定它为最大,256MB。swap分区作为从磁盘划分出来的当做内存使用的空间,一般是内存的2倍。
3./ 根目录下面挂载:将前两个剩余的都挂载在根目录下。
注意:不要被数据迷惑,挂载的是磁盘空间,不是内存。
磁盘目录 挂载点 类型 大小
/dev/sda1 / ext3 1000M
/dev/sda2 /boot ext3 100M
/dev/sda3 swap 256M
上面举了一个例子:swap属于类型,而且这个分区很特殊,没有挂载点。
进程
正在执行的程序
蓝屏原因
内存条与操作系统不兼容,操作系统指定的位置在为此程序分配到的内存区域中找不到,或者请求了一个越界地址。就会发生蓝屏。
前台进程与后台进程
前台进程指的是可以看到的进程,后台进程指的是实际在运行,但是在前台看不到。
显示进程
ps -a:显示所有进程
其中pid为1的进程是原始进程,所有其他进程都是由它开启。
杀掉进程
kill pid,pid代表进程号
kill -9 pid 系统会自动捕捉信号来判断杀死的进程是否有用,可能导致命令执行后,进程没有被杀死,相当于命令被忽略了。-9代表传送给系统信息,强制杀死该进程。
动态监听进程命令top
top 使用方式与ps命令一样,输入 top 回车。这时光标定在某一行上,在这里可以指定查看哪个用户的进程。
用法是:输入,u,弹出提示,输入用户名回车即可。
僵尸进程zombie
子进程与父进程之间的连接突然断开,父进程来不及回收子进程的资源,导致资源没有回收成功,这个子进程被称之为僵尸进程。
虚拟内存
当内存不够的时候可以使用硬盘中的一部分来虚拟为内存使用,一般大小要小于等于内存的二倍,虚拟多了没有用。
netstat命令
查看网络连接和网络状态的命令
通常:netstat -an,如果要显示进程号,那么-anp
这个命令可以用来查看是否有不知名的访问,管理可以对其封杀。
linux目录结构
- root:存放root用户的相关用户
- home:存放普通用户的相关文件
- bin:存放命令目录
- sbin:要有一定权限才能使用的命令
- mnt:默认挂载目录
- etc:配置文件
- var:存放经常变化的文件
- boot:引导文件,跟系统相关。
- usr:默认安装文件夹
- dev:device,设备,访问外部设备的端口
- opt:安装第三方
软件时的默认目录。
挂载:linux没有磁盘分区概念,磁盘的区瓜分在根目录在个一些特定目录中,如果想要给一个磁盘划分区,那么就要使用mount命令把空间挂在某一个目录下,就叫挂载。
压缩和解压缩
zip压缩
zip aa.zip 被压缩的文件名
被压缩的文件名可以写多个,不必写逗号分开
zip -r aa.zip 文件夹路径 即可压缩文件夹 -r表示递归压缩文件夹下的所有文件
zip -m aa.zip 被压缩文件 这命令是压缩后自动删除源文件。
unzip解压缩
unzip aa.zip -d 目录 举例: unzip aa.zip -d /home 将aa.zip解压缩到home目录下
将aa.zip 解压到指定文件夹下,如果不写,那么解压到当前文件夹下。
gzip压缩
gzip 源文件名即可
gzip解压缩
gzip -d 压缩文件名
gunzip 压缩文件名
两种方式均可
- gzip方式不能压缩文件夹,zip可以
tar打包命令,解决gz压缩不能压缩文件夹的尴尬
tar -cvf 打包后名 源文件/文件夹名
c代表打包
v代表显示过程
f代表打包后文件名,后面立即接文件名,所以看到它是放在最后写的。
- 文件夹打包成tar文件后,就可以用gz来压缩了,所以很多文件是.tar.gz
tar解包
tar -xvf 打包的文件名
x代表解包
一次性打包成.tar.gz
tar -zcvf 生成包名 源文件/夹(如果有多个文件一起打包,后面空格继续写就行,不必逗号分开)
z代表目标是tar.gz
解压.tar.gz
tar -zxvf 生成的包名 -c 目录 解压到指定目录
tar不解压缩,查看压缩包内容
tar -ztvf 包名 t表示test,测试,这里代表查看里面内容,不真正解压缩。
more命令
more filename 例如:more /home/oracle/a.txt 显示a.txt文件内容,与cat命令很接近,但是可以分页显示
more +n filename n指数字,该参数+n表示,从文件的第几行开始显示。
文件格式化
格式化到底做了什么?
什么是格式化?
1.清空分区中的数据————>清空文件的目的是为了写入文件系统,并给分区重新分数据块,例子就像给衣柜打隔断,需要先把衣服取出来,再去做这件事,系统格式化也是一样,如果不这样做,原本的文件数据也会被破坏,倒不如直接将数据清空效率高一点。
2.格式化是根据用户选定的文件系统如,ntfs,在磁盘特定区域写入特定数据。也就是给磁盘分区分成等大小数据块,数据块的大小是磁盘的最小存储空间。windows默认是4KB。
3.在分区内,建立二维表格,将用户存放文件时产生的一些信息记录起来,当用户访问文件时,首先访问这个二维表格,通过这个表格找到这个文件。
文件搜索
locate命令:locate命令不同于find命令,find是遍历整个所要找的目录来搜索,locate命令在var/lib/mlocate这个文件夹里面包含的数据库文件中搜索,这个文件是locate自己创建的一个数据库,里面存储了文件名。新建文件后想要搜索到,需手动更新这个数据库:updatedb这个命令,它自动更新数据库以天作为单位,每天更新一次。
/etc/updatedb.conf这个文件是locate命令搜索的规则配置文件
一般有一下配置:
prune_bind_mounts = 'yes'这句话在文件开头,表示下面的搜索限制都生效,如果填入的是no,表示都不生效。
prunefs = "xxxxx";表示等号右边代表的文件系统都不被locate命令搜索
prunenames="XXXXXXXXXX";表示等号右边的名称的文件都不搜索
prunepaths="xxxxxxx";表示等号右边的目录都不搜索。
搜索命令的命令
有时要知道这个命令再哪个目录下存放的,就使用这个命令:whereis 命令名。 例如:whereis ls。类似的还有whatis ls,表示这个命令是干啥用的。
参数-b表示:不查看命令帮助文档位置,只查看命令所在位置。
参数-m表示相反。
which命令与whereis很像但是which会找出所查找命令的别名(alias命令起的名字,也有系统自带给一些命令别名)。
last命令查看以往登录用户
直接输入:last即可,last命令读取的是:/var/log/wtmp文件。这类文件不能使用vi等编辑器打开,因为是乱码,只能使用这种命令打开。
w命令和who命令查看在线用户
直接输入w和who,显示正在连接的用户。
在shell中创建子shell
直接输入linux中自带的shell种类就行,例如:sh,bash等。输入:sh,回车即可。exit就能推出这个子shell。
source命令
source hello.sh 它执行一个文件中的shell命令。
shell快捷键
crtl+l,清屏(输入clear命令也可)
ctrl+u,假如输入命令有误,要把输入的字符清空,用此命令
ctrl+a,光标移动到首位。
ctrl+e,光标移动到末尾。
标准输入输出
- 标准输入是:键盘,对应/dev/stdin
- 标准输出是:显示器,对应/dev/stdout
- 标准错误输出是:显示器,对应/dev/stderr
wc命令,输入统计命令
输入wc 回车,系统会要求你输出字符,输入 crtl+d,会结束输入,并统计出行数,单词数,字节数。
多命令顺序执行
- ; 可同时执行两个命令
- && 第一个命令执行成功才可以执行第二个命令
- || 第一个命令执行正确,第二个命令不执行;第一个命令执行不正确,第二个命令执行。逻辑或,有一个正确就不管另一个了。
特殊符号
- 单引号:单引号中任何符号都被看作是一个字符
- 双引号:$,`,\有特殊含义,其他字符被看做是正常字符
- 反引号:`(键盘~这个按键),它将里面的内容当做命令执行
- $():这个作用与反引号一模一样,因为反引号经常被看错成单引号所以用这个来替代。
osi七层框架
物理层:比特传输
数据链路层:mac地址写入,检测修正帧
网络层:IP地址写入(也成逻辑地址),选择路由器到达路径
传输层:tcp/udp,传输的错误检测,流量控制(网速快就预加载,网速慢就缓冲)
会话层:应用会话的管理。应用是否涉及到网络传输,如果不涉及直接将应用交给本机,如果涉及,将信息发送给传输层。
表示层:文件解释为二进制,文件加密解密等
应用层:应用服务提供的接口。
dns
- dns 域名系统里面记录根域名IP地址,找到根域名后,根域名服务器中存放一级域名IP地址,因为一级的域名有多个,所以一级域名服务器有多个。接着找到对应的二级域名服务器,找到此网址ip。www是主机名,是企业自己去取的。一般人都用www命名。
- 经常看到www.sina.com.cn发现有cn和com两个一级域名,这是因为此网站在cn和com这两个域名服务器都进行了注册,无论输入www.sina.cn或者www.sina.com都可以进行访问,也算是防止了钓鱼网站将其中某一个进行注册。
如果新拷过来的虚拟机配置好ip无法和主机通讯
vim /etc/sysconfig/network-scripts/ifcfg-eth0 编辑这个文件里面的ONBOOT字段,如果是no,改为yes。意思是开启网卡。
重启网络服务
还是同样的文件,将里面的代表mac地址的字段删除,这个是与电脑mac地址绑定的,如果是拷过来的,这个文件没有改是不行的。需要手动该。
rm -rf /etc/udev/rules.d/70-persistent-net.rules 删除网卡和mac地址绑定文件。
重启虚拟机就好了
桥接和nat和仅主机三种模式
- 桥接代表:虚拟机共享真实机的网卡,配置时要将虚拟机网段与真实机网卡网段在同一个网段。点击编辑,虚拟机网络编辑器,可以手动添加一个桥接模式,如果有也可以修改配置,可以查看到桥接模式使用的是哪一个网卡,电脑有一个有线网卡和一个无线网卡。
- nat与vmware8一个网段。
- 仅主机与vmware1一个网段。
桥接坏处是要占用一个真实ip,好处是可以与外界通讯;其他两种方式是只能与本真实机之间通讯。
ssh命令
ssh 用户名@ip地址:ssh root@192.168.1.2 想要远程管理192.168.1.2这台主机
linux用户会根据自己的密码生成相应的公钥和私钥。
ssh命令输入后如果第一次管理这台主机,会提示是否下载它的公钥,输入yes,提示输入密码,即这个用户的密码。之后就可以进行远程管理。
此命令采用非对称加密方式。
权限问题
对于文件来说:r代表读,w代表修改里面的内容,x代表执行
对于文件夹来说:r代表可以ls查看里面的内容,w代表可以操作里面的内容。x对于文件夹来说没有任何意义。因为它不能执行。
上一层次目录决定对里面内容的操作,所以说文件有w权限并不能说它有删除的权限,文件是上级目录里面的内容,只有上级目录才有此对它删除的权限。
文件默认权限
umask命令,查看设置文件默认权限。umask为四位,第一位是特殊权限位,从第二位开始是正常的三位权限。
- 文件:系统不允许文件一建立就执行,所以文件最大权限是666,666换成字母是 -rw-rw-rw- 减去umask代表的字母,就是文件默认权限。
- 目录最大权限可以为777,
- /etc/profile环境变量中是永久修改。