参考资料:鸟哥的Linux私房菜

常用命令

查看内存: free -h

查看档案内容:

  • cat : 将档案内容全部列出
  • head : 只列出档案前10行
  • tail : 列出档案最后10行

ssh登录保持长连接 : ssh -o serveraliveinterval=60 root@23.126.105.39 -p 27573

查看8000端口是否被占用: lsof -i:8000


有关拷贝

递归拷贝命令(将文件夹及目录下的所有文件拷贝) : cp -r upload_assets /root/

本地拷贝文件到远程:scp MP_verify_oixkR51uu2uTOAMq.txt root@139.176.83.122:/var/WWW/HTML

远程拷贝文件到本地:scp root@139.176.83.122:/root/backup/201612201009bak.sql /Users/yetongxue/desktop

使用端口号登陆的拷贝: 远程拷本地:scp -P 29481 root@23.126.105.39:/root/my_key/ca.cert.pem ./

本地拷远程:scp -P 29481 yeli.key root@23.126.105.39:/root/my_website_server


系统权限

查看文件目录权限: ll -d dirname(查看目录下文件权限: ll dirname)

单纯的档案权限查看,可以使用 ls -l 或 ll查阅,输出:drwxr-xr-x 4 root root 4096 Dec 31 01:40 my_website

输出内容说明如下:

  • -: 代表後面的檔名為一般檔案
  • d: 代表後面的檔名為目錄檔
  • l: 代表後面的檔名為連結檔 (有點類似 windows 的捷徑概念)
  • b: 代表後面的檔名為一個裝置檔,該裝置主要為區塊裝置,亦即儲存媒體的裝置較多
  • c: 代表後面的檔名為一個週邊裝置檔,例如滑鼠、鍵盤等

然后之后的九个符号平分成3组:分别代表user/group/其他 这三类用户所对应的权限:

  • r: read,可讀的意思
  • w: write,可寫入/編輯/修改的意思
  • x: eXecutable,可以執行的意思

修改拥有者:chown user my_website


有关vim

字符移动(支持字符前缀: 10j ,向下移动10行): 左:h 下:j 上:k 右:l

单词移动:

  • w:移动到下一个单词词首
  • b:移动到上一个单词词首
  • e:移动到下一个单词词尾
  • ge:移动到上一个单词词首
  • ^:到行首, $:到行尾

BASH

查看是否是bash 內建命令:type -a ls

Linux语言设置:/etc/locale.conf

login shell bash 环境变量的设置:

  1. /etc/profile:这是系统整体的设定,你最好不要修改这个档案;
  2. ~/.bash_profile 或~/.bash_login 或~/.profile:属于使用者个人设定,你要改自己的资料,就写入这里!(备注:系统读取个人设定的环境变量时,依据这三个文件的优先次序读取,一旦文件存在则终止后面文件的读取)

BASH变量中单双引号是有区别的,双引号才能让变量保持原来的内容,而单引号就只是变量名而已了

查看系统以及自定义变量: set

取消变量: unset 变量名称

将自定义变量转为环境变量: exprot 变量名称

声明变量:declare / typeset [-aixr] varibale ,其中:

  • -a:数组类型
  • -i:整型
  • -x:用法与export一样,将varibale变成环境变量
  • -r: 设定varibale只读,不可修改,也不可unset

由于/etc/profile 与~/.bash_profile 都是在取得login shell 的时候才会读取的设定档,所以, 如果你将自己的偏好设定写入上述的档案后,通常都是得登出再登入后,该设定才会生效。那么,能不能直接读取设定档而不登出登入呢?可以的!那就得要利用source 这个指令了:source ~/.bash_profile

管线命令(pipe):ls -al /etc | less,说明:管线前面的命令结果作为管线和面命令的输入,前后命令先后执行


shell script

例子:

#!/bin/bash  #宣告脚本使用的shell: bash
# Program:
# This program shows "Hello World!" in your screen.
# History:
# 2015/07/16 VBird First release      #脚本基本信息:创建者/功能等等
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin     #设定环境变量
export PATH      #设置成全局变量
echo -e "Hello World! \a \n”    #输出 hello world
exit 0    #设定回传值 (备注:回传值得查看: 执行完毕之后在终端执行echo $?)

最好在自己主目录下面创建一个bin ,将编写好的脚本统一放在里面管理;

第一行#!/bin/bash在宣告这个script使用的shell名称: 因为我们使用的是bash ,所以,必须要以『#!/bin/bash』来宣告这个档案内的语法使用bash的语法!

  • script 的功能;
  • script 的版本资讯;
  • script 的作者与联络方式;
  • script 的版权宣告方式;
  • script 的History (历史纪录);
  • script 内较特殊的指令,使用『绝对路径』的方式来下达;
  • script 运作时需要的环境变数预先宣告与设定。

Linux 的目录

/bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。

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

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

/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。

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

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

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

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

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

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

/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

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

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

/selinux: 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

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

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

sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。 该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

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

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

/usr/bin:系统用户使用的应用程序。

/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:内核源代码默认的放置目录。

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

在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。