Linux常用操作

命令行操作快捷键

& -加在一个命令的最后,可以把这个命令放到后台执行

ctrl+z(后台挂起) -可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可以行

ctrl+c        -强行中断当前程序的执行

ctrl+/          -表示退出

ctrl+d        -表示结束当前输入(即使用户不在给当前程序发出指令),那么Linux通常将结束当前程序。

jobs            -查看当前有多少在后台运行的命令(已删除的任务不会被显示)

fg                -将后台中的命令调至前台继续运行,如果后台有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令序号

bg              -将一个在后台暂停的命令,编程继续在后台执行,也可通过%jobnumber调出。

Linux目录结构

*/bin  -这个目录存放着最经常使用的命令

/sbin  -这个目录存放的是系统管理员使用的系统管理程序

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

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

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

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

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

*/usr        -用户的很多应用程序和文件都放在这个目录下,类似window的program files

*/boot      -存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件

×/proc        -虚拟的目录,是系统内存映射,访问这个目录来获取系统信息

×/srv          -存放一些服务启动之后需要提取的数据

×/sys          -这时linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统

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

/dev            -类似于window的设备管理器,吧所有的硬件用文件的形式存储

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

/mnt            -系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载到/mnt/上,然后进入该目录就可以查看里面的内容

/opt              -主机额外安装软件所摆放的目录。

*/usr/local    -这时另一个给主机额外安装软件所安装的目录,一般通过编译源码方式安装程序。

*/var            -存放不断扩充的东西,习惯将经常被修改的目录存放在这个目录下。包括各种日志文件。

/selinux        -SELinux是一种安全子系统,它能控制程序只能访问特定文件。

VI和VIM的基本介绍

所有的Linux系统都会内建VI文本编辑器

VIM具有程序编辑的能力,可以看作是vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完,编译及错误跳转等方便编程的功能特别丰富

vi和vim的三种常见模式

正常模式

以VIM打开一个文档就直接进入一般模式了(默认)。在这个模式中,可以向window系统内一样操作文件

插入/编辑模式

按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式,一般按i

命令行模式

在这个模式当中,可以提供相关指令,完成读取,存盘,替换,退出,显示行号等动作。

VIM的命令集合

在VIM窗口打开一个新文件 :open file

在新窗口打开文件:spilt file

切换到下一个文件:bn

切换到上一个文件:bp

查看当前打开的文件列表,当前正在编辑的文件会用[]括起来:args

i在当前位置插入

I在当前行首行插入

a在当前位置后插入

A在当前行尾插入

o在当前行之后插入一行

O在当前行之前插入一行

yy拷贝当前行

p下一行粘贴  shift+p在当前行粘贴

退出命令

:wq/ZZ保存并退出

:q! 强制退出并忽略所有更改

:e!放弃所有修改,并打开原来的文件

用户和组的相关文件

/etc/passwd文件  -用户的配置文件,记录用户的各种信息

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

/etc/shadow文件  -口令的配置文件

每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group文件  -组的配置文件,记录Linux包含的组的信息

每行含义:组名:口令:组标识号:组内用户列表(一般看不到)

Linux实用指令

运行级别----/etc/inittab    --------切换到指定运行级别的指令init[012356]

关机

单用户(找回丢失密码)

多用户无网络服务

多用户有网络服务

保留

图形界面

重启

面试题

如何找回丢失的root密码?前提在本电脑并非远程

思路:进入到单用户模式(进入单用户模式root不需要密码就可以登录)修改root密码。

总结:开机在引导时输入  回车键->看到一个界面输入e->看到一个新的界面,选中第二行(编辑内核)->再输入e->在这行的最后输入1,再输入回车键 ->再输入一个b,这时就会进入到单用户模式。

此时,我们已经进入到单用户模式,使用passwd指令来修改root密码。

帮助指令

介绍:当我们对某个指令不熟悉时,可以使用Linux提供的帮助指令来了解这个指令的使用方法。

man  获得帮助信息

help  获得指令用法信息

文件目录类

pwd  -显示当前工作目录的绝对路径

ls      -查看当前目录的所有内容信息

cd      -切换到指定目录              cd~/cd,回到自己家目录;cd..回到当前目录的上一级目录

mkdir -用于创建目录                  如果要一次性创建多级目录,mkdir后加 -p

rmdir -删除空目录                      如果目录下有内容rmdir后加 -rf

touch -创建一个空文件              可以一次性创建多个文件

cp      -拷贝文件到指定目录        cp[选项] source dest        -r递归复制整个文件夹  ;\cp强制复制

rm      -移除【删除】文件或目录              -rf 删除整个文件夹        -f强制删除不要提示

mv      -移动文件与目录/重命名

cat      -查看文件内容(只能浏览不能修改-只读)              -n显示行号    |more分页显示

more  -以全屏的方式按页显示文件内容

less    -分屏查看文件内容,与more类似,但比more强大,(类似与异步加载)对于显示大型文件具有较高的效率。

">"指令和">>"指令  -">"输出重定向(会将原来的文件的内容覆盖)和“>>”追加(不会覆盖原来文件的内容,而是追加到文件的尾部)

echo    -输出内容到控制台  echo $PATH 输出$PATH环境变量

head    -显示文件的开头部分内容(默认前10行)    -n +数字 +文件路径

tail        -用于输出文件中尾部的内容(默认显示后10行)    -n +数字+文件

ln          -软链接也叫符号链接,类似Windows里的快捷方式,主要存放了链接其他文件的路径    ln -s[原文件或目录]【软链接名】

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

date      -显示当前日期

date 指令-设置日期  date -s "2018-05-16 11:12:12"

cal          -查看日历

搜索查找类

find        -从指定目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示在终端。 find [搜索范围] 【选项】 

find /home -name hello.text [按文件名称查找]

find  /opt  -user nobody [按文件的拥有者查找]

fing / -size +20M[查找整个系统下大于20M的文件]

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

grep指令和管道符号| -grep过滤查找,管道符“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

cat hello.txt | grep -in yes

解压缩和压缩指令

gzip/gunzip  -gzip用于压缩文件(压缩后原文件不保留),gunzip用于解压

zip/unzip      -zip用于压缩,unzip用于解压,这个在项目打包发布中很有用

zip -r xxx.zip /目录/        对目录下的所有文件进行压缩,压缩成名为xxx.zip的文件

unzip  -d /opt/tmp xxx.zip        将xxx.zip解压到 opt目录下的tmp目录下

tar                  -打包指令,最后打包后的文件是.tar.gz的文件    tar [选项]  xxx.tar.gz

tar -zcvf a.tar.gz  1  2                  将1 和2 打包成a.tar.gz文件

tar -zcvf myhome.tar.gz  /home/    将一个文件全部打包

tar -zxvf  a.tar.gz              解压文件到当前目录

tar -zxvf  a.tar.gz -C /opt/  解压到选定目录(前提是该目录存在)

组管理和权限管理

Linux组的基本介绍

在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者,所在组,其他组的概念。

文件/目录  所有者  -一般文件的创建者就是文件的所有者

ls -ahl  查看文件的所有者

修改文件的所有者

chown  用户名 文件名

组的创建

groupadd  组名

修改文件所在组  chgrp 组名 文件名

改变用户所在组

usermod -g 组名 用户名

usermod -d 目录名  用户名      改变该用户登录的初始目录

删除用户

userdel -rf name

权限的基本介绍


rwx权限详解

rwx作用到文件

[r]代表可读

[w]代表可写-可以修改但不可删,删除一个文件的前提是对该文件所在的目录有写权限。

[x]代表可执行:可以被执行

rwx作用到目录

[r]可读:ls查看目录内容

[w]可写:可以修改,目录内创建+删除+重命名目录

[x]可执行:可以进入该目录

修改权限-chmod

第一种方式:+,-,=变更权限        u:所有者  g:所在组  o:其他人  a:所有人(u,g,o的总和)

chmod  u=rwx,g=rx,o=x  文件目录名

chmod  o+w  文件目录名

chmod  a-x    文件目录名

第二种方式:通过数字变更权限  r=4 w=2 x=1 rwx=4+2+1=7

修改文件所有者-chown

chown newowner file 改变文件的所有者

chown newowner:newgroup file 改变用户的所有者和所有组

-R  如果是目录,则使其下所有子文件或目录递归生效

修改文件所在组-chgrp

chgrp newgroup file 改变文件的所有组  chgrp -R bandit kkk/

实践

police ,bandit

jack,jerry :警察

xh,xq:土匪

创建组

groupadd police

groupadd bandit

创建用户


给四个用户设置密码

Jack创建一个文件,自己可以读写,本族人可以读,其他组没任何权限


jack修改该文件,让其它组人可以读,本组人可以读写


xh投靠警察,看看是否可以读写

先用root 修改小红的组    -usermod -g police xh

使用Jack 给他的/home/jack的所在组一个rx权限    -chmod  g=rx  jack/

xh重启到jack目录下就可以操作jack的文件

定时任务调度

任务调度是指系统在某个时间执行的特定的命令或程序。

任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。 2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份

如果知识简单的任务,可以不用写脚本,这届在crontab中加入任务即可;对于比较复杂的任务,需要写脚本(Shell编程)

crond任务调度


Linux磁盘分区,挂载

分区的基础知识

分区的方式

mbr分区

最多支持四个主分区

系统只能安装在主分区

扩展分区要占一个主分区

MBR最大只支持2TB,但拥有最好的兼容性

gtp分区

支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)

最大支持18EB的容量(1EB=1024PB,1PB=1024TB)

windows7 64位以后支持gtp

linux分区

Linux来说无论分多少个区,分给哪一个目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,linux中每个分区都是用来组成整个文件系统的一部分。

Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得。

硬盘说明

Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘

对于IDE硬盘,驱动器标识为“hdx”其中"hd"表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“”代表分区,前四个分区用数字1到4表示,它们是主分区或拓展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。

对于SCSI硬盘则标识为"sdx~",SCSI硬盘是用"sd"来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

系统分区图

给虚拟机增加一块硬盘

需求:给linux系统增加一个新的硬盘,并且挂载到/home/newdisk

虚拟机添加硬盘

在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)!

分区 fdisk /dev/sdb

开始对/sdb分区

m      显示命令列表

p        显示磁盘分区  同fdisk  -l

n        新增分区

d        删除分区

w        写入并退出

开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。

分区命令

格式化

分区命令: mkfs -t  ext4  /dev/sdb1

其中ext4是分区类型

挂载 -将一个分区与一个目录联系起来

mount  设备名称              挂载目录              例:mount    /dev/sdb1      /newdisk

umount    设备名称  或者 挂载目录                例:umont  /dev/sdb1  或者 umont/newdisk

设置可以自动挂载

通过修改/etc/fstab实现挂载,添加完成后 执行mount  -a即可生效

自动挂载

磁盘情况查询- df-h

查询指定目录的磁盘占用情况(默认当前目录)- du -h /目录

-s 指定目录占用大小汇总

-h 带剂量单位

-a 含文件

--max-depth=1 子目录深度

-c列出明细的同时,增加汇总值

磁盘情况

工作实用指令

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

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

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

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

以树状显示目录结构 tree /目录

网络配置

Linux网络配置原理图(含虚拟机)

网络原理图

配置静态IP

首先查看虚拟网络编辑器,确认VMnet8的子网和网关

cd /etc/sysconfig/network-scripts  用vim编辑 ifcfg-ens33

配置固定id

service network restart 重启网络服务 或者重启虚拟机,建议重启网络服务

进程管理

基本介绍

在Linux中,每个执行的程序都成为一个进程。每一个进程都分配一个ID号。

每一个进程都会对应一个父进程,而这个父进程可以赋值多个子进程

每个进程都可能以两种方式存在。前台与后台

一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。

操作指令

ps 是用来查看目前系统中,有哪些正在执行,以及执行状况

ps -a -显示当前终端的所有进程信息

ps -u -以用户的格式显示进程信息

ps -x  -显示后台进程运行的参数

ps -aux | grep 名称 -查看指定名称线程

ps -ef | more 查看父级线程

ps指令详解

终止进程kill和killall

kill -9 进程号 - 表示强迫进程停止

killall 进程名称

pstree -以树状的形式来看进程信息

pstree -p 显示进程的PID

pstree -u 显示进程的所属用户

服务(service)管理

介绍:服务(service)本质就是进程,但运行在后台,通常都会监听某个端口,等待其他程序的请求。因此又称为守护线程。

查看防火墙状态 -service iptables status

关闭防火墙状态 -service iptables stop

查看服务名

使用setup->系统服务 就可以看到

ls -l /etc/init.d/

chkconfig指令

chkconfig --list -查看服务  /chkconfig --list | grep 服务名 -查看指定服务

chkconfig 服务名 --list  查看指定服务

chkconfig  --level 5 服务名 on/off  -设置服务在运行级别5下的开/关

动态监控进程

介绍:top和ps命令很相似,它们都用来显示正在执行的进程。top和ps区别在于top在执行一段时间可以更新正在运行的进程。

top 回车(查看执行的进程)->u 回车->输入用户名    -监视特定用户

top 回车(查看执行的进程)->k 回车->输入要结束的ID号    -终止指定的进程

top -d 10 -指定系统状态更新的时间(默认3秒)

监控网络情况

netstat -amp | more  查看所有的网络服务

RPM

介绍:RPM是一种用于互联网下载包的打包及安装工具,生成具有.rpm扩展名的文件(可理解为setup.exe)。

rpm -qa | grep xx  -查询已安装的rpm列表

rpm -qa  查询安全的所有安装包

rpm -q 软件包名        查询软件包是否安装

rpm -qi 软件包名

rpm -qi file      查找rpm包的安装位置

rpm -qf 文件全路径名    查询文件所属的软件包

卸载rpm包 -rpm -e RPM包名    / rpm -e -nodeps RPM包名

安装rpm包

rpm -ivh RPM包全路径名称  参数说明:i=install安装;v=verbose提示;h=hash 进度条

YUM

介绍:一款Shell前端软件包管理器,可以从指定的服务器自动下载PRM包且安装,可以自动处理依赖关系,并一次安装所有依赖的软件包。前提可以联网

yum list | grep xx 软件列表

yum install xxx  下载安装

Linux安装JDK

首先将Linux版本的JDK的tar.gz文件传到/opt目录下,tar -zxvf jdk.tar.gz 解压文件

配置环境变量的配置文件 vim /etc/profile

JDK环境变量配置

JAVA_HOME=/opt/jdk1.7.0_79 ; PATH=/opt/jdk1.7.0_79/bin:$PATH ;export JAVA_HOME PATH

注销用户,环境变量才能生效

测试安装,在任何目录下都可以使用 java /javac

测试JDK

Linux安装Tomcat

在/opt目录下解压tomcat

进去到bin目录下启动 ./startup.sh,此时Linux本地浏览器可以访问Tomcat

开放8080端口 -vim /etc/sysconfig/iptables

查看防火墙状态 -firewall-md --state

如果上一步出去关闭状态则运行 -systemctl start firewalld.service

开启8080端口 -firewall-cmd --zone=public--add-port=8080/tcp --parmanent;

输入命令重启防火墙 - systemctl restart firewalld.service

输入命令重新载入配置 -firewall-cmd --reload

此时windows可以访问8080

Linux安装MySQL

vim /etc/my.cnf

skip-grant-tables //无需输入密码即可登录mysql

character_set_server=utf8

init_connect='SET NAMES utf8'

systemctl stop mysqld.service

systemctl start mysqld.service

mysql //启动mysql

update mysql.user set authentication_string=password('123456') where user='root'; //设置一个简单的密码

flush privileges; 立即生效

你可能感兴趣的:(Linux常用操作)