一开始对linux总有些抵触,黑黑的命令框不知道如何下手,这次因为工作交接的缘故需要负责之前同事的Node后端部分,node,redis这些都是部署在Linux上的,看了几次运维的同学噼里啪啦的敲命令,黑的白的一闪一闪,我都还没看清楚敲的啥,敬佩之情油然而生。没办法,不能怂啊,于是开始学Linux,先装个虚拟机自己玩起。
环境准备
1.安装VMware Workstation
这个不解释了2.安装centos
下一个 CentOS-7-x86_64-Minimal 。教程:http://www.linuxidc.com/Linux/2016-05/131701.htm 设置好root账户和一个常用账户基础知识
Linux都是命令操作,命令很多不好记,可以用man 来查看一个命令的用法。遇到很长的命令,用tab键可以补全。以下只是根据我自己的习惯分类的。内容基本上都是来自鸟哥的私房菜基础篇,该书篇幅甚巨,有时间可以细研。1.登录
[Ctrl] + [Alt] + [F1]~[F6] 表示6个终端。命令窗口和图像窗口可以通过[Ctrl] + [Alt] + [F1]和[Ctrl] + [Alt] + [F2]来切换。exit 退出当前用户。 常用账户没有安装权限,可以用su切到root账户。 这样root登录后还是在当前环境。 root是整个系统权限最高的账户,所以一般还是不要使用root。 但是root密码忘记了咋整? 难道要重新安装。鸟哥私房菜中给出了方法:以单人维护模式登录就可以修改root密码。 重启虚拟机,在读秒的时候按下任意键进入下面的界面: 按下e进入编辑模式,将光标移动到kernel那一行,再按下e 进入该行的编辑 最后加上一个 single进入单人维护模式,然后按下enter 再按下b 这个时候相当于以root的身份获得了控制权。然后输入passwd 就可以修改密码了。登录的时候记住用户名是root而不是自定义的stone。 但是又觉得用这个方式不是可以修改别人机器的root密码了吗?2.关机重启
shutdown -h now// 马上关机 shutdown -r now //立即重启
shutdow是常用的,如果是root 还可以用init,Linux 共有七种执行等级 先看这四种
run level 0:关机 run level 3:纯文本模式 run level 5:有图形接口模式 run level 6:重新启动
所以可以这样关机:
init 0// 关机
重启同理。 reboot,poweroff 也可以。
3.文件目录
目录是很常用的命令部分. //代表此层目录 ..// 代表上一层目录 - //代表前一个工作目录 ~ //代表当前用户所在目录
cd://切换目录( Change Directory) pwd: //显示当前目录( Print Working Directory) mkdir://建立一个新的目录 mkdir -p test1/test2/ // 建立多个目录 rmdir://删除一个空目录。有子目录会提示 rmdir -p test1/test2 //有子目录一次删除。只删除空目录。 rm -r test //不管test为不为空 都删掉。 echo $PATH //显示系统路径 mv text.txt //text1 把text.txt 从当前目录移到text1 mv text.txt .. //把text.txt 从当前目录移动到 上级目录。 mv text.txt t1.txt //重命名为t1.txt cp //复制档案与目录。 cp -r test1 test2 //如果 test1下面还有别的目录 就要用 -r
我们可以通过ls命令查看当前目录下面有哪些文件。 ls -al //列出所有文件的权限与属性。包含隐藏的。
ll会列出所有文件的权限及大小信息,第一列,-表示文件,d表示目录。r表示read,w表示可写,x表示可执行。
[-][rwx][r-x][r--] 1 234 567 890 1 为:代表这个文件名为目录 ; 234 为:拥有者的权限,本例中为可读、可写、可执行(rwx); 567 为:同群组用户权力,本例中为可读可执行(rx); 890 为:其他用户权力,本例中为可读(r) 一个linux档案能不能执行,与他的第一栏的十个属性有关。与文件名没有一点关系。只要权限中有x的话就能执行。但不代表可执行成功。4.压缩与解压
*Z, *.tar, *.tar.gz, *.zip, *.tgz: 等都表示压缩文件。不同的名称是因为不同的压缩的方式不同。只需要记住tar命令就行了。
tar [-j|-z] [cv] [-f 文件或目录] filename
比如: $ tar -zcv -f t.tar.gz t1.txt 。-j和-z代表不同压缩算法。-j表示是用bzip2方法来压缩,其后缀也建议是*.tar.bz2 -z表示是gzip的方式压缩。 建议的后缀是*.tar.gz。
-c 表示压缩,-v表示显示档案中的名称。解压:
tar [-j|-z] [xv] [-f 文件或目录] [-C 目录]
x表示解压。-C表示解压到指定的目录。
这次还有.xz后缀的。比如node的二进制安装包。 node-v6.10.2-linux-x64.tar.xz
需要先:
xz -d node-v6.10.2-linux-x64.tar.xz
解压成.tar。然后再用tar解压。
可以用zcat 查看被压缩的文件内容。
5.文本编辑
1) nano
nano xx.txt //打开或新建一个名为xx的text。 ctrl+O 保存,f2或者ctrl+x 退出。
完了可以通过cat查看内容。
cat xx.txt
2) vi编辑器
所有Unix like系统都会内建vi 文书编辑器。vi test.txt //创建一个文档。按下 i, o, a 等字符就可以进入编辑模式了。 按ctrl + c 退出编辑,可输入命令模式 再输入:wq 保存并离开。这个命令表示写入和离开,也可以分开用。强制可以加上!
/word //进行搜索。 ?word //直接定位到word字符串。 yy //复制光标所在的一行。 p //粘贴数据。 x //删除数据 u //撤销 Ctrl+r // 重做。
3) vim
vim有程序编辑能力,能高亮。 同样是ctrl+c 进入命令模式 set nu 设置行号。 set nonu 取消行号 当我们按下 v 或者 V 或者 [Ctrl]+v 时, 这个时候光标移动过的地方就会开始变白,表示选中。然后按下y就是复制了。按p就能粘贴。6.程序管理
在Linux系统中,触发任何一个事件时,系统都会将它定义成为一个程序,并且给予这个程序一个ID,即PID。 PPID表示他的父程序ID,老实说,Linux几乎可以说不会当机。因为他可以在任何时候,将某个困住的程序杀掉。然后重新执行改程序而不用重新启动。假设界面死掉,你可以随意的按Alt+F1--F7 切到其他终端机界面,然后以ps -aux 找出出错的程序,然后kill一下。kill -signal % jobNumber -1 重新读取一次参数的配置文件,类似于reload。 -2 代表与键盘输入ctrl+c 一样的操作。 -9 立刻强制删除一个工作。 -15 以正常方式终止一项工作。如果想在背景工作的程序在注销后还能继续运行,就用nohup搭配& 这个在我们启动redis服务的时候用到。
ps aux 观察系统所有的程序数据。A 所有的process均显示出来。 -a 不与终端有关的所有process。 -u 有效使用者相关的process x 列出完整的信息。 -l 仅仅观察自己的bash相关程序。
top 动态观察程序变化相对于ps是一个时间点的程序状态,top是持续侦测程序运作的状态。 top -d | top [-bnp] -d 表示秒数,预设是3秒。 -b是批次执行top。n表示执行几次。-p表示指定某个PID进行观测。 按q退出。
free //直接查看内存情况
uname //查看系统信息-a :所有系统相关的信息,包括底下的数据都会被列出来; -s :系统核心名称 -r :核心的版本 -m :本系统的硬件名称,例如 i686 或x86_64 等; -p :CPU 的类型,不 -m 类似,叧是显示的是 CPU 的类型! -i :硬件的平台 (ix86)
ifconfig eth0 // 确认网络是否可行
ping确定路由是ok的。可以通过 dig 域名 来看DNS解析
7.Bash
查看变量环境变量:echo $PATH定义变量
echo $myname myname=VBird //等号两边不能留空格 echo $myname通常大些字母为系统默认变量,小写为自定义变量。 可以用变量定义一个目录。不过退出之后就没有了。可以用来编写linux脚本 read来定义一个变量,并接受用户的输入作为值。 第二行为输入内容。
read -p "Please keyin your name: " -t 30 named还可以输入提示和时间计时。
declare [-aixr] variable //申明变量类型a是数组,i是数字,x是定义为环境变量,r是只读。 grep 是一个很常见也很常用的指令,他最重要的功能就是进行字符串比较。将符合要求的打印出来。
Xshell
Xshell真是个好东西,linux上默认的命令框操作总感觉束缚着。不能像windows那样复制粘贴,窗口切换也麻烦。Xshell用起来很舒服 可以通过新建会话链接机器,按照提示输入ip和账户及密码。记住之后,下次可以直接打开。也可以在地址栏中输入ip进行链接。也可以通过命令ssh 192.168.92.128
灰常的方便,还可以在工具里面选择配色方案:
linux小菜鸟瞬间上了个档次。别说我还是瞄的运维人员的。嘿嘿。主要确实方便,可以复制(选中右键),可以粘贴(shift+ insert).安装软件还有进度条。软件安装
要用的时候到来了,如何装个noed呢?1.安装node
最好先用 uname -r 看一下自己的系统。因为linux的64并不兼容32.
我是64的,下了个32位的一直跑不起来。会出现 libstdc++.so.6 相关错误。无法运行node。
用wget 获取压缩包:
wget --no-check-certificate https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-x64.tar.xz
--no-check-certificate是用来忽略掉证书检查。 下载完成后,tar.xz 的文件先要解压成 .tar的
xz -d node-v6.10.2-linux-x64.tar.xz
然后 用tar解压:
然后进入解压后的bin目录
执行./node -v 能得到版本说明对了。但是还需要设置下全局变量,才好用。需要先用su命令切到root
然后打开profile。将node的目录插进去:
再保存就好了。 可以用echo进行查看:
在看下node版本。ok了。
2.安装redis
刚才node下载下来直接是可以用的二进制,其实很多软件还需要我们自己编译的。下载redis
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
再进行解压:
tar xzf redis-3.2.8.tar.gz
再进入目录
cd redis-3.2.8
进行make:
make
这个时候如果src目录下面没有出现redis-server
说明安装失败了。如果出现 make cc command not found 错误
yum install gcc
需要安装gcc。如果运行redis-server出现 You need tcl 8.5 or newer in order to run the Redis test 错误
yum install tcl
需要安装tcl。没办法,这个minmal的centos 还是缺不少东西的。但都体验一遍也挺好。
在运行 src/redis-server: 说明服务启动成功了。注意后面的&号,这样不阻塞界面。再试下redis-cli 读写也正常了。 可以再建一个work目录,用npm 安装一个redis 模块。再用vim 新建一个app.js。var redis=require('redis'); var client=redis.createClient(); client.on('connect',function(){ console.log('redis connected'); client.set('author','stoneniqiu',redis.print); client.get('author',redis.print); });
ok,运行:
现在可以独自愉快的玩耍了。 小结:一开始学linux的时候感觉windows真是伟大的产品,多么人性的设计。学了几天linux,也觉得这也挺好玩的。以上只是个人的入门笔记。 参考: 《鸟哥的私房菜基础篇》 linux部署node:http://www.cnblogs.com/dubaokun/p/3558848.html 关注书山有路,用自己的知识体系去丈量世界!你的关注和支持是我写作的最大动力~
书山有路群:452450927 标签:node,入门,tar,linux,redis,笔记,Linux,root,目录 From: https://www.cnblogs.com/outrun/p/17708886.html