2018-11-23

2018-11-23  本文已影响0人  Santi龘

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

上一篇下一篇

猜你喜欢

热点阅读