命令格式

[root@localhost~]  root 管理员    localhost 主机名    ~ 用户的目录 $ 为普通用户 # root用户

1、命令 [选项] [参数]    选项可简化  -a 等于 --all

2、Linux中 .xxx文件 是隐藏文件

3、命令补全: 输入一个开头字母,按Tab会将当前目录下所有的相关文件显示

4、sudo 使用超级使用者权限

    nginx 目录: /usr/local/openresty/nginx 9092

    启动 sudo /usr/local/openresty/nginx/sbin/nginx

    重启 /usr/local/openresty/nginx/sbin/nginx -s reload

常用命令

使用 SecureCRT 工具

1、exit 或 logout 退出登录

2、文件上传和下载 到服务器

    $ sz 要下载的文件或目录   在secureCRT中设置 options -> session options -> x/z/zmodem 中设置的下载目录 

    $ rz 上传的文件            上传相同名文件,不会被替换,不能上传目录,可以直接发压缩gzip包在传

3、查看日志  使用tail 或 cat来查看文件内容

    $ tail -fn  显示行数  服务器的日志文件

    tail -fn 100  /opt/server/apache-tomcat-6.0.41_8084/logs/catalina.2016-01-21.log    56服务器8084端口

4、解决secureCRT 中文编码问题

    options ->    session options  -> terminal 下的 appearance  将 character encodeing 改成 utf-8

5、清理服务器缓存

    进入到apache-tomcat服务中的works中清楚loaclhost目录 

    $ cd /opt/server/apache-tomcat-6.0.41_8084/works/Catalina

    $ rm -rf  localhost

    8084:网站  apache-tomcat-6.0.41_8084

    8086:H5   apache-tomcat-7.0.47_8086

6、open 打开目录

7、clear 清除当前屏    cmd+k 清除所有

8、tree 打印出目录树

    mac下没有tree命令,需要安装  brew install tree

    $ tree -a   显示所有的文件和目录

    $ tree -L 1 -a  只显示一个层级的目录和文件(包括隐藏文件)

    $ tree -L 1 -d

文件权限

-rw-r--r--@   1 apple  staff   8196  5 15 19:26 .gitignore.js

一、文件类型    -rw-r--r--

    rw- u所有者    r-- g所属组    r-- o其它人

    r 读        w 写        x 执行

二、目录类型    drwxr-xr-x

    开头第一个字符

    1、- 文件    如果第一个符号为'-'就是一个普通文件

    2、d 目录 

    3、l 软链接文件

三、查目录权限 

    $ cd /

    $ ls -l         显示根目录所的权限

四、chown设置目录权限

    1、命令格式:

        chown [选项]... [所有者][:[组]] 文件...

        $ sudo chown apple:admin /data/db

    2.命令功能:

        通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

    3.命令参数:

        -c 显示更改的部分的信息

        -f 忽略错误信息

        -h 修复符号链接

        -R 处理指定目录以及其子目录下的所有文件

        -v 显示详细的处理信息

        -deference 作用于符号链接的指向,而不是链接文件本身

        选择参数:

        --reference=<目录或文件> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组

        --from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变

        --help 显示帮助信息

        --version 显示版本信息

目录处理

1、cd 切换到指定目录

    cd 与 cd ~  回到apple目录, 也就是 /Users/apple

    cd -   回到上次操作所在的目录

    cd ..  进入到上一级目录

2、mkdir [-p]  dirname 创建目录 

    -p 递归创建  mkdir -p parent/child    可以直接创建多个目录,如果不加就只能创建一个目录

3、pwd 显示当前路径

4、rm 删除文件或目录   rm -rf [文件或目录]

    -r  递归删除文件夹        -f  强制

5、cp 复制目录或文件   cp [选项][原文件或目录][目标目录]

    -r 递归复制文件夹

    -p 连带文件属性复制 一些类似文件创建日期等

    -d 如果源文件是链接文件,则复制链接属性

    -a 相当于 -pdr

6、mv 移动目录或文件    mv [源文件或目录] [目标目录]

    mv dir1 dir2 将文件或目录移动到指定目录中  

    mv a.js b.js 修改文件或目录名  

文件处理

1、touch .gitignore  创建文件

2、ls 显示文件

    # 显示详细列表
    # ls -l  显示详细信息   ll 是ls -l的简写
    # 
    $ ls -a 显示所有文件,包含隐藏文件(以. 起头的文件名)
    $ 
    $ ls -f 显示文件(后跟*)和目录(后跟/)

    SG:Linux siguang.liu$ ls -al
    total 128
    文件属性          文件数     拥有者                所属者group 文件大小 建档日期 文件名
    drwxr-xr-x  5         siguang.liu  staff        160          11:01  ..
    drwxr-xr-x  1         siguang.liu  staff        192          2016   Linux基本操作命令.doc

3、cat 查看文件内容

    cat package.json

4、echo 输出内容

5、ln 文件名   将文件的内容输出带行号

    $ ln package.json

6、wc 文件名  统计指定文件中的字节数、字数、行数,并将统计结果显示输出

    -c 统计字节数。

    -l 统计行数。

    -m 统计字符数。这个标志不能与 -c 标志一起使用。

    -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。

    -L 打印最长行的长度。

文件搜索

一、find [搜索范围] [搜索条件]  避免大范围搜索,耗费系统资源

    通配符: * 匹配任意内容      ? 匹配任意一个字符      [] 匹配任意一个中括号内的字符

    $ find / -name person.js     从根目录开始搜索person.js文件

    1、-name   搜索文件名   

    2、-iname  搜索的文件名不区分大小写

    3、-user   按所有者文件

    4、-nouser  没有所有者文件


    按时间搜索   $ find /var/log/ -mtime +10    搜索10天前修改的文件   +10 十天前     10 十天当天修改    -10  十天内修改文件

    5、-mtime  修改文件内容

    6、-atime  文件访问时间

    7、-ctime  改变文件属性


    按文件大小搜索   $ find . -size 25k  查找文件大小是25K的文件  -25k 小于25k   +25k 大于25k   25k 等于25k

        注意: M 是大写   k 用小写

    8、-size  查找文件大小

    9、-inum  通过 i 节点个数来查看   ls -i 查看当前目录下的文件带id   29560848 Bluetooth    31587257 opendirectoryd.log.0  31745680 system.log.4.gz

        find /var/log/ -inum  29560848   // 返回 Bluetooth

        逻辑运算符  -a 逻辑与    -o 逻辑或

        example   find /var/log -size +20K  -a  -size -50K    查找大于20K并小于50K

    10、-exec ... {} \;  将搜索的内容交给第二条命令来处理

         find /var/log -size +20k -a -size -500M  -exec ls -l -a {} \;


二、grep 在文件中匹配符合条件的字符串   grep [选项]  字符串   文件名

    -i 忽略大小写

    -v 排除指定字符串    

    $ grep -i 丝绸之路 package.json 


三、whereis 和 which  搜索系统命令

    whereis vim        // 输出 /usr/bin/vim 可以

    which 指令会在环境变量$PATH设置的目录里查找符合条件的文件。

        which mongod        // 返回当前mongod命令所在的目录 /usr/local/bin/mongod


四、locate 文件名   在后台数据库中按文件名搜索,搜索速度快

    locate不是在文件中搜索,而是在 /var/lib/mlocat 只在后台数据库搜索

    updatedb  更新数据库

ln 链接命令 ln -s [原文件或目录] [目录文件]

硬链接: 硬链接看做是文件或目录的副本,两个i节点和存储,可以看成是同一个文件

软链接: 软连接看做是文件或目录的快捷方式

选项:

-s 创建软链接    

    注意软链接要写绝对路径 ln -s /Users/apple/siguang.liu/linux/catalogB   /Users/apple/siguang.liu/linux/lnDir

    appledeMacBook-Pro-2:lnDir apple$ ls -il
    31874703 lrwxr-xr-x  1 apple  staff  39  5 16 18:54 catalogB -> /Users/apple/siguang.liu/linux/catalogB    这种 -> 就是指的软链接 或者 lrwxr第一个类型为『l』

删除软连接就去目标目录直接把软链接的目录直接删掉

压缩文件、目录

一、zip压缩文件、目录

    1、压缩文件     zip 压缩文件名  源文件        // 注意这里压缩zip,原文件不会被删除,而gzip会删除源文件

    2、压缩目录  zip -r 压缩文件名.zip   要压缩的目录       // 最好先进入要指定压缩的目录,如果写成a/b/c,这样就会将所有目录一层一层压缩,如果要压缩的目录在aa下面,而且你当前就在aa目录下面不用从指定根目录,否则解压后会一层一层的 

    3、解压缩    unzip 解压的文件

二、gzip压缩

    压缩后的扩展为 .gz  

    1、gzip 源文件      压缩为.gz文件,源文件会消失

    2、gzip -c 源文件 > 压缩 文件     压缩为.gz文件,保留源文件

    3、gzip -r 目录     压缩目录下所有子文件,但不压缩目录

    2、gunzip             解压文件名


三、tar压缩目录

    通过tar来对目录进行打包,然后通过gzip进行压缩

    $ 格式: tar -cvf  打包文件名  源文件

    1、打包成 .tar文件

        1) tar -cvf  压缩后的目录  要压缩的目录 

        2) tar -xcvf  打包的文件名

    2、打包成 .tar.gz格式

        1) tar -zcvf  压缩后的目录  要压缩的目录 

        2) tar -zxcvf  打包的文件名

        -c: 产生.tar打包文件

        -v: 显示详细信息

        -f: 指定压缩后缀名

        -z: 打包同时压缩

    3、当包解压到当前目录

        tar zxf  nginx-1.12.2.tar.gz

进程

所有程序只要运行就会产生一个进程,客户端网页访问服务器就会产生一个进程

一、查看进程

    1、ps aux  系统所有进程

        ps -ef|grep nginx 查看nginx服务的进程

            a 显示所有进程,包括会话引线

            u 显示进程的归属用户及内存使用情况

            x 显示没有控制终端进程

            -l 长格式显示 显示更详细信息

            -e 显示所有进程,和-A作用一致

    2、pstree [选项]

        -p 显示进程PID

        -u 显示进程用户

    3、top  每3秒查看一下系统的健康,有cpu和内存的数据和所有进程


二、杀死进程

    kill -1 进程ID    重启进程

    kill -9 进程ID    强制杀死进程

网络

一、curl

https://www.cnblogs.com/duhuo/p/5695256.html

二、ping 

环境变量和host的修改

一、host文件

    $ vim etc/hosts

二、环境变量、export 设置或显示环境变量  export [-fnp][变量名称]=[变量设置值]

    -f  代表[变量名称]中为函数名称。 

    -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。 

    -p  列出所有的shell赋予程序的环境变量。

    $ export   查看环境变量

三、设置环境变量有两种: 

    1、使用export命令 这种方法只是临时设置,重启终端就

        $ export PATH=$PATH:/opt/au1200_rm/build_tools/bin

    2、修改profile文件 或者设置到 source ~/.bash_profile 

        $ vi ~/.profile

            export PATH=$PATH:/usr/local/zend/mysql/bin/:/usr/local/zend/bin     // 设置$PATH 扩展一下加一下

        $ source ~/.profile    立即执行

    注意两个环境变量使用 “:”来分割


三、通过环境变量来设置命令快捷键

    $ vi ~/.profile

        alias ll="ls -a"
        alias ..="cd .."
        alias ...="cd ../../"
        alias ....="cd ../../../"
        alias .....="cd ../../../../"
        alias ......="cd ../../../../../"

man –help 帮助

一、man ls  查看帮助信息

二、ls --help   

系统

一、日期

    date 日期时间

    cal  显示当前日历

二、关机重启系统

    1、shutdown [选项] 时间   来进行重启和关机

        shutdown -r now    立即重启  -h 立即关机

        shutdown -r 18:00  定时在18点的时候重启

        -c: 取消前一个关机命令

        -h: 关机

        -r: 重启

    2、halt  回车  直接关机

    3、poweroff  回车  直接关机

    4、init 0 回车  直接关机

    5、reboot 回车  直接重启

三、查询与自动挂载

    1、mount

linux根目录

Linux的目录

    根目录下的 bin目录不允许操作, usr下的 sbin目录是可以操作的

    /bin 传统unix命令的存放目录,如ls,rm,mv等。
    /sbin 传统unix管理类命令存放目录,如fdisk,ifconfig等等。
    /tmp 临时文件存放目录,其权限为所有人任意读写。此目录实际为指向/private/tmp的链接。
    /usr 第三方程序安装目录。
        /usr/bin, /usr/sbin, /usr/lib,其中/usr/lib目录中存放了共享库(动态链接库).
    /etc. 标准unix系统配置文件存放目录,如用户密码文件/etc/passwd。此目录实际为指向/private/etc的链接。        
    /var 存放经常变化的文件,如日志文件。此目录实际为指向/private/var的链接。


OS X系统中,除了标准的unix目录外,还增加了特有的目录。

    /Applications 应用程序目录,默认所有的GUI应用程序都安装在这里;
    /Library 系统的数据文件、帮助文件、文档等等;
    /Network 网络节点存放目录;
    /System 他只包含一个名为Library的目录,这个子目录中存放了系统的绝大部分组件,如各种framework,以及内核模块,字体文件等等。
    /Users 存放用户的个人资料和配置。每个用户有自己的单独目录。
    /Volumes 文件系统挂载点存放目录。
    /cores 内核转储文件存放目录。当一个进程崩溃时,如果系统允许则会产生转储文件。
    /private 里面的子目录存放了/tmp, /var, /etc等链接目录的目标目录。


/bin是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。

/sbin一般是指超级用户指令。主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。

/usr/bin 是你在后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。

/usr/sbin   放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。

/usr/bin用于分发包管理器(如Ubuntu apt等)存放它所管理的应用的路径, /usr/sbin与/usr/bin的关系类似与/bin和/sbin的关系

/usr/local/bin用于存放用户自己的程序(如自己编译出来的包等),不受分发包管理器的控制。如果用户把自己的程序放在/usr/bin下,则有可能在未来被包管理器给修改或删除了。

vim 编辑器

vi  文件名    或vim 文件名

命令状态:

H 左  L 右   K 上  J 下

0(零) 行首     $(shift+5) 行尾       G(shift+G) 文件尾

i 插入命令

dd  删除当前行    pp 复制并粘贴当前行    x: 删除光标处字符

control+f 后翻页        control+b前翻页

u 取消上次操作)


a,A:追加命令,a 在当前光标后追加,A 在行末追加

o,O:打开命令,o 在当前行下打开一行,O在当前行上插入一行

r,R :替换命令,r 替换当前光标处字符,R从光标处开始替换

数字s: 替换指定数量字符

d0: 删除光标前半行

d$: 删除光标后半行

/string 查找字符串

n 继续查找

N 反向继续查找

% 查找对应括号

ex命令状态

    :0 文件首

    :1,5 copy 7 块拷贝

    :1,5 del 块删除

    :1,5 move 7 块移动

    :1,$s/string1/string2/g 全文件查找string1并替换为string2

    :wq! 存盘退出

保存命令

    按ESC键 跳到命令模式,然后:

    :w   保存文件但不退出vi

    :w file 将修改另外保存到file中,不退出vi

    :w!  强制保存,不推出vi

    :wq  保存文件并退出vi

    :wq! 强制保存文件,并退出vi

    q:   不保存文件,退出vi

    :q!  不保存文件,强制退出vi

    :e!  放弃所有修改,从上次保存文件开始再编辑

Mac终端下的快捷键

control + A 移到行首
control + E 移到行尾
control + U 清除当前行命令

cmd + L 清除上一次操作的内容
cmd + K 清除所有内容

cmd + option + H 将所有窗口隐藏到应用程序图标
cmd + H  将当前窗口隐藏到图标中
cmd + M  将当前窗口最小化到

cmd + shift + .  显示/隐藏当前文件的隐藏文件

traceroute -n 125.35.51.162        // 查看当前网络访问到这个ip都通过哪些途径

mac 打开iphone界面  iphone与mac连接,打开QuickTime,文件 -> 新建录制影片

修改mac地址

$ ifconfig        en0:  ether ac:bc:32:83:a2:4b     原始的mac地址

$ openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'        生成一个mac地址

$ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z      断开airport无线网卡连接

$ sudo ifconfig en0 ether 7e:df:f7:a5:07:56        修改成生成的mac地址

$ networksetup -detectnewhardware     重新连接网卡

$ ifconfig    查看是否是改后的mac地址

44:9f:24:59:ca:13

SSL 权限

open ~/.ssh/     打开ssh目录

GitLab:中配置ssh

1、登录后找到 Profile Settings  ->  SSH Keys  添加Key来做映射

id_rsa.pub 文件

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCcmEJCTlr57na4TJ8xU8J/EG0KcrH6Dh+MwBPbs0NO6lA09Pdjro4knzSRYeSHc9X63Km/OR18JU7ygcE9foUYAN8BatnDTh6R+ynyQxyIqIG7Gn8YGF0g8Zx8oU9LsYc8SWP6zdryr7NaQZ41583jt9JxheG0la6D10cqZRQiix7pZMiXmHZXPKCSkTZSGHLaR0Ws24eyz1Yt9HmLXZem8FPkUrwmn2IYk05cwMyK+NE/g9pPJbpVEtEssU4FZ4I++LNltMbAxgtCp2QXZ7Z7ViA3CvK9u8g6u4yLLBPydpXWJ1pu+9bYFV3CvoTEawN3+mIIMsDaDhPlI6PJMk/j 632505215@qq.com

| http://www.cnblogs.com/webzhangnan/p/3221410.html