一、Linux 简介:(来自百度百科)

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。


Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。


主要特征:一种免费、安全、高效、可多用户、多任务操作,同时支持在多种平台上运行的操作系统。


二、VMware虚拟机安装以及centos安装


为了在windows上运行Linux,需要安装虚拟机(VMware 或 Virtrubox)。

之后下载centos6.5 或其他版本的 ISO 镜像文件。再利用虚拟机进行centos的安装。


安装时 分区选择“创建自定义分区” 创建标准分区,3个,分别为,/boot 200M ,swap 2G,/ (根目录) 剩余所有空间。

之后按照步骤进行即可。

(/boot:启动Linux的核心文件;SWAP分区就相当WINDOWS系统的虚拟内存。一般为内存的2倍。具体设多少合适这就要看系统的服务量了。服务量大自然要求交换分区大,要不会影响服务质量。服务量小的话,交换分区大就是浪费了。交换分区只是临时存储文件,不会保留。如果只是一般服务器的话2G内存2048也能满足要求。个人学习的话完全可以再小128,256都可以,不过是不能没有的。)


所谓镜像文件其实和rar ZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个操作系统、游戏等。它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。其实通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息。比如说系统文件、引导文件、分区表信息等,这样镜像文件就可以包含一个分区甚至是一块硬盘的所有信息。而通常意义上的刻录软件都可以直接将支持的镜像文件所包含的内容刻录到光盘上。其实,镜像文件就是光盘的“提取物”。)


三、配置IP地址

为了和外部机器通信(远程连接),需要给linux配置IP地址。


(安装时选择的是桥接,需要设置主机的IP为静态IP,windows命令中#ipconfig 获取windows IP地址)


第一步,#ifconfig -a 可显示网卡eth0 和 回环网卡 lo


eth0: ethernet的简写,一般用于以太网接口。 lo: local的简写,一般指本地环回接口

ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令)

第二步,#dhclient 自动获取IP             (dhclient -r 释放IP dhclient 获取IP)    然后#vi /etc/sysconfig/network-scripts//ifcfg-eth0 进入配置文件,进行修改。

      1,ONBOOT 改为yes,开机启动网卡。2,BOOTPROTO改为 static,静态。3,根据获取的IP添加

     IPADDR / NETMASK / GATEWY /DNS1 /DNS2 /  dns1和ippaddr 一致。 ESC #:wq保存退出。

    #ping www.baidu.com 测试。


四、Putty 远程连接工具以及密钥验证。


1,Putty ×××下载完整安装。

打开,在Host Name (or IP address) 下面的框中输入在linux中获取的ip地址,然后在Saved sesssions 自定义名字,打开即可连接linux 。

2,密钥验证。    

在开始菜单里找到puttygen打开,晃动鼠标完成进度条。生成密码(公钥),在下方的框中输入密码并保存私钥到本地电脑。

1,复制公钥粘贴到Linux的/root/.ssh/authorized_keys文件里,


2,默认/root/.ssh 这个目录是不存在的,需要我们手动创建

#mkdir /root/.ssh 并且修改权限为700:(700) -- 只有属主有读、写、执行权限。  

#chmod 700 /root/.ssh

创建完/root /.ssh 还在需要我们在/root /.ssh 目录里面手动创建一个文件

#vi /root/.ssh/authorized_keys (vi命令是打开或新建文件,此刻是新建了/authorized_keys文件)

把复制的公钥粘贴到Linux的/root/.ssh/authorized_keys文件里 

(i 进入编辑,Esc :wq 保存退出)

并且修改权限为600: (600) -- 只有属主有读写权限。

#chmod 600 /root/.ssh/authorized_keys  


3,关闭selinux的方法有两种:

  1临时关闭selinux: #setenforce 0  2永久关闭,编辑 #vi /etc/selinux/config 

  把SELINUX=enforcing改为SELINUX=disabled 重启机器后会生效  

  同时清楚防火墙规则 # iptables -F  再保存 #service iptables save 

  如果不保存重启机器后防火墙会重新加载规则


4, 打开putty软件 找到主机 选择load  点击左边的SSH  点下SHH前面的

    小加号 选择Auth  点击浏览找到存放私钥的路径  再点击回到会话窗口

    点击保存 即可使用密钥登录。


五、运行级别

#cat /etc/inittab 打开linux 7个运行级别

(inittab为linux初始化文件系统时init初始化程序用到的配置文件。这个文件负责设置init初始化程序初始化脚本在哪里;每个运行级初始化时运行的命令; 开机、关机、重启对应的命令;各运行级登陆时所运行的命令。)

Linux有7个运行级别,如下:

0:关机。

1:单用户字符界面。

2:不具备网络文件系统(NFS)功能的多用户字符界面。

3:具有网络功能的多用户字符界面。

4: 保留不用。

5:具有网络功能的图形用户界面。

6:重新启动系统。


#shutdown -r now  重启

#reboot 重启

#shutdown -h now 关机

#init 0  关机

#init 6  重启


#runlevel  查看系统运行级别 minimal 默认是N 3

 

#yum grouplist 系统可yum的组建列表 

#LANG=en 系统语言转换成英文

#yum groupinstall -y "Desktop"           

#yum groupinstall -y "X Window System" 

然后在虚拟机里 #init 5 切换


六、单用户模式


#reboot(重启进入单用户) 在它启动的时候三秒之内按任意键

e键进入编辑模式

a键进入更改内核的选项

c键进入到命令行模式


按e键 -按方向键选中第二行 -按e编辑-在最后面加“1”或“s”或“single”-回车-b键-运行“runlevel”查看运行级别-passwd更改root密码-reboot


关于单用户模式的作用,

A root密码忘记了,需要重置可以进入单用户

B 磁盘需要修复时

C 系统因为修改了某个配置文件不能正常启动了


七,救援模式

主要应用于系统无法进入的情况。

1,先设置光盘启动,虚拟机里linux设置,电源-启动时进入BIOS,修改BOOT顺序,CD-ROM Drive 排第一。F10 保存退出。回车进入系统开启页面,选择,Rescue installed system ,进入救援模式。

2,语言、键盘保持默认,不联网。下一步选择 continue ,最后选择 Shell  start shell ,进入root 环境。 (Rescu 环境下是把 linux 挂载到 /mnt/sysp_w_picpath , )此时还不能操作Linux系统上的文件,因为目前还在光盘的系统上,想要修改原来Linux中的文件需要转换一下。

#cd /mnt/sysp_w_picpath

#vi /etc/passwd

#chroot /mnt/sysp_w_picpath  

#passwd 修改密码


#exit 退出到救援模式。


八、cd ls 命令。


cd 后面什么也不加,直接切换到登录的家目录

cd ~切换到用户家目录,如果后面加上其他用户,则可以切换到其他用户下

cd -上个目录和当前目录来回切换

cd .当前目录

cd .. 切换到上一级目录


id查看当前用户的uid gid 组

whoami 查看当前的用户

pwd查看当前的路径

echo $HOME查看用户的家目录


ls ==list列出文件

ls -a列出隐藏文件

ls -l列出文件详细信息

ls -t以时间顺序列出,最新的在最上面

ls -i显示inode号

ls -ld列出目录本身信息

ls -h显示大小

ls -r反向列出


九、Linux 环境变量


#which 查找某个命令的绝对路径

#alias vieth=‘vi/etc/sysconfig/network-scripts/ifcfg-eth0’   #vieth  (alias 简化命令)

#vi .bashrc  把简化的命令放到这个文件里,即可永久生效。


环境变量PATH

#echo $PATH 


使用许多命令时,是直接打出命令,而没有使用这些命令的绝对路径,是因为这些命令的绝对路径就在PATH里。



如果你遇到一个非常长的命令,并且它的选项也很长,那么你有什么办法可以简化步骤(这里注意有带选项,选项也很难写)

A 用alias做别名

C 把这个命令和选项写成一个脚本,把这个脚本做一个自定义命令


十、快捷键


ctrl+l清屏

ctrl+d退出终端,或者使用logout、exit

ctrl+at跳到开始

ctrl+e跳到最后

ctrl+u向前删除

ctrl+k向后删除

ctrl+c中断命令

ctrl+z暂停命令

fg休眠恢复

ctrl+s锁定屏幕

ctrl+q锁定解除


十一、创建目录、rm命令、cp命令、移动和重命名mv、文件查看命令。


创建目录mkdir 

创建级联目录mkdir -p 

显示过程-v


使用tree命令查看树状结构


rmdir -pv删除级联目标显示过程,但是不能删除非空目录

-------------------------------------------------------------

rm

常用选项

-f 强制删除不提示错误信息

-i 安全位提示是否删除

-r,-R 删除目录时用此选项

-v 可视化


touch 创建文件命令

#/bin/rm -r 相当于rm -rf强制删除目录

man 命令 q键退出

-----------------------------------------------------

cp 1源文件 2目标文件

cp -r选项 作用是复制目录时必须加-r选项。

cp -r 源目录 目标目录

cp一个文件,如果目标已经存在,会问我们是否要覆盖,如何做可以不让它询问?

B 使用绝对路径/bin/cp

C unalias cp


cp一个目录时,如果目标目录已经存在会发生什么?(不用考虑太复杂,例如cp  -r 123   abc  其中abc目录已经存在了。)A。 源目录会放到目标目录下面

--------------------------------------------------------------------

mv 命令,移动和重命名

(1)如果移动的是文件txt1,如果目标文件不存在,则会直接重命名txt2,原文件txt1删除

(2)如果移动的是文件txt1,如果目标文件存在,则会提示是否覆盖成txt2,覆盖后重命名为txt2并删除原文件txt1

(3)如果移动的是文件txt1,目标是一个目录dir1,则直接会将文件剪切到dir1里,/dir1/txt1

(4)如果移动的是个目录dir1,目标是文件名,则直接会重命名

(5)如果移动的是目录dir1,目标是个空目录dir2,则直接会将dir1和他的子文件直接剪切到dir2里

(6)如果移动的是目录dir1,目标是个非空目录dir2,则会剪切到dir2里面,如果有相同的名称会被覆盖

(7)如果移动的是目录dir1,目标目录不存在,则会直接重命名

-------------------------------------------------------------------------------

文件查看命令

cat正常顺序的查看 从头到尾

tac倒序的查看 从尾到头

more 显示文件,一屏一屏的看,只能由上到下 空格键翻屏,回车键翻行

less 显示文件,可以自由翻看 (上下)

j向下

k向上

ctrl b向上翻屏

ctrl f向下翻屏

g进入到首行

G进入到尾行 

/ 可以搜索关键字 按n 向下 N向上

?也可以搜索关键字 按n向上 N向下    于上面7的正好相反

head tail 只显示首尾十行 也可以 用 -?(数字) 显示几行 -f 可以动态查看的命令

pageup 和pagedown 也可以翻屏