美文网首页
2018-11-23

2018-11-23

作者: Santi龘 | 来源:发表于2018-11-23 13:01 被阅读0次

    1. pwd: 查看当前光标所在的路径

    2. home directory:  当前用户所在的默认目录

        /root :  超级管理员的默认目录

    3. cd 切换

          (1) cd path : 切换到指定路径

          (2) cd : 直接切换到home directory

          (3) cd - : 回退到上一次输命令时所在的目录

          (4) cd ~ : 切换到当前用户的home directory

          (5) cd ../ : 切换到上一层目录

          (6) cd ../../ : 切换到上两层目录

    4. ls 查看当前目录下的文件和文件夹的名称

          (1) ls -l(简写为ll) : 查看当前目录下的文件和文件夹的详细信息

                a)  ll + 文件夹名称:查看当前目录下特定的文件夹里文件或文件

                                    夹的信息

                b) ll /usr/sbin/user* : 显示/usr/sbin文件夹下以user开头的文件

          (2) ls -l -a : 查看隐藏文件( 隐藏文件和隐藏文件夹以 "."开头 )

          (3) ls -l -h : 查看文件的大小( 不是文件夹 )

          (4) ls -l -rt : 将该目录下的文件或文件夹以时间顺序排序

    5. mkdir 创建文件夹

          (1) mkdir + 文件夹名称 : 创建一层文件夹

          (2) mkdir -p : 级联创建文件夹

                a) mkdir -p 1/2/3 : 在当前目录下递归创建文件夹

                b) mkdir -p /1/2/3 : 在根目录下递归创建文件夹

          (3) mkdir 4 5 6 : 在光标所在的目录下创建3个文件夹 4 5 6

    6. 绝对路径与相对路径

          (1) 绝对路径: 从根目录开始的路径

          (2) 相对路径: 从当前目录( pwd得到的目录 )开始的路径

    7. 创建文件

          (1) vim + 文件名:

          (2) touch + 文件名 : 创建一个空文件

    8. mv 与 cp

          (1) mv henry.log  newFolder : 将henry.log移动到newFolder文件夹

              (类似于windows的剪切)

          (2) cp henry.log  newFolder : 将henry.log复制到newFolder

    9. ">" 与 ">>"

          (1) echo "hello" > henry.log : 清空henry.log的内容,将hello写入到     

                                        henry.log的原有内容的后面

          (2) echo "hello" >> henry.log : 不清空henry.log, 将hello追加到

                                          henry.log中

    10. 显示文件内容命令

          (1) cat  henry.log : 将henry.log的内容全部显示在terminal中

          (2) more henry.log : 将henry.log的内容分页显示在terminal中

          (3) less henry.log : 将henry.log的内容分页显示在terminal中

              (在工作中没怎么使用过,等用到了再探讨它与less的区别)

    11.  配置命令别名

          (1) alias cdrz = 'cd  /root/henry' : 临时配置 cdrz 为 cd /root/henry, 但

              是此为临时配置, 即打开另一个terminal无法找到该别名

    12. 全局环境变量配置

          (1) 在 /etc/profile 中写入全局环境变量

          (2) source /etc/profile :生效全局环境变量配置

    13. 个人环境变量

          (1) 配置文件: home_directory/.bash_profile

                      OR

                      home_directory/.bashrc

          (2) 生效个人环境变量 : source home_directory/.bash_profile

                              OR

                              . .bash_profile(此时路径就是home_directory)

    14. 切换用户

          (1) su henry: 切换到henry账户,并且所在目录即输入su命令时所在的目录, 不执行环境变量

          (2) su - henry: 切换到henry账户,并且所在目录即henry的home directory, 执行环境变量

    15. 删除文件

        (1) rm henry.log : 删除henry.log文件(先询问是否还要删除,如果是自己

                          创建的就直接删除)

        (2) rm -f henry.log : 强制删除henry.log, 不询问

        (3) rm -rf henry.log : 不询问删除文件夹

    16. 查询历史命令

        history : 将输入过的命令一行一行显示

        !241: 执行屏幕上241行的命令

    17. 用户与用户组

        (1) 寻找与用户相关的文件:  ll /usr/sbin/user*

        (2) 寻找与组相关的文件: ll /usr/sbin/group*

        (3) 增加用户henry: useradd henry

        (4) 查看用户henry的id信息: id henry

            显示结果:( 用户id, 主组id, 组id)

                    uid=501(henry) gid=501(henry) 组=501(henry)

            注: 创建了一个henry用户, henry用户组, 其中henry用户组为主组

        (5) 删除用户henry: userdel henry

            注: 在删除用户henry之后,其home directory不会删除,如果重新创建用户henry,

                系统会报警告:此主目录已经存在。

        (6) 查看系统中的所有用户 : cat /etc/passwd

            teminal显示: henry:x:501:501::/home/henry:/bin/bash

            其中/home/henry为henry用户的home directory

        (7) 如何使henry用户无法登录: 在 /etc/passwd中修改

            a) henry:x:501:501::/home/henry:/bin/nologin

              再次登录henry用户时,会报su: /bin/nologin: No such file

              or directory 错误

            b) henry:x:501:501::/home/henry:/bin/false

              切换到用户henry时没有提示,切换失败

        (8) 如何找到组: cat /etc/henry

        (9) 增加组: groupadd newGroup

        (10) 将某个用户添加到新组中: usermod -a -G newGroup henry

            此时henry的情况:

            uid=501(henry) gid=501(henry) groups=501(henry),502(newGroup)

            此时henry的主组还是henry组

        (11) 将newGroup设置为henry的主组: usermod -g newGroup henry

            但是此时henry的信息里没有henry组

            uid=501(henry) gid=502(newGroup) groups=502(newGroup)

            所以需要将henry组加回到henry用户

    18. 如何查看命令帮助

        (1) man + 命令  : 详细帮助

        (2) 命令 --help : 精简帮助

        (3) 以usermod为例:

              a) 输入usermod --help显示

                Usage: usermod [options] username : 表示命令如何使用, []表示可选选项

                -G, --groups GROUPS  new list of supplementary GROUPS

                (命令简写, 命令全拼 哪个组 命令代表的意思)

      19 管道符

        (1) 管道符 : "|"

        (2) 管道符作用 : 命令1 | 命令2 ===> 将命令1结果作为命令2的输入

        (3) 统计文件中有多少行: cat henry.log | wc -l

        (4) 模糊匹配: cat henry.log | grep aod

                    找到文件中包含aod字符的行

    20. 重置用户密码

        (1)passwd henry

          由于之前在/etc/profile中将henry的home directory修改了,但是没有将

          原home directory的隐藏文件复制过来,所以当su henry时, 会出现bash-4.1$

          解决方案是cp /etc/skel/* newHomeDirectory, 之后再修改权限

    21. 修改权限

        (1) 什么是权限

            a) 读:  r 4  (读命令: cat, more)

            b) 写:  w 2  (写命令 >, >>, vim)

            c) 执:  x 1  (一般是对于shell脚本来说)

            d) 无权限: - 0

        (2) Example

            drwxrwxr-x. 2 henry henry 4096 Oct 1 16:37 newFolder

            d代表目录,d之后有三组权限: rwx rwx r-x <==> 775

            第一组: 代表当前用户henry对该文件或文件夹的权限,可读可写可执行

            第二组: 代表当前用户组的所有成员对该文件的权限,也是可读可写可执行

            第三组: 代表其他用户组的所有成员对该文件的权限,可读不可写可执行

        (3) 修改权限

            chmod 755 -R /home: 递归的给/home下的文件和文件夹修改权限

        (4) shell脚本

              a) 头部添加 #!/bin/bash

              b) 赋予权限

                  i) 给其他用户赋予权限: "." + 相对路径 或者 直接输入绝对路径

                  ii) 给其他用户不赋予x权限: 使用sh命令执行脚本

    22. 网络安装

        (1) yum install httpd : 网络安装httpd

        (2) yum -y install httpd : 不询问 y/n 的方式安装httpd

        (3) service httpd status : 查看httpd是否启动

            service httpd status: 启动httpd

        (4) ps -ef: 打印后台运行的所有程序

            注: ps -ef | grep henryLoop的结果是(用户, 进程id, )

                root  6209  6010  0 05:46 pts/1  00:00:00 grep henryLoop

                也就是说grep henryLoop也是一个进程   

                如果不想显示grep的话,输入ps -ef | grep henryLoop| grep -v grep

        (5) 消灭一个进程 : kill -9 pid

        (6) Example: httpd

            root    6110  1  0 05:33 ?      00:00:00 /usr/sbin/httpd

            apache  6115  6110  0 05:33 ?    00:00:00 /usr/sbin/httpd

            apache  6116  6110  0 05:33 ?    00:00:00 /usr/sbin/httpd

            假如kill -9 6110之后, 6115和6116进程仍旧存在,但是httpd服务已经停止

            重新启动时, 由于6115和6116 apache进程存在, 无法重启

            解决方法是 kill -9 $(pgrep -f http), kill所有匹配的

            但是kill之前必须ps -ef查看一下kill的进程是否是需要kill的

        (7) 查询端口号: netstat -nlp | grep 2985

              Local Address(:::80)

        (8) 几种Local Address的意义

              a) 0.0.0.0:22 或者 :::22 表示本机ip的22端口, 任意ip都可以访问

              b) 127.0.0.1:22 只能是本机才可以访问

              c)  192.168.152.122:22 能访问到该ip地址才可以访问

        (9) 查询所有rpm包: rpm -qa

        (10) rpm -e --nodeps + 包名: 移除某个包不用先移除其依赖

    23. 临时获得root权限

        (1) 先在/etc/sudoers中加入henry(想要获得root权限的用户)  ALL=(ALL)  ALL

              OR

            yanghenry  ALL=(root)  NOPASSWD:ALL(sudo时不需要输入密码)

        (2) 此时henry用户可以用sudo 获取临时root权限

        (3) 切换用户并获得root权限: sudo su - henry

    24. chmod 与 chown(只有这两个命令出现R)

        (1) chmod : 修改权限

            a) chmod 777  文件

            b) chmod -R 777 文件夹

        (2) chown henry:henry 文件 : 将某个文件改为henry的用户组

        (3) 注意: 在生产上,如果某个文件属于特定的用户组,那么只有该用户组的用户才能访问该文件

        (4) 如何给一个脚本的三组权限都加上执行权限

              a) chmod -x test.sh

              b) chmod +x test.sh

        (5) 如果只关心当前用户(第一组)是否能执行test.sh

            a) chmod u+x test.sh

        (6) 如果只关心当前组用户(第二组)是否能执行test.sh

            a) chmod g+x test.sh

        (7) 如果只关心当前用户(第三组)是否能执行test.sh

            a) chmod o+x test.sh

        (8) 使用英文字母+数字形式作为机器名

    25. 查看ip

        (1) ifconfig : 查看网络的一些信息(包括网卡名称等)

        (2) 网卡对应的配置文件在哪个文件夹

              a)在/etc/sysconfig/network-scripts

                eg. etho的配置信息就在ifcfg-eth0文件里

        (3) 下图中inet addr就是ip

        (4) 另外查看ip的方法:

            a) ping localhost(或者是主机名称)

            b) hostname - i

            c) 去 /etc/hosts中找, 此文件默认开头有两行如下

            127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

            ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

            注意该两行不要删除

    ![123.png](https://img.haomeiwen.com/i14542040/535e3966626317db.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    26. 如何判断linux服务是否存活

            (1) 具体步骤:

                  a) 首先ping服务所在机器的ip: 保证保罗是畅通的

                  b) 查看该服务的端口号和服务地址

                    eg. 192.168.42.131:80

                  c) ping ip + 端口号: telnet 192.168.42.131 80

            (2) 相关命令 

                  a) 查看进程是否存在 : ps -ef | grep httpd

                  b) chkconfig --list 将所有服务都列出来

                    httpd  0:关闭 1:关 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭

                    如果想要开机自启动,使用chkconfig httpd on 将httpd的2, 3, 4, 5都置为on

                  c) 设置开机自启动: chkconfig 服务 on

                  d) 查看端口号: netstat -nlp | grep 4517

    27. 实时查看文件内容

            (1) tail -f xxx.log

            (2) tail -F xxx.log <==> tail -f + -retry

            情景:在生产上一般保留11份大小固定(比如200m)的log,某个窗口一般第一个log文件满了之后,

            会做mv xxx.log xxx1.log操作,touch xxx.log, 此前实时监控(tail -f)xxx.log的窗口无法再继续监控,但是如果使用tail -F就可以继续监控

    28. 命令是怎样找到的

            (1)根据linux的$PATH (必须是大写)得到命令的所在目录

              注: linux是以:来分隔

              eg. /usr/local/bin:/bin:/usr/bin:/usr/local/sbin

            (2)  从左往右用 ll + path/命令 依次寻找知道找到代表该命令的文件

            (3)  如何找到命令位置: which + 命令

            综上所述,一个新命令必须先配置$PATH

    29. 寻找文件的位置

            (1) 全局搜索: find / -name '*abc*': 从根目录寻找名字含有abc的文件

            (2) 从当前目录搜索: find ./ -name '*abc*'

            (3) 从指定目录搜索: find /tmp -name '*abc*'

    30. vi

        (1) 三种模式

            a) 命令模式、编辑模式、尾行模式

            b) 三种模式之间的转化

                i) 命令模式与编辑模式

                    ~ 命令模式按i键进入编辑模式

                    ~ 编辑模式按esc键会命令模式

                ii) 命令模式与尾行模式

                    ~ 命令模式按 shift + ":" 进入尾行模式

            c) 三种模式具体命令

                  i) 命令模式:

                    ~ gg: 跳转到第一行第一个字符

                    ~  G: 跳转到最后一行的第一个字符

                    ~ shift + $: 从行首跳到行尾

                    ~ dd: 删除当前行

                    ~ dG: 删除当前行及以下所有行

                    ~ ndd: 删除光标以下的n行

                iii) 尾行模式

                    ~ q!: 强制退出

                    ~ wq: 保存退出

                    ~ wq!: 强制保存退出(可以保存修改read only文件)

              d) 如何清除一个文件

                    ~ gg + dG

                    ~ cat /dev/null > henry.log

                    不要用echo '' > henry.log, 这样还会使文件又一个空行

              注: 修改生产上面配置文件和其他同事的文件

                    先cp备份一份,再进行编辑

              e)  vi 设置行号:  ":"set nu

              f)  vi取消行号:  ":"set nonu 

              g) vi 查询: ":/" + 需要匹配的字符,按空格之后相应的字符便会高亮显示,按n是下一行,N是上一行

              h) 跳转到任意一行: 在尾行模式下,首先输入set nu显示行号,然后输入行号,这时光标就会跳转到相应的行上

    31. 上传和下载

        (1)  上传指 : win ===> linux    rz

            下载指 : linux ===> win    sz

        注:由于日志文件较大,在linux服务器上打开耗时,传到windows之后,瞬间打开

    32. 查看文件大小与文件夹大小

        (1) 查看文件大小

            a) ll -h: eg. -rwxr-xr-x. h henry henry 31K 2月  31 25:78 henry.sh

            b) du -sh: eg. 32K henry.sh

        (2) 查看文件夹大小

            a) du -sh

    33. 系统情况命令

        (1) 查看内存: free -m(m 代表 mb)

                    free -g

                      ~ eg.  total used free shared buffers cached

                        Mem: 7893  780  7112  4      48      495

                      如果free很少,但是buffer+cache很多,说明还可以使用

        (2) 查看硬盘: df -h :

                    ~ /boot  引导目录

                    ~ swap  划分2G作为内存

                    ~  /    根目录挂载点

                    ~  /dev/shm

        (3) 系统负载: top

                    eg. 21:10:36 up  8:57, 6 users(什么时候开机,启动多长时间, 几个用户使用)

                    load average: 0.53, 0.47, 0.39

                                      1min  5min  15min

                    如果数字大于10,说明机器繁忙

    34. 压缩解压

        (1)"zip -r henry.zip henry/* "

            将henry文件夹压缩成henry.zip

            "tar -czf henry.tar.gz henry/*"

            将henry文件夹压缩成henry.tar.gz

        (2) 解压:

                ~ unzip henry.zip

                ~ tar -xvzf henry.tar.gz

    相关文章

      网友评论

          本文标题:2018-11-23

          本文链接:https://www.haomeiwen.com/subject/wqkjqqtx.html