Linux学习

操作系统(本件的图片操作过程在个人有道云笔记里)

作用

管理计算机硬件和软件的系统。

计算机哪几部分组成

运算器,控制器,存储设备,输入设备,输出设备

文件格式

Windows

FAT,NTFS,exFAT

Linux

Ext,Ext2-4

主流LINUX

Centos

7 mini 64bit

Ubuntu

Ubuntu 1604 server 64

下载地址

centos下载地址:

网易镜像:http://mirrors.163.com/centos/6/isos/

搜狐镜像:http://mirrors.sohu.com/centos/6/isos/

ubuntu下载地址:

官网下载汇总信息:http://mirrors.zju.edu.cn/ubuntu-releases/16.04/

http://mirrors.zju.edu.cn/ubuntu-releases/16.04/ubuntu-16.04.5-server-amd64.iso

http://mirrors.zju.edu.cn/ubuntu-releases/16.04/ubuntu-16.04.5-server-i386.iso

安装虚拟机前提条件

软件环境

这个windows自带的虚拟机:

不好用

功能不强大

收费

基于ubuntu系统集成的

硬件环境

需要打开笔记本BIOS中的IVT对虚拟化的支持

虚拟机的选择

Vmware

功能强、收费

Oracle VM VirtualBox(推荐)

免费、开源、轻量好用

 

安装VMWare虚拟机

安装CentOS

http://archive.kernel.org/centos-vault/7.2.1511/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso

安装VMTools工具

1)什么是VMtools

VM tools顾名思义就是Vmware的一组工具。主要用于虚拟主机显示优化与调整,另外还可以方便虚拟主机与本机的交互,如允许共享文件夹,甚至可以直接从本机向虚拟主机拖放文件、鼠标无缝切换、显示分辨率调整等,十分实用。

2)先启动CentOS并成功登录如下图,发现底部提示且窗口中等大小,准备安装

3)选择虚拟机菜单栏--安装VMware tools

4)光驱自动挂载VMTools

5)右键解压VMwaretools-9.6.2-1688356.tar.gz

进入文件夹并确认看到vmware-install.pl文件

6)运行vmware-install.pl文件

最后用./vmware-install.pl”命令来运行该安装程序,然后根据屏幕提示一路回车。到此整个安装过程算是完成了。

7)直接按到/dev/hdc...停止为止,安装完成

8)重启CentOS, 这时候屏幕变成全屏了

9)设置共享文件夹,实现Windows ß--------àCentOS文件共享

虚拟机屏幕保护设置

IVT虚拟化支持

1)异常情况

2)宿主机BIOS设置中的硬件虚拟化被禁用了

需要打开笔记本BIOS中的IVT对虚拟化的支持

安装VirtualBox虚拟机

网址

https://www.virtualbox.org/

下载

安装

创建虚拟机

终端工具

XShell

有免费共享版,轻量级、界面好看、操作友好。

SecureCRT

商业版本需要破解

其他

SSH Secure Shellnettermputty

Ubuntu网络设置

允许root直接登录

编辑/etc/ssh/sshd_config

注释掉PermitRootLogin without-password

增加PermitRootLogin yes

/etc/init.d/ssh restart

保存,重启ssh

配置静态IP

vi /etc/network/interface

auto enp0s3

iface enp0s3 inet static

address 192.168.0.217

netmask 255.255.255.0

gateway 192.168.0.252

dns-nameservers 114.114.114.114 1.1.1.1   //域名解析服务器

重启应用配置

/etc/init.d/networking restart

或者service network restart

CentOs网络设置

配置静态IP

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

IPADDR=192.168.0.116    //IP地址信息

GATEWAY=192.168.0.252 //网关信息

netmask 255.255.255.0  //子网掩码

ONBOOT=yes //是否系统启动就应用

BOOTPROTO=static //IP静态分配

DNS1=114.114.114.114 //域名服务器IP

DNS2=1.1.1.1

service network restart //重启网卡

ping 163.com //测试连接域名是否正常

 

重启
reboot

init 6
shutdown -r now 立刻重启(root用户使用)
shutdown -r 10 10分钟自动重启(root用户使用
shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启

关机

init 0
1halt   立刻关机
2poweroff  立刻关机
3shutdown -h now 立刻关机(root用户使用)
4shutdown -h 10 10分钟后自动关机

启动级别

0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动,机器关闭。

1:单用户工作状态,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录。

2:多用户状态,没有NFS支持。

3:完整的多用户模式,有NFS,登陆后进入控制台命令行模式。

4:系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。

5:X11控制台,登陆后进入图形GUI模式,XWindow系统。

6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。运行init6机器就会重启。

目录结构

/bin:是Binary的缩写,这个目录存放着系统必备执行命令

/boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里

/dev:Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:所有的系统管理所需要的配置文件和子目录。

/home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

Linux:动态库.so 静态库.a

Window:动态库.dll 静态库.lib

动态库是运行时调用,静态库是开发程序时调用.

/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/misc: 该目录可以用来存放杂项文件或目录,即那些用途或含义不明确的文件或目录可以存放在该目录下。

/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/net  存放着和网络相关的一些文件.

/opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

/root:该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙

/srv:service缩写,该目录存放一些服务启动之后需要提取的数据。

/sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

/tmp:这个目录是用来存放一些临时文件的。

/usr: 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。

/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

VI编辑器

Vi有三种基本工作模式:

+  命令模式

+  文本输入模式

+  末行模式。

命令行模式

任何时候,不管用户处于何种模式,只要按一下ESC键,即可使Vi进入命令模式;我们在shell环境(提示符为$)下输入启动Vi命令,进入编辑器时,也是处于该模式下。在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是Vi的合法命令,Vi会响铃报警。

文本输入模式

在命令模式下输入插入命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被Vi当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按键ESC即可。

末行模式

末行模式也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时Vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令执行完后,Vi自动回到命令模式。例如:

:sp newfile

则分出一个窗口编辑newfile文件。如果要从命令模式转换到编辑模式,可以键入命令a或者i;如果需要从文本模式返回,则按Esc键即可。在命令模式下输入“:”即可切换到末行模式,然后输入命令。

vim基础操作

vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富

进入插入模式:

i: 插入光标前一个字符

I: 插入行首

a: 插入光标后一个字符

A: 插入行未

o: 向下新开一行,插入行首

O: 向上新开一行,插入行首

进入命令模式:

ESC:从插入模式或末行模式进入命令模式

:set nu显示文本行编号

移动光标:
Shift+^进入行头shift+$进入行尾  

h: 左移

j: 下移

k: 上移

l: 右移

M: 光标移动到中间行

L: 光标移动到屏幕最后一行行首

G: 移动到指定行,行号 –G   //先按数字,再按大写字母G

w: 向后一次移动一个字

b: 向前一次移动一个字

{: 按段移动,上移

}: 按段移动,下移

Ctr-d: 向下翻半屏

Ctr-u: 向上翻半屏

Ctr-f: 向下翻一屏

Ctr-b: 向上翻一屏

gg: 光标移动文件开头

G: 光标移动到文件末尾

删除命令:

x: 删除光标后一个字符,相当于 Del

X: 删除光标前一个字符,相当于 Backspace

dd: 删除光标所在行,n dd 删除指定的行数

D: 删除光标后本行所有内容,包含光标所在字符

d0: 删除光标前本行所有内容,不包含光标所在字符

dw: 删除光标开始位置的字,包含光标所在字符

撤销命令:

u: 一步一步撤销   //word里面ctrl+z

Ctr-r: 反撤销 //ctrl+y

重复命令:

.: 重复上一次操作的命令

文本行移动:

>>: 文本行右移

<<: 文本行左移

复制粘贴:

yy: 复制当前行,n yy 复制 n

 

p: 在光标所在位置向下新开辟一行,粘贴 

可视模式:

v: 按字符移动,选中文本

V: 按行移动,选中文本可视模式可以配合 d, y, x,>>, << 实现对文本块的删除,复制,左右移动

替换操作:

r: 替换当前字符

R: 替换当前行光标后的字符

查找命令:

/: str查找

n: 下一个

N:上一个

替换命令:

abc全部替换成123

末行模式下,将光标所在行的abc替换成123

:%s/abc/123/g

末行模式下,将第一行至第10行之间的abc替换成123

:1, 10s/abc/123/g

退出操作

末行模式下

q:未修改或已保存

q!:强制退出

w:保存   //vim newfile 打开可以直接保存,

或者vim启动编辑后,通过:w newfile 保存到自定义文件名中。

qw(x):保存并退出

命令操作

用户目录

cd  /home/用户名   或  cd ~

绝对路径

凡事以/打头的都是。

相对路径

凡事不是能/打头的

当前目录

../  

上一级目录

访问用户

-rwxr-xr-x

用户权限

组权限

其他用户权限

访问权限

读权限(r

 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。

写权限(w

对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。

可执行权限(x

对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

示例说明

1个字母代表文件的类型:d” 代表文件夹、“-” 代表普通文件“c” 代表硬件字符设备、“b” 代表硬件块设备、“s”表示管道文件、“l” 代表软链接文件。 后 9 个字母分别代表三组权限:文件所有者、用户者、其他用户拥有的权限。

每一个用户都有它自身的读、写和执行权限。

第一组权限控制访问自己的文件权限,即所有者权限。

第二组权限控制用户组访问其中一个用户的文件的权限。

第三组权限控制其他所有用户访问一个用户的文件的权限。

这三组权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有9种类型的权限组。

常用基本命令

命令行的使用方法

command  [-options]  [parameter1]  …

command: 命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个

查看帮助文档

ls --help 或者 man ls

自动补全

Tab

历史命令

History

文件管理

查看文件信息 ls -lh(加a是显示隐藏)

ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。

Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。

DOS下的文件操作类似,在Unix/Linux系统中,也同样允许使用特殊字符来同时引用多个文件名,这些特殊字符被称为通配符。

重定向>

linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )

注:>输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。

分屏显示more

查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助.

more 文件名

显示文件前多少行

head 文件名

管道(|)

一个命令的输出可以通过管道做为另一个命令的输入。

管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(),右端取东西()

ls -lh | grep python

清屏(clear)

clear作用为清除终端上的显示(类似于DOScls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )

切换目录 cd

显示当前路径pwd

创建目录(mkdir)

mkdir -p a/b/c  创建多级

删除目录rmdir

删除文件或目录rm

rm -rf  文件名(r是强制f是递归删除)

:windows里面强制删除文件shift+del

建立链接文件ln

前提更改要连接文件的权限,加上运行权限

chmod +x readme.txt

ln -s readme.txt  readme

文本搜索grep

文件查找find

 find /etc -name interfaces

新建文件touch

touch 文件名

复制文件cp

cp test.txt copy.txt

移动文件mv(也可以改名字)

mv test.txt /etc/

归档文2tar

tar -cvf all.txt.tar *.txt(以txt结尾)

压缩文件gzip

gzip -z all.txt.tar all.txt.tar.gz

:gzip 压缩和解压过程中会删除源文件.

tar –cvf aa.tar aa ;gzip aa.tar aa.tar.gz 相等于 tar –czvf aa.tar.gz aa

解压用法: tar -zxvf 压缩包包名

-z:指定压缩包的格式为:file.tar.gz

压到指定目录:-C 大写字母“C”

文件压缩解压:bzip2

gzip -jcvf all.txt.tar all.txt.tar.bz2

文件压缩解压:zipunzip

不需要指定扩展名

zip myzip *.txt

unzip -d myzip

看命令位置:which(whereis)

whereis ls

查看当前用户(whoami)

查看登录用户:who

退出登录账户: exit

:快捷键ctrl+d

添加用户账号:useraddadduser

推荐用adduser 用户名  后续只需要写密码,其他直接回车

注:推荐用adduser更方便,添加完后,用passwd修改密码

设置用户密码:passwd

删除用户:userdel

切换用户:su 

查看有哪些用户组

cat /etc/group

添加、删除组账号:groupaddgroupdel

修改用户所在组:usermod

usermod -G 用户组 用户名

查看用户在哪些组

groups 用户名

修改文件权限:chmod

如果需要同时进行设定拥有者、同组者以及其他人的权限,参考如下:

r代表4w代表2x代表1

 chmod 777 文件

ls -lh 进行查看

修改文件所有者:chown

Chown 用户名 文件

修改文件所属组:chgrp

 chgrp 用户组 文件

系统管理

查看当前日历:cal

显示或设置时间:date

查看进程信息:ps

ps -aux | grep 进程号

动态显示进程:top

终止进程:kill

killall

killall[参数][进程名]

后台执行程序

nohup ./test.py &

监控文件变化

tail –f 文件名

关机重启:rebootshutdowninit

检测磁盘空间:df

df -ls

检测目录所占磁盘空间:du

du -sh

查看或配置网卡信息:ifconfig

测试远程主机连通性:ping

打印文件内容cat

查看程序端口netstat

netstat -anpt | grep 80

http:80端口

证书https:443端口

收邮件端口:143

发邮件端口:25

FTP(File Transfer Protocol):21

远程桌面:3389 

Mysql 3306

Oracle 1521

netstat –apnt

安装软件

1.在线市场安装

Centosyum

Ubuntuapt-get

2.安装包

Centos:rpm

rpm –ixv 3.10a13.i386.rpm

Ubuntu:deb

dpkg -i Package.deb

3.源代码编译安装

  1. 安装编译器
  2. 下载源代码

远程登陆(SSH)

ssh 用户名@IP

使用ssh访问,如访问出现错误。可查看是否有该文件 ~/.ssh/known_ssh 尝试删除该文件解决。

远程上传下载文件(SCP)

远程拷贝文件,scp -r 的常用方法:

1.使用该命令的前提条件要求目标主机已经成功安装openssh-server

如没有安装使用 sudo apt-get install openssh-server 来安装

2.使用格式:

scp -r 目标用户名@目标主机IP地址:/目标文件的绝对路径  /保存到本机的绝对/相对路径

 

举例:

scp -r itcast@192.168.1.100:/home/itcast/QQ_dir/ ./mytest/lisi

 

在后续会提示输入“yes”此时,只能输“yes”而不能简单输入“Y”

拷贝单个文件可以不加 -r参数,拷贝目录必须要加。

本地文件复制到远程:

scp FileName RemoteUserName@RemoteHostIp:RemoteFile

scp FileName RemoteHostIp:RemoteFolder

scp FileName RemoteHostIp:RemoteFile

本地目录复制到远程:

scp -r FolderName RemoteUserName@RemoteHostIp:RemoteFolder

scp -r FolderName RemoteHostIp:RemoteFolder

远程文件复制到本地:

scp RemoteUserName@RemoteHostIp:RemoteFile FileName

scp RemoteHostIp:RemoteFolder FileName

scp RemoteHostIp:RemoteFile FileName

远程目录复制到本地:

scp -r RemoteUserName@RemoteHostIp:RemoteFolder FolderName

scp -r RemoteHostIp:RemoteFolder FolderName

ssh免密码登录

第一步生成密钥:ssh-keygen

第二步复制密钥ssh-copy-id root@192.168.0.211

 都是在自己用户下面做,然后直接在自己用户里输入ssh ip地址登录

中断免登:修改对方机器~/.ssh/authorized_keys 文件内容删除掉

源码安装python

下载源码

https://www.python.org/downloads/source/

Python-3.5.6.tgz

解压

tar -xvf Python-3.5.6.tgz

查看README文件

vim README

./configure

    Make   // make -j

    make test

sudo make install

apt-get install make

make –j //-j会用系统多个CPU编译

make install

windows 开机启动

Linux 调度任务

crontab 详细用法 定时任务

https://www.cnblogs.com/aminxu/p/5993769.html

FTP安装

chmod a-w /home/test/ftp/

chmod 777 -R /home/test/ftp/share

每日一linux命令网址

https://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/default.html?page=4

原文地址:https://www.cnblogs.com/pursue339/p/10402975.html