Linux基础(二)之命令

01-基础命令

1. 创建一个目录
        mkdir  /data
    创建多级目录
        mkdir -p /oldboy/data

2. 查看目录里面的内容
    ls /data

3. 查看目录里面的详细信息
    ls -l /data

4. 进入到某个目录
    cd /data

5. 显示当前位置
    pwd

6. 创建文件、更新文件的时间戳
    touch /data/hyp.txt

7. 编辑文件
    vi /data/hyp.txt
        按 i 进行插入模式,按esc键,输入 :wq 保存退出,:q 退出,:q! 强制退出,:wq! 强制保存退出

8. 查看文件hyp.txt内容
    cat hyp.txt

9. echo+内容 会把内容显示到屏幕上
    echo hello world
    echo hello world >>/data/hyp.txt   追加到文件里
    >> 追加重定向
    cat >>/data/hyp.txt <<EOF     追加多行(EOF表示结束标记)

10. 重定向符号
    >      标准输出重定向 (先清空文件里的内容,再写入内容)
    >>    追加重定向
    
11. 复制
    cp /data/hyp.txt /tmp

12. 备份hyp.txt文件
    cp /data/hyp.txt /data/hyp.txt.bak

13. 复制目录及目录下的内容
    cp -r /data/ /tmp/       
    cp -a /data/ /tmp/       
    
    -r   递归复制,复制目录及目录里面的内容
    -a  复制所有,相当于-pdr,
    -p  复制,保持属性不变

14. 移动
    mv /data/ /root/

15. 删除文件
    rm hyp.txt
    rm -f hyp.txt
    删除目录
    rm -rf  data/

16. 查找
    find /root/ -type f -name "hyp.txt"
    参数:
        -type   找什么类型的
              f    文件
              d   目录

17. 管道 |
    作用:把前面命令的结果,传递给后面的命令
        find /root/ -type f -name "hyp.txt" | xargs ls -l
    找出所有的.txt的文件
        find /root/ -type f -name "*.txt"

18. 过滤出oldboy内容
        grep "oldboy"  text.txt
    排除hello
        grep -v "oldboy" text.txt

19. 提取文件内容head
    head text.txt (默认取出前10行)
    提取文件的前2行
    head -2 text.txt

20. 从文件末尾提取
    tail text.txt (取出最后10行)

21. awk '/oldboy/' text.txt
    awk '!/oldboy/' text.txt   同grep含义一样,awk中!表示取反

22. sed
    sed '/oldboy/d' text.txt  删除oldboy

23. 在覆盖文件时,不提示是否覆盖的方法
    ① 撬棍 :
        \cp /tmp/text.txt /mnt/
    ② 使用命令的绝对路径
        which cp   # 查找命令cp的位置
        /bin/cp /tmp/text.txt /mnt/

24. 如何设置系统中的别名
    # 查看系统中的别名
    alias
    # 设置别名,模仿:在用rm命令的时候提示do not use rm
    alias rm='echo do not use rm'
    # 永久生效:写入到文件/etc/profile
    vim /etc/profile
    在最后一行 写入 alias rm='echo do not use rm'
    source /etc/profile   # 生效
    # 填坑
    vim /root/.bashrc
    将 alias rm='rm -i' 注释

25. 只查看ett.txt文件(共100行)的第20到第30行命令
    seq 100 >/oldboy/ett.txt
    方法1:sed默认会显示所有内容,-n 取消默认输出
    # 显示第20行
    sed -n '20p' /oldboy/ett.txt
    # 显示20-30
    sed -n '20,30p' /oldboy/ett.txt
    
    方法2:
    head -30 /oldboy/ett.txt | tail -11

    方法3:
    awk 'NR==20, NR==30' /oldboy/ett.txt   # NR表示行号

    方法4:-A10 表示显示出grep过滤的内容以及接下来的10行
    grep -A10 "20" /oldboy/ett.txt

26. sed修改文件内容
   sed -i 's#oldboy#oldgirl#g' /oldboy/t.sh
   find /oldboy/ -type f -name "*.sh" |xargs sed -i 's#oldboy#oldgirl#g'

27. linux命令大全
  网址:http://man.linuxde.net

28. 查看Linux系统版本
   cat /etc/redhat-release
   查看内核版本
   uname -r
   uname -m

02-变量与PS1

PS1 系统的环境变量,控制命令行的样式

echo $PS1  查看变量的内容

# 设置PS1的值
PS1='[\u@\h \W \t]\$'

03-添加用户

# 添加普通用户
useradd  hyp

# 检查用户是否存在
id  hyp

# 设置密码
passwd  hyp

# 切换用户
su - hyp

# 查看当前用户
whoami

# 退出当前用户,注销
快捷键 Ctrl+d

04-关闭SELinux

# 临时关闭,重启服务器会失效
# 查询selinux的状态
getenforce
结果为:Enforcing    表示selinux正在运行
           Permissive  表示selinux临时关闭
           Disabled     表示selinux彻底关闭

# 设置selinux的状态
setenforce 0
1表示打开,0表示关闭

# 永久关闭,重启服务器会生效
vim /etc/selinux/config
把 SELINUX=enforcing 改成 SELINUX=disabled

05-防火墙IPtables

# 服务器对外使用,有外网,需要开启防火墙

# 并发高,开启防火墙

# 内网,关闭防火墙
--------------------------------------------
# 临时关闭,重启服务器会失效
# 查看防火墙是否在运行
/etc/init.d/iptables  status

# 临时关闭防火墙
/etc/init.d/iptables  stop  (建议关闭两次)
---------------------------------------------
# 永久关闭,
# 查询iptables是否是开机自动运行
chkconfig |grep iptables

# 关闭iptables的开机自启动
chkconfig  iptables  off

06-显示中文乱码排查过程

# 查看系统的字符集
echo  $LANG
结果为:en_US.UTF-8

# 修改字符集
# 临时修改,改为 中文环境
export   LANG=zh_CN.UTF-8

# 永久修改 (不要修改)
# 查看
cat  /etc/sysconfig/i18n

# 生效
source  /etc/sysconfig/i18n

 

# 乱码产生的原因?
1. Linux使用的字符集 与 远程连接工具使用的字符集 的不同,就会导致乱码

# 解决:
方法1:修改 远程工具的字符集
方法2:修改 Linux的字符集

07-Linux目录结构

目录结构的特点:
    1. 一切从根开始
    2. Linux中每个设备可以挂在任何目录上面
    3. Linux下面的磁盘/设备没有挂载,则无法使用

# 把光盘挂载到目录
mount  /dev/cdrom  /mnt/
-----------------------------------------
目录简介:
# 安装tree
yum install tree

08-核心目录文件 - /etc

# 网卡的配置文件
cat  /etc/sysconfig/network-scripts/ifcfg-eth0

 

yum  install  tree 报错的解决方法:

# 修改网卡配置文件:
vim  /etc/sysconfig/network-scripts/ifcfg-eth0
# 添加 
DNS1=223.5.5.5 
DNS2=223.6.6.6

# 网卡配置生效=重启网卡
ifdown eth0 && ifup eth0
或者 重启所有网卡
/etc/init.d/network  restart

8.2 /etc/resolv.conf

8.3 /etc/hosts 在测试的时候使用

 

vim  /etc/hosts

插入:
10.0.0.200   www.taobao.com   www.jd.com

8.4 /etc/sysconfig/netwaork/ - 修改主机名的文件

 8.5 /etc/fstab - 开机自动挂载的文件

 

 8.6 /etc/rc.local

/etc/rc.local
作用:开机自动运行的文件

8.7 /etc/inittab

8.8 系统环境变量别名profile

09-Linux安装软件的方法user-local

10-系统日志系列

11-虚拟目录

 12-Linux的启动过程

13-PATH环境变量

命令:env

常用的环境变量:LANG、PS1、PATH

PATH:存放的是命令的路径

命令:etho $PATH

14-练习题

命令:
    tree:以树形显示目录结构
       -L:最多显示几层目录
       -d:只显示目录

    rpm:rpm包管理命令
       -qa:查询
       -ql:查询软件包里面的内容
1. 如何过滤出已知当前目录下oldboy中的所有第一级目录
命令:
方法1:tree  -dL  -1  /oldboy/
方法2:find  -maxdepth 1  -type  d  !  -name  "."
方法3:ls  -l|grep  "^d"
方法4:ls  -l|awk  '$2>1'
方法5:ls  -F|grep  "/"

2.  快速回到上一次的所在位置/目录
命令:cd  -   相当于  cd  $OLDPWD

3. 一个目录有很多文件(ls查看时好多屏),想最快速度查看到最近更新的文件。
命令:ls  -lrt
参数:-r :逆序
         -t :按照文件的修改时间进行排序
4. 已知apache服务的访问日志按天记录在服务器本地目录/app/logs下,由于磁盘空间紧张,现在要求只能保留最近7天的访问日志,请问如何解决?
(提示:可以从apache服务配置上着手,也可以从生成出来的日志着手。)
命令:
方法1:find  -type  -f  -name  "*.log"  -mtime +7 |xargs  ls -l   # 筛选出7天之前的日志
方法2:ls  -l $(find  -type  f  -name  "*.log"  -name  +7)
方法3:find  -type  f -name  "*log"  -mtime  +7  -exec  ls  -l {} \;


5. 调试系统服务时,希望能实时查看系统日志/var/log/messages 的更新,如何做?
命令:tail  -f  /var/log/messages
参数:-f:显示文件的实时更新
        tail  -f === tailf

6. 打印配置文件 nginx.conf 内容的行号及内容,该如何做?
命令:
方法1:cat  -n  nginx.conf
方法2:vi/vim  ---》  :set  nu  # 显示行号
方法3:grep  -n  "."  nginx.conf
方法4:awk  '{print  NR, $0}'  nginx.conf
方法5:sed  '='  nginx.conf |xargs  -n2

7. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-05-21 16:37  huangyanpeng  阅读(244)  评论(0编辑  收藏  举报