Linux入门学习

  • Linux环境简易安装

1、下载docker toolbox

https://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

 

2、选择好安装目录,一路next到底,完成后生成三个图标:

Docker Quickstart Terminal, Kitematic (Alpha), Oracle VM VirtualBox

 

3、 将boot2docker.iso镜像文件,位于安装目录下(如C:\Program Files\Docker Toolbox) ,

拷至C:\Users\Administrator\.docker\machine\cache目录下,

然后在网络断开的情况下重新启动,启动Quickstart Terminal ,等待完成初始化。

 

4、主机与 docker 主机共享文件夹

打开Oracle VM VirtualBox,选中“正在运行”状态的 default 虚拟机,进入 设置-> 共享文件夹,添加共享文件夹

 

5、右键--》default 虚拟机--》无界面启动

 

6、ssh连接ip:192.168.99.100登陆虚拟主机。用户名:docker   密码: tcuser

 

7、下载https://pan.baidu.com/s/1OjuyfgdIgR49rwnrzC-J5g 密码:ax7t 中的images文件,保存到共享文件夹内,解压

 

8、 导入centos7镜像,命令:docker load —input centbase.tar

 

9、启动cent7:base镜像,命令:

docker run -d -p 20022:22  --name cent7:base

 

10、连接centos7,ssh连接,ip:192.168.99.100,port:20022  用户名密码:root / root

 

11、重复10的步骤,更换下端口20022,一次新生成一个linux系统

 

docker inspect test1:查看容器信息

docker logs test1:查看容器启动日志

 

12、window上增加路由:

route add -p 172.17.0.0/24 mask 255.255.0.0 192.168.99.100

 

  • 安装程序 rpm/yum/源码安装
  1. rpm方式安装软件

需要去下载相应的rpm格式的安装包xxxx.rpm

 

rpm [参数] rpm包

-i 安装

-U 更新(很少用)

-e 卸载

-v 显示安装信息

-h 显示安装进度

例:

rpm -ivh mysql.rpm 安装mysql并显示安装进度和安装信息

rpm -e mysql.rpm 卸载mysql,只适用于rpm包安装的软件

rpm -e mysql.rpm --nodeps --nodeps可以忽略依赖关系强制卸载

rpm -ivh --nodeps mysql.rpm --nodeps可以忽略依赖关系强制安装

rpm -ivh --replacefiles mysql.rpm 当系统内已存在相同安装包时使用--replacefiles可替换已存在的安装包

 

rpm -qa 可用来查看已安装的rpm包,例:

rpm -qa|grep httpd  查看apache的安装包

  1. yum方式安装软件

yum方式安装需要连接yum源,此时需要你的linux能联网或者挂载系统光盘(系统光盘自带yum源)

 

yum常用方法:

yum install mysql 安装mysql

yum -y install mysql -y参数表示在安装过程中所有需要询问的选项都选yes

yum list|grep mysql 显示可安装的mysql列表

yum update mysqld 更新mysql

yum list installed|grep mysql 查询是否安装了mysql

yum remove mysql 卸载yum安装的mysql

 

  1. 源码安装软件

configure命令,生成Makefile文件。

make clean;make命令将源码编译成二进制文件。 

make install命令将上一步编译好的二进制文件安装到指定的目录中去。

 

  1. 配置环境变量

安装完成后,一些软件是需要设置环境变量才能方便使用,这时需要配置环境变量

系统环境变量文件在/etc下的profile文件,我们可以用vi profile命令来编辑该文件,将变量添加进去

一般需要将安装文件的bin目录加入path中,可在profile中加入下面一行代码

export PATH=$PATH:/opt/lampp/bin /opt/lampp/bin为lampp的bin目录

export的作用是添加变量

$PATH是取系统原来自带的环境变量,必须要加

两个变量之间以:分隔不是;分隔

修改完文件后:wq保存退出,输入下面的指令使环境变量立即生效

source /etc/profile

或者注销/重启

  • 常用命令
  1. 最最常用的是cd 命令

cd 进入用户主目录;

cd ~ 进入用户主目录;

cd - 返回进入此目录之前所在的目录;

cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);

cd ../.. 返回上两级目录;

ls,ll, wget, curl, history

  1. 新建文件夹和文件:mkdir  touch

 

mkdir 创建文件夹

mkdir dirname 直接跟文件夹名,可在当前目录下创建文件夹

mkdir /opt/lamp/dirname 可跟路径

mkdir -p /opt/lam/dirname 假如lam不存在,需要用-p才可以创建该文件夹

 

touch 新建文件

touch dilename 可直接跟文件名在当前目录下创建新的文件

 

  1. cat/less/more/tail等文件查看命令

 

-n或-number:有1开始对所有输出的行数编号;

-b或--number-nonblank:和-n相似,只不过对于空白行不编号;

-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;

-A:显示不可打印字符,行尾显示“$”;

-e:等价于"-vE"选项;

-t:等价于"-vT"选项;

-e:文件内容显示完毕后,自动退出;

-f:强制显示文件;

-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;

-l:搜索时忽略大小写的差异;

-N:每一行行首显示行号;

-s:将连续多个空行压缩成一行显示;

-S:在单行显示较长的内容,而不换行显示;

-x<数字>:将TAB字符显示为指定个数的空格字符。

 

 

-<数字>:指定每屏显示的行数;

-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;

-c:不进行滚屏操作。每次刷新这个屏幕;

-s:将多个空行压缩成一行显示;

-u:禁止下划线; +<数字>:从指定数字的行开始显示。

 

按Space键:显示文本的下一屏内容。

按Enier键:只显示文本的下一行内容。

按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。

按H键:显示帮助屏,该屏上有相关的帮助信息。

按B键:显示上一屏内容。

按Q键:退出rnore命令。

--retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;

-c或——bytes=:输出文件尾部的N(N为整数)个字节内容;

-f或;--follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;

-F:与选项“-follow=name”和“--retry"连用时功能相同;

-n或——line=:输出文件的尾部N(N位数字)行内容。

--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;

-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;

-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;

-v或——verbose:当有多个文件参数时,总是输出各个文件名;

 

一般tail命令最常用的-n和-f,例:

tail filename 读取filename最后10行内容

tail -f filename 实时动态读取filename最后10行内容

tail -20f filename 实时动态读取filename最后20行内容

 

cat和less及more指令相似,cat是一次性读取所有内容,文件内容较多时速度较慢。less与more的区别在于:less可以前后翻页查看,more只能向前翻页查看。

tail则用于实时获取log信息,从后向前读取内容

上述四种命令均可跟grep搭配使用cat/less/tail |grep mysql

  1. 查看文件大小的命令 du/df

du -sh * 显示当前目录下所有文件的大小

du -sh filename   显示该文件大小

du -sh     显示当前目录所占空间大小

-s或 仅显示总计,只列出最后加总的值。

-h或 以K,M,G为单位,提高信息的可读性。

df 显示磁盘占用信息

直接df默认一k为单位

df -lh 显示本地系统的占用信息,以K,M,G为单位

  1. 大重点--文本编辑器 vi

vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。

Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。 

vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。

默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。 

vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:

 

1 Ctrl+u:向文件首翻半屏;

2 Ctrl+d:向文件尾翻半屏;

3 Ctrl+f:向文件尾翻一屏;

4 Ctrl+b:向文件首翻一屏;

5 Esc:从编辑模式切换到命令模式;

6 ZZ:命令模式下保存当前文件所做的修改后退出vi;

7 :行号:光标跳转到指定行的行首;

8 :$:光标跳转到最后一行的行首;

9 x或X:删除一个字符,x删除光标后的,而X删除光标前的;

10 D:删除从当前光标到光标所在行尾的全部字符;

11 dd:删除光标行正行内容;

12 ndd:删除当前行及其后n-1行;

13 nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;

14 p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;

15 P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;

16 /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;

17 ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;

18 a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;

19 a:在当前字符后添加文本;

20 A:在行末添加文本;

21 i:在当前字符前插入文本;

22 I:在行首插入文本;

23 o:在当前行后面插入一空行;

24 O:在当前行前面插入一空行;

25 :wq:在命令模式下,执行存盘退出操作;

26 :w:在命令模式下,执行存盘操作;

27 :w!:在命令模式下,执行强制存盘操作;

28 :q:在命令模式下,执行退出vi操作;

29 :q!:在命令模式下,执行强制退出vi操作;

30 :e文件名:在命令模式下,打开并编辑指定名称的文件;

31 :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;

32 :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;

33 :set nu:在命令模式下,用于在最左端显示行号;

34 :set nonu:在命令模式下,用于在最左端不显示行号;

35 :1,3y 复制第一行到第三行

36 :1,3d 删除第一行到第三行

37 :1,3s/str/str_new/g 替换第一行到第三行中的字符串

38 :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符

39 :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行

 

  1. 移动文件及文件夹 mv/cp /scp

 

 

mv 类似于windows下的剪切

mv aaa /etc/udev 讲aaa移动至/etc/udev目录下

mv /opt/lampp /etc/udev 将/opt目录下的lampp移动至/etc/udev目录下

mv -r aaa /etc/udev 将aaa文件夹递归移动至/etc/udev目录下,不加-r会出错

mv aaa bbb 将aaa改名为bbb

 

-b:当文件存在时,覆盖前,为其创建一个备份;

-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;

-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。

-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

 

 

 

-f:强行复制文件或目录,不论目标文件或目录是否已存在;

-i:覆盖既有文件之前先询问用户;

-s:对源文件建立符号连接,而非复制文件;

-R/r:递归处理,将指定目录下的所有文件与子目录一并处理

用法与mv基本相似

cp 路径1 路径2

 

  1. 重定向 >

cat aaa.txt > bbb.txt 将aaa的内容写入bbb中,覆盖写入

cat aaa.txt >> bbb.txt 讲aaa的内容追加写入bbb中,不覆盖原来内容

> bbb.txt 将bbb清空

  1. 权限管理 chmod

chmod -R 给文件夹下所有的文件赋权限,递归处理

chmod u+x,g+w f01 //为文件f01设置自己可以执行,组员可以写入的权限 chmod u=rwx,g=rw,o=r f01 给所属用户添加读写执行权限,给组添加读写权限,给其他用户添加读权限

chmod 764 f01 以数字的方式赋予所属用户/用户组/其他用户权限r=4w=2,x=1

chmod a+x f01 //对文件f01的u,g,o都设置可执行属性,a代表all

  1. 删除命令 rm

 

一般都用rm -rf aaa

-r 递归删除

-f 强制删除,不询问

rm使用时需要谨慎,公司服务器删错就完犊子了

  1. 用户/用户组

group

groupadd abcd//添加组

cat /etc/group//查看当前系统所有的组

chgrp abcd b.txt//将b.txt归属到abcd组 

user

useradd abcd -g abcd//创建一个用户归属于abcd组

passwd abcd:   输入用户abcd的登录密码

useradd test //创建一个test用户

cat /etc/passwd  //查看系统所有用户

userdel abcd //删除abcd用户 

su abcd

切换用户

 

firewalld

 yum install firewalld  //在线安全firewalld

service firewalld status //查看防火墙状态

service firewalld stop //关闭防火墙

 

  1. 查看服务

netstat -nlpt|grep 80 查看该端口号是否被占用

free -m  //查看LINUX内存剩余容量

ps可以查看具体的进程信息,一般与管道符连接其他命令使用,如:grep

ps常用参数-ef/-aux,一般最常用还是-ef,例:ps -ef|grep mysql 查询mysql进程

top也可查看进程信息,而且是动态显示

whoami 查看当前登陆用户

who 查看多少用户在使用系统

date查看系统时间,可跟时间格式使用

cal查看日历,可跟年份,查看指定的年份

chkconfig --list #查看系统服务启动

chkconfig iptables on #开机启动该服务

chkconfig iptables off #开机不启动该服务

service iptables start #启动该服务

service iptables restart #重启启该服务

ps -ef|grep mysql|grep -v grep|awk '{print $2}'ps -ef|grep mysql 是查询mysql服务的进程

|后的grep -v grep 是匹配不包含grep的行

awk是取查询结果的第几列,awk '{print $2}'则是取第二列的值

grep 无参数则显示匹配的行

-c 显示匹配的行数

-v 显示不匹配的行

  1. 杀掉进程 kill 命令

kill最常用的参数是-9,用法:kill -9 进程号 即可强制杀掉该进程

统计命令 wc

常用的参数是 -l 用法:wc -l ,例:

ps -ef|grep mysql|wc -l 统计查询出的mysql进程的行数

查找命令 find/locate/whereis/which

 

find -name 后跟文件名,可查看文件所在目录,可跟user,查看属于user的文件

find -name filename 查找filename所在目录

find -name name* 查找开头为name的文件所在目录

find -name *name 查找结尾为name的文件所在目录

find -name *name* 查找包含name字符串的文件所在目录

find -user faith 查看用户faith的文件

 

locate用法与find基本相似,只是locate搜索速度较快些,locate一般系统不会自带,需要安装,可用yum安装

whereis只能搜索程序名

which则是只查询path中的环境变量

 

  1. 压缩和解压命令 gzip/guzip   zip/unzip   tar

gzip和gunzip一般可用参数是-r,例:

gzip test.txt  压缩文件

gzip -r test   压缩所有test下的子文件

gunzip test.gz   解压文件

zip和unzip可用参数较多,例:

 

zip test 不跟参数直接使用

zip -r test 递归压缩test下所有文件

unzip test 不跟参数直接使用

unzip -n 解压时不覆盖已存在的文件

unzip -o 解压时覆盖已存在的文件

unzip -d 将文件解压到目录中去

 

tar使用的较为多些,用法也多,最常用的是zxcvf几个参数,例:

 

-c 创建新文档,就是代表压缩的意思

-x 解压文档

-f 使用归档文件

-z 使用gzip解压

-v 详细输出模式

最为常用的使用方法:

tar -zcvf test.tar test 将test压缩为test.tar并输出详细信息

tar -zxvf test.tar 将test.tar解压缩,并输出详细信息

  1.  定时任务 crontab

crontab [-u user] 文件

crontab [-u user] {-r -e -l}

不加-u的话默认当前用户

-e:执行文字编辑器来设定时程表,内定的文字编辑器是vi。

-r:删除目前的时程表。

-l:列出目前的时程表。

crontab -e 就可以打开一个文件进行编辑

 crontab文件的格式为“M H D m d cmd”,M为分钟1-59,H为小时1-24,D为天1-31,m为月1-12,d为周0-6(0为周日)。cmd代表要执行的程序,*代表每分钟都执行

* * * * * sh /opt/lampp/test.sh 表示每分钟执行一次test.sh这个脚本

*/5 * * * * sh /opt/lampp/test.sh 表示每5分钟执行一次test.sh这个脚本

30 21 * * * /usr/local/apache/bin/apachectl restart 表示每晚的21:30重启apache

  1. 常用的一些服务名

iptbles //防火墙

network //网络

httpd //Apache

nginx //nginx

某些服务启动时需要占用控制台,导致无法继续操作,这时可以在启动命令的结尾加一个&符,服务启动就在后台运行,可释放控制台,不影响继续操作,例:

/usr/local/tamcat/bin/catalina.sh run & 后台启动

nohup /usr/local/tamcat/catalina.sh run & 同样是后台启动,加了个打印启动日志的功能,自动打印日志存入nohup.out文件中

除了上述将命令做成系统服务然后设置为开机启动之外,还有另外一种方式可以开机运行该脚本,那就是在/etc/rc.d/rc.local文件中加入该脚本,例:

要开机启动lampp,在/etc/rc.d/rc.local文件中加入/opt/lampp/lampp start就可以了

下面要讲的awk较难,初学略懵,awk语法为awk [选项参数]  '{命令参数}' file ,但是选项参数使用较少,awk常用内置参数如下

 

$0 表示整个当前行

$n 表示每行的第n个字段

NF 每行有多少个字段

NR 每行的记录号

awk命令参数中可使用if判断,用法:

'{if(条件){执行语句}

else{执行语句} }'

 

  1. 实战:

ps -ef|grep tomcat |grep -v "grep" |awk '{print $2}' 输出tomcat的进程号,第二列为进程号

awk '{if($2>60){}else{print $1}}' soce.txt 将soce文件中第二列的值<60的所在行的第一列输出

ps -ef|grep mysql|grep -v "grep"|awk '{print $2 > "mysql.pid"}' 将mysql的进程号写入mysql.pid文件中

linux的常用命令就到此结束啦

 

 

你可能感兴趣的:(linux)