本文共 11672 字,大约阅读时间需要 38 分钟。
第1章 linux启动过程
1.1 linux启动过程(1) 开机自检(BIOS)内存cup是否有问题(硬件检查)(2) MBR引导(3) GRUB菜单(选择不同的内核)(4) 加载内核(kernel)(5) 运行init进程(linux里面的第一个进程,初始化过程)(6) 读取/etc/inittab配置文件(运行级别配置文件)(7) 执行/etc/rc.d/rc.sysinit脚本(系统初始化脚本,设置主机名,设置IP地址)(8) 执行/etc/rc.d/rc脚本(根据系统的云心级别,再开机的时候启动不同的软件)1.2 linux执行命令过程
1.是否是别名2.在PATH中找命令是否存在 1).提示 command not found 2).执行小结:
1.linux启动过程 2.PATH作用 PS1 LANG PATH (三个环境变量)3.linux执行命令过程 1.3 题1过滤 一级目录##.1 如何过滤出已知当前目录下oldboy中的所有一级目录(提示:不包含oldboy目录下面目录的子目录及隐藏目录,即只能是第一级目录)?创建环境
mkdir /oldboy -pcd /oldboymkdir ext/oldboy test xiaodong xiaofan xingfujie -ptouch jeacen oldboy wodi.gz yingsui.gz1.3.1 方法1-tree
[root@oldboyedu50-lnb /oldboy]# tree -dL 1.├── ext├── test├── xiaodong├── xiaofan└── xingfujie5 directories
#-d 只显示目录
#-L level 最多显示多少层1.3.2 方法2-find
[root@oldboyedu50-lnb /oldboy]# find -maxdepth 1 -type d ../xiaodong./xiaofan./test./ext./xingfujie#-maxdepth 最大的深度 最多显示多少层
1.3.3 方法3-find[root@oldboyedu50-lnb /oldboy]# find -maxdepth 1 -type d ../xiaodong./xiaofan./test./ext./xingfujie查找点的目录[root@oldboyedu50-lnb /oldboy]# find -maxdepth 1 -type d -name ".".不显示带点的目录,find命令取反 find -maxdepth 1 -type d ! -name "."[root@oldboyedu50-lnb /oldboy]# find -maxdepth 1 -type d ! -name "."./xiaodong./xiaofan./test./ext./xingfujie#! 排除 取反 非1.3.4 方法4 d开头的
[root@oldboyedu50-lnb /oldboy]# ll |grep "^d"drwxr-xr-x 3 root root 4096 Jul 19 23:59 extdrwxr-xr-x. 2 root root 4096 Jul 16 19:24 testdrwxr-xr-x 2 root root 4096 Jul 19 23:59 xiaodongdrwxr-xr-x 2 root root 4096 Jul 19 23:59 xiaofandrwxr-xr-x 2 root root 4096 Jul 19 23:59 xingfujie[root@oldboyedu50-lnb /oldboy]# #^ 以....开头的行 三剑客使用 正则表达式1.3.5 方法5 第2列大于1
[root@oldboyedu50-lnb /oldboy]# ll |awk '$2>1'total 40drwxr-xr-x 3 root root 4096 Jul 19 23:59 extdrwxr-xr-x. 2 root root 4096 Jul 16 19:24 testdrwxr-xr-x 2 root root 4096 Jul 19 23:59 xiaodongdrwxr-xr-x 2 root root 4096 Jul 19 23:59 xiaofandrwxr-xr-x 2 root root 4096 Jul 19 23:59 xingfujie1.3.6 方法6- ls [root@oldboyedu50-lnb /oldboy]# ls –F 不同类型的文件 加上不同的标记 目录/alex.txt jeacen oldboy.txt test.sh t.sh.bak xiaodong/ xingfujie/ext/ oldboy test/ t.sh wodi.gz xiaofan/ yingsui.gz[root@oldboyedu50-lnb /oldboy]# #-F 不同类型的文件 加上不同的标记 目录/[root@oldboyedu50-lnb /oldboy]# ls -F |grep "/"ext/test/xiaodong/xiaofan/xingfujie/[root@oldboyedu50-lnb /oldboy]# ls -ld */
drwxr-xr-x 3 root root 4096 Jul 19 23:59 ext/drwxr-xr-x. 2 root root 4096 Jul 16 19:24 test/drwxr-xr-x 2 root root 4096 Jul 19 23:59 xiaodong/drwxr-xr-x 2 root root 4096 Jul 19 23:59 xiaofan/drwxr-xr-x 2 root root 4096 Jul 19 23:59 xingfujie/1.4 小结:
1.tree find 2.grep awk 3.ls 1.5 题1 压缩解压1.6 经典故障tar命令经典故障 Removing leading `/' from member names创建压缩包都见过这个提示吧?
[root@oldboyedu50-lnb /oldboy]# tar zcf /tmp/etc.tar.gz /etc/tar: Removing leading `/' from member names什么意思呢?背后过程:打包压缩过程中 文件或目录 绝对路径---->相对路径 打包的时候:/etc/host /etc/profile 压缩包中样子etc/host etc/profile这个提示原因:
防止解压的时候覆盖源文件。#12 /etc/目录为linux系统的默认的配置文件及服务启动命令的目录
a.请用tar打包/etc整个目录(打包及压缩)。c.请把a点命令的压缩包,解压到/tmp指定目录下(最好只用tar命令实现)。b.请用tar打包/etc整个目录(打包及压缩,但需要排除/etc/services文件)。windows 压缩 winrar/好压/2345压缩
linux 打包压缩 tar1.7 #创建压缩包
tar zcf /tmp/etc.tar.gz /etc/tar zcvf /tmp/etc.tar.gz /etc/
压缩之后的放在那里 目标#z gzip 通过gzip 软件压缩
#c create 创建包#v verbose 显示过程 #f file 指定文件1.7.1 #查看压缩包内容
tar ztf /tmp/etc.tar.gz#t list 显示压缩包内容#解压
tar etc.tar.gz 解压 zxf z可以省略不写#x extract 解压 压缩tar zcf 查看 tar tf解压
tar xf 显示压缩包信息[root@oldboyedu50-lnb /tmp]# ll /tmp/etc.tar.gz -rw-r--r-- 1 root root 9734648 Jul 20 01:41 /tmp/etc.tar.gz#解压到/opt 解压到指定位置[root@oldboyedu50-lnb /tmp]# tar xf /tmp/etc.tar.gz -C /opt/-C 解压到指定位置[root@oldboyedu50-lnb /tmp]# ll /opt/total 12drwxr-xr-x. 2 root root 4096 Jul 11 01:16 datadrwxr-xr-x 78 root root 4096 Jul 19 20:43 etcdrwxr-xr-x. 2 root root 4096 Mar 26 2015 rhb.请用tar打包/etc整个目录(打包及压缩,但需要排除/etc/services文件)。
1.7.2 排除/etc/services文件[root@oldboyedu50-lnb /tmp]# tar zcf /tmp/etc-pai.tar.gz /etc/ --exclude /etc/services tar: Removing leading `/' from member names排除后
[root@oldboyedu50-lnb /tmp]# tar tf /tmp/etc-pai.tar.gz |grep services etc/init/readahead-disable-services.conf排除前[root@oldboyedu50-lnb /tmp]# tar tf /tmp/etc.tar.gz |grep services etc/init/readahead-disable-services.confetc/servicestar zcf /tmp/etc-pai.tar.gz /etc/ --exclude /etc/services
--exclude-from name.txt 排除文件夹和文件name.txt
oldboy.txt /oldboy/oldboy打包压缩:
1.创建 2.查看 3.解压 4.解压到指定位置5.排除(了解)#2 假如当前目录是
cd - 进入到上一次所在的位置
An argument of - is equivalent to $OLDPWD.
#cd - === cd $OLDPWD
cd .
cp/mv cd .. cd ~ ==== cd#3.
[root@oldboyedu50-lnb /tmp]# cd /etc/[root@oldboyedu50-lnb /etc]# touch oldboy.txtls -lrt
#-r 逆序 #-t 按照修改时间#6 调试系统服务时,希望能实时查看系统日志/var/log/secure的更新,如何做?
-f
-F == -f --try 如果文件不存在 会不断重试tail -f /var/log/secure
tailf /var/log/secure1.8 题3打印配置文件nginx.conf
#7 打印配置文件nginx.conf内容的行号及内容,该如何做?[root@oldboyedu50-lnb /oldboy]# #{1..5} 生成序列
[root@oldboyedu50-lnb /oldboy]# echo {1..10}1 2 3 4 5 6 7 8 9 10[root@oldboyedu50-lnb /oldboy]# echo {01..10}01 02 03 04 05 06 07 08 09 10[root@oldboyedu50-lnb /oldboy]# echo stu{01..10} |xargs -n1stu01stu02stu03stu04stu05stu06stu07stu08stu09stu10[root@oldboyedu50-lnb /oldboy]# echo stu{01..10} |xargs -n1 >nginx.conf生成一列 然后追加到nginx.conf文件里面1.8.1 方法1 cat
[root@oldboyedu50-lnb /oldboy]# cat -n nginx.conf -n显示序号1 stu012 stu023 stu034 stu045 stu056 stu067 stu078 stu089 stu0910 stu101.8.2 方法2 vim
vim nginx.conf:set nu #显示行号 #nu === number:set nonu #取消显示行号
1.8.3 方法3 awk 显示某一列 [root@oldboyedu50-lnb ~]# awk '{print NR,$1}' /oldboy/nginx.conf 1 stu012 stu023 stu034 stu045 stu056 stu067 stu078 stu089 stu0910 stu10NR 行号
$1 第1列 $2 第2列 $0 一整行内容显示/proc/mounts 文件的行号和第1列和第3列
awk '{print NR,$1,$3}' /proc/mounts1.8.4 方法4 grep -n
grep -n "." nginx.conf
. 正则表达式 任意一个字符
-n 显示行号1.8.5 方法5 nl number of lines
nl nginx.conf1.8.6 方法6 sed
sed = nginx.confsed '=' nginx.conf |xargs -n2[root@oldboyedu50-nlb ~]# sed '=' nginx.conf[root@oldboyedu50-nlb ~]# sed “=” nginx.conf=显示行号 小结:1.cat -n /vim (必会)2.grep awk (必会)3.nl sed 1.9 题4已知nginx服务的访问日志按天记录在服务器本地目录/app/logs下,由于磁盘空间紧张,现在要求只能保留最近7天访问日志!请问如何解决? 请给出解决办法或配置或处理命令。删除7天之前的日志
mkdir -p /app/logs
cd /app/logsfor time in {01..20};do date -s "201805$time"; touch accesswww$(date +%F).log ;donedate -s "20180520 00:00:00"date 显示时间 修改时间
find -mtime modify time 修改时间[root@oldboyedu50-lnb /app/logs]# find -mtime +7|xargs ls -l
-rw-r--r-- 1 root root 0 May 1 00:00 ./access_www_2018-05-01.log-rw-r--r-- 1 root root 0 May 2 00:00 ./access_www_2018-05-02.log-rw-r--r-- 1 root root 0 May 3 00:00 ./access_www_2018-05-03.log-rw-r--r-- 1 root root 0 May 4 00:00 ./access_www_2018-05-04.log-rw-r--r-- 1 root root 0 May 5 00:00 ./access_www_2018-05-05.log-rw-r--r-- 1 root root 0 May 6 00:00 ./access_www_2018-05-06.log-rw-r--r-- 1 root root 0 May 7 00:00 ./access_www_2018-05-07.log-rw-r--r-- 1 root root 0 May 8 00:00 ./access_www_2018-05-08.log-rw-r--r-- 1 root root 0 May 9 00:00 ./access_www_2018-05-09.log-rw-r--r-- 1 root root 0 May 10 00:00 ./access_www_2018-05-10.log-rw-r--r-- 1 root root 0 May 11 00:00 ./access_www_2018-05-11.log-rw-r--r-- 1 root root 0 May 12 00:00 ./access_www_2018-05-12.log实例1-1 找出/app/logs 下面以.log结尾的7天之前的文件 显示详细信息(ls -l) (3种方法)
find /app/logs/ -type f -name "*.log" -mtime +7
方法1
find /app/logs/ -type f -name "*.log" -mtime +7|xargs ls -l方法2
ls -l $(find /app/logs/ -type f -name ".log" -mtime +7)ls -l `find /app/logs/ -type f -name ".log" -mtime +7`方法3
find /app/logs/ -type f -name "*.log" -mtime +7 -exec ls -l {} \;实例1-2 8 linux系统运行级别一般为0-6,请分别写出每个级别的含义。
1) 0-6
2) runlevel 3) init第2章 题5
2.1 iptable9 装完系统后,希望让网络文件共享服务NFS(iptables),仅在3级别上开机自启动,该如何做?让iptables开机自启动?[root@oldboyedu50-lnb ~]# chkconfig --level 3 iptables on
[root@oldboyedu50-lnb ~]# chkconfig |grep iptiptables 0:off 1:off 2:off 3:on 4:off 5:off 6:off第3章 题6
3.1 乱码字符集linux系统中查看中文,但是乱码了,请问如何解决乱码问题?乱码原因:字符集不同
如何排查: 查看字符集是否相同如何解决:修改字符集第4章 题7
4.1 已知如下命令及结果:[oldboy@test ~]$ mkdir /oldboy ; echo "I am oldboy,myqq is 31333741">/oldboy/oldboy.txt[oldboy@test ~]$ cat oldboy.txtI am oldboy,myqq is 31333741a.现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令.b.如果需要从文件中过滤出“oldboy,31333741”字符串,请再给出命令.a.现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令.4.2 方法1 sed+awk
[root@oldboyedu50-lnb /oldboy]# sed 's#,# #g' oldboy.txt I am oldboy myqq is 31333741[root@oldboyedu50-lnb /oldboy]# sed 's#,# #g' oldboy.txt |awk '{print $3,$6}'oldboy 313337414.3 方法2 tr+awk
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt I am oldboy myqq is 31333741[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt |awk '{print $3,$6}'oldboy 31333741tr sed命令阉割版 [root@oldboyedu50-lnb /oldboy]# echo 123123|tr "123" "abc"abcabc[root@oldboyedu50-lnb /oldboy]# echo 112233|tr "123" "abc"aabbcc[root@oldboyedu50-lnb /oldboy]# #tr 1对1的替换4.4 方法3 tr+cut
[root@oldboyedu50-lnb /oldboy]# cut -d " " -f2,3,4 oldboy.txtam oldboy,myqq is[root@oldboyedu50-lnb /oldboy]# cut -d " " -f2-5 oldboy.txtam oldboy,myqq is 31333741-d 指定分隔符(菜刀)-f 某一列a.现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令.
[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt
I am oldboy myqq is 31333741[root@oldboyedu50-lnb /oldboy]# tr "," " " <oldboy.txt |cut -d " " -f3,6oldboy 313337414.5 方法4 awk [root@oldboyedu50-lnb /oldboy]# cat oldboy.txt I am oldboy,myqq is 31333741[root@oldboyedu50-lnb /oldboy]# awk -F "," '{print $2}' oldboy.txt myqq is 31333741#-F 指定分隔符(菜刀)#-F指定多个分隔符[root@oldboyedu50-lnb /oldboy]# awk -F "[, ]" '{print $3}' oldboy.txt oldboy4.6 方法5 sed sed
[root@oldboyedu50-lnb /oldboy]# ca时t oldboy.txt I am oldboy,myqq is 31333741[root@oldboyedu50-lnb /oldboy]# sed 's#I am ##g' oldboy.txt oldboy,myqq is 31333741[root@oldboyedu50-lnb /oldboy]# sed 's#I am ##g' oldboy.txt |sed 's#,myqq is##g'oldboy 313337414.6.1 小结:
1.sed /tr + awk /cut 这两个必须会2.awk4.6.2 如果需要从文件中过滤出“oldboy,31333741”字符串,请再给出命令.
[root@oldboyedu50-lnb /oldboy]# awk -F"[ ,]" '{print $3"_"$NF}' oldboy.txt
oldboy_31333741[root@oldboyedu50-lnb /oldboy]# awk -F"[ ,]" '{print $3":)"$NF}' oldboy.txtoldboy:)31333741[root@oldboyedu50-lnb /oldboy]# awk -F"[ ,]" '{print $3","$NF}' oldboy.txtoldboy,313337414.7 显示 /etc/passwd 第1列和第3列内容 要求格式显示为:
USER:第1列内容 UID:第3列内容 USER:第1列内容 UID:第3列内容 USER:第1列内容 UID:第3列内容 USER:第1列内容 UID:第3列内容 USER:第1列内容 UID:第3列内容[root@oldboyedu50-lnb /oldboy]# awk -F":" '{print "USER:"$1,"UID:"$3}' /etc/passwd
USER:root UID:0USER:bin UID:1USER:daemon UID:2USER:adm UID:3USER:lp UID:4USER:sync UID:5[root@oldboyedu50-lnb /oldboy]# awk -F":" '{print "USER:"$1,"UID:"$3}' /etc/passwd|column -t
USER:root UID:0USER:bin UID:1USER:daemon UID:2USER:adm UID:3USER:lp UID:4第5章 题8
14 如何查看/etc/services文件的有多少行?显示行号 只保留最后一行[root@oldboyedu50-lnb /oldboy]# wc /etc/services 10774 58108 641020 /etc/services[root@oldboyedu50-lnb /oldboy]# wc -l /etc/services 10774 /etc/services5.1 统计总数
统计出 /etc目录下面 以.conf结尾的文件的数量|传递的是文字
|xargs 传递的是文件名[root@oldboyedu50-lnb /oldboy]# find /etc/ -type f -name "*.conf" | wc -l
195第6章 题9
15 过滤出/etc/services 文件包含3306或1521两数字所在的行的内容。egrep "3306或1521" /etc/services
egrep "3306|1521" /etc/services
mysql 3306/tcp # MySQLmysql 3306/udp # MySQLncube-lm 1521/tcp # nCube License Managerncube-lm 1521/udp # nCube License Manager| 扩展正则表达式 egrep == grep -E
6.1 总结:
1.Linux启动流程 2.PATH作用3.查找 grep awk 4.打包压缩 :创建 查看 解压 解压到xxx 5.基础命令6.显示行号第7章 vmware 经典故障:
该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。
配置文件: G:\VMware\模板机01\老男孩教育50期-模板机01.vmx。
方法1.重启计算机
方法2.通过everything 搜索 .lck 删除 虚拟机名称.lck 目录 重启vmware转载于:https://blog.51cto.com/13855748/2149637