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.