L010 linux命令及基础手把手实战总结
一转眼都快两周没更新了,最近实在太忙了,这两周的时间断断续续的把L010学完了,短短的15节课,确是把前10节的课程全部的运用一遍,从笔记到整理,再到重新理解,最后发布到微博,也确实提升了一些综合性能,从一个问题转而可以想到思路了,这个是我非常开心的,好了,那么就开始下面的总结。
L010本堂课并非讲述新内容,而是从10多道题入手来熟悉之前的命令,那么我就以题的形式来写本次的总结。
第一题:
100M的空间创建1K的文件,可以创建多少个?如果创建1M的文件可以创建多少个?
答:假设硬盘为4k对齐,那么一个1k的文件就占用1个block和一个inode的为4.25k,就是100*1024/4.25=24094个。
那么一个1M的文件就会占用3个block和一个inode为12.25k,就是100*1024/12.25=8359个
换句话说,系统中的block的数量比inode多。那么就可以判断出,1k的文件数就等于inode的数量
相关的命令:
df -i 查询inode数量
df -h硬盘余量
答:
查询某块硬盘的inode和block的尺寸和数量(我们以第一块硬盘的第二个分区为例)
dumpe2fs /dev/sda2 | grep "Block count" //block的数量
dumpe2fs /dev/sda2 | grep "Block size" //block的尺寸 dumpe2fs /dev/sda2 | grep "Inode count" //inode的数量
dumpe2fs /dev/sda2 | grep "Inode size" //indoe的尺寸
第二题:
如何过滤出已知当前目录下的ceshi中的所有一级目录(提示:不包含ceshi目录下面目录的子目录及隐藏目录,即只能是一级目录)?
答:
首先需要创建环境
[root@moban kh]# for n in `seq `;do mkdir -p "$n";done
[root@moban kh]# ls [root@moban kh]# mkdir -p //
[root@moban kh]# mkdir -p //
[root@moban kh]# pwd
/root/kh
[root@moban kh]# tree /root/kh/
/root/kh/
├──
├──
├──
│ └──
│ └──
├──
│ └──
│ └──
├──
├──
├──
├──
├──
├──
├──
└──
[root@moban kh]# for n in `seq `;do touch "$n.txt";done
开始做题:
用find:
[root@moban kh]# find ./ -type d | awk -F "/" '{print $2}'
或
[root@moban kh]# find ./ -maxdepth -type d //find -maxdepth 为查找的目录深度参数
./
./
./
./
./
./
./
./
./
./
./
./
./
用ll:
[root@moban kh]# ls -l | grep ^d | awk '{print $9}'
用tree:
用tree:
[root@moban kh]# tree -Ld //L是深度,d为目录的属性
.
├──
├──
├──
├──
├──
├──
├──
├──
├──
├──
├──
└──
用sed:
[root@moban kh]# ll | sed -n /^d/p | awk '{print $9}'
第三题:
去除ssd配置文件中的注释部分
答:
[root@moban kh]# grep -v ^# /etc/ssh/sshd_config //方法1 [root@moban kh]# cat /etc/ssh/sshd_config | grep -v ^# //方法2
第四题:
去除ssd配置文件中的注释部分以及空行部分
[root@moban ~]# grep -Ev "^#|^$" /etc/ssh/sshd_config //方法1
[root@moban ~]# egrep -v "^#|^$" /etc/ssh/sshd_config //方法2
第五题:
一个目录中有很多文件(ls查看时好多屏),想最快速度查看到最近更新的文件,该如何查看?
答:
[root@moban kh]# ls -lrt //r为反、倒 t为time,时间
第六题:
让egrep搜索的内容填加颜色
答:
[root@moban kh]# echo "alias egrep='egrep --color=auto'" >>/etc/profile
[root@moban kh]# source /etc/profile
第七题:
在配置apache时执行了./configure --prefix=/application/apache2.2.17 来编译apache,在make install 完成后,希望
用户的访问路径更简单,需要给/application/apache2.2.17 目录做一个软连接/application/apache,使得内部开发或者
管理人员通过/application/apache 就可以访问到apache的安装目录/application/apache2.2.17下的内容,请你给出实现
的命令。(提示:apache为一个httpd web 服务)
ln 连接(link)常与-s搭配 做软连接使用
ln -s [源文件或目录] [目标文件或目录]
参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
答:
第一步创建做题环境
[root@moban ~]# mkdir -p /root/ti/application/apache2.2.17/
这样,目录就已搭建好
下面:
[root@moban ti]# ln -s /root/ti/application/apache2.2.17/ /root/ti/application/apache //前面是实际路径,后面的路径为软连接路径
查看一下软件链接:
[root@moban ti]# ll /root/ti/application/
total
lrwxrwxrwx root root Mar : apache -> /root/ti/application/apache2.2.17/
drwxr-xr-x root root Mar : apache2.2.17
因为是第一次做软连接,所以在原连接目录下创建一文件,去软连接里看看会不会看到,哈哈
[root@moban ~]# cd /root/ti/application/apache
[root@moban apache]# ls
[root@moban apache]# pwd
/root/ti/application/apache
[root@moban apache]# touch /root/ti/application/apache2.2.17/.txt
[root@moban apache]# ls
.txt
成功,然后还有一点,我试了一下,软连接不一定跟源路径走,比如源连接:/root/ti/application/apache2.2.17/,那么我的连接路径可以也设置为/root/apache
第八题:
已知apache服务的访问日志按天记录在服务器本地目录/app/logs下。由于磁盘空间紧张,现在要求只能保留最近3天访问日志
请问如何解决?请给出解决办法或者配置或处理命令。(一种是从apache服务配置上着手,也可以从生成出来的日志上着手)
Date 时间
参数“
-s 设置时间;根据字符串来设置日期与时间。字符串前后必须加上双引号。
>date -s //设置当前时间,只有root权限才能设置,其他只能查看。
>date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
>date -s 01:01:01 //设置具体时间,不会对日期做更改
>date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
>date -s “01:01:01 20080523″ //这样可以设置全部时间
>date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
>date -s “20080523 01:01:01″ //这样可以设置全部时间
答:
这道题其实难做的是环境(对于这个阶段的我来说)
先做环境把
[root@moban log]# for n in `seq `;do date -s "03/$n/16";touch access_www_`(date +%F)`.log;done //一直分不清符号的使用,如``和‘’和"",不过通过这个程序知道了用这个``的时候要是中间是需要执行的程序,
关于%F,为日期的意思:同%Y-%m-%d
然后做题
[root@moban log]# find ./ -type f -mtime + -exec rm -f {} \; //注意“\”前要有空格
或
find ./ -type f -name "*.log" -mtime + | xargs rm -f
也可以放到循环列表中
[root@moban oldboy]# echo ‘* * * * find ./ -type f -name "*.log" -mtime + -exec rm -f {} \; >> /dev/null >&’ >> /var/spool/cron/root // -exec rm -f {} \; 可以改成-delete
第九题:
调试系统服务时,希望能实时查看系统日志/var/log/messages的更新,如何做?
tail //用于显示指定文件末尾内容,常用查看日志文件。 常用-f参数可以方便的查阅正在改变的日志文件
参数:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
答:
tail -f /var/log/messages
第十题:
装完系统后,希望网络文件共享服务sshd,仅在3级别上开机自启动,该如何去做。
chkconfig --list
chkconfig --level
chkconfig [应用名] on/off //各模式下的全部开启或者关闭
答:
[root@moban log]# chkconfig --list sshd //查看在各level下的sshd开启状态
sshd :off :off :on :on :off :off :off
[root@moban log]# chkconfig sshd off //关闭所有level下的sshd
[root@moban log]# chkconfig --list sshd
sshd :off :off :off :off :off :off :off
[root@moban log]# chkconfig --level sshd on //sshd开启level 3模式
[root@moban log]# chkconfig --list sshd
sshd :off :off :off :on :off :off :off
第十一题:
linux系统运行级别一般为0-6,请分别写出每个级别的含义。
答:
0 - halt //关机模式
1 - Single user mode //单一用户模式
2 - Mutiuser,without NFS //无NFS用户的多用户模式
3 - Full multiuser mode //命令行模式
4 - unused //空
5 - X11 //图形化
6 - reboot //重启机器 init 6
第十二题:
/etc/目录为linux系统的默认的配置文件及服务启动命令的目录
a.请用tar打包/etc整个目录(打包及压缩)
b.请用tar打包/etc整个目录(打包及压缩,但需要排除/etc/services文件)
c.请把a点命令的压缩包,解压到/tmp指定目录下(最好只用tar命令实现)
tar 压缩命令
参数:
tar 参数 [压缩包的路径+文件名] [要压缩文件的名称和地点]
参数:
-c 创建
-z gz格式的压缩文件
-j bz格式的压缩文件
-v 显示过程中的文件名
-f 使用文档名,在f过后要立即加文档或路径
-x 解压
-t 查看文档内容
-X 从文档中读取排除压缩包外的目录名
-C 指定解压到某地址的参数,后面接路径
--eclude FILE 排除某个文件或者目录
答:
a.[root@moban /]# tar -czvf etc.tar.gz etc/
b.[root@moban /]# tar --exclude etc/services -czvf etc1.tar.gz etc/
c.[root@moban etc]# tar -xzvf etc.tar.gz -C /tmp
-X和-C参数运用:
[root@moban tmp]# echo var > tar.txt
[root@moban tmp]# echo tmp >> tar.txt
[root@moban tmp]# cat tar.txt
[root@moban tmp]# tar -X tar.txt -czvf etc2.tar.gz etc/
[root@moban tmp]# tar -xzvf etc2.tar.gz -C /tmp/
[root@moban tmp]# find ./ -type d -name tmp -o -name var
第十三题:
已知下面的命令及结果:
[root@moban ~]# echo "I am oldboy,myqq is 49000448" >> oldboy.txt
[root@moban ~]# cat oldboy.txt
I am oldboy,myqq is 49000448
a.现在需要从文件中过滤出“oldboy”和“49000448”字符串,请给出命令
b.如果需要从文件中过滤出“oldboy,49000448”字符串,请再给出命令
cut //剪切数据
参数
-b 字节
-c 字符
-d 设定分隔符
-f 分区域显示,和-d一起使用,-d设定分隔符后加-f显示区域
参数使用(参数通用,不仅仅只-b):
-b -3 //-3为前3个字符,包括第三个
-b 3- //为第三个以后的字符,包括第三个
-b 3 //第三个字符
-b 3-5//第三到第五个字符,包括3和5字符
-b 3-5,6-7 //多个用,连接,从小到大排列,就算6-7,3-5也是从3-5开始
答:
a.[root@moban tmp]# cut -b -,- cut.txt
oldboy
b.[root@moban tmp]# cut -b -,- cut.txt
oldboy,
另:
已知下面的命令及结果:
[root@moban ~]# echo "I am oldboy myqq is 49000448" >> oldboy.txt
[root@moban ~]# cat oldboy.txt
I am oldboy,myqq is 49000448
a.现在需要从文件中过滤出“oldboy”和“49000448”字符串,请给出命令
b.如果需要从文件中过滤出“oldboy,49000448”字符串,请再给出命令
tr "," " " //把,替换成空格
答:
cut方法
a.[root@moban tmp]# cut -d " " -f , cut.txt
oldboy
b.[root@moban tmp]# cut -d " " -f , cut.txt|tr " " "," //把输出的结果中空格字符换成逗号
oldboy,
awk方法
a.[root@moban tmp]# awk -F " " '{printf $3 $6}' cut.txt
oldboy49000448
b.[root@moban tmp]# awk -F " " '{printf $3","$6}' cut.txt
oldboy,
sed方法(算是吧,为了巩固sed s###g这个替换法)
a.[root@moban tmp]# sed s#","#" "#g cut.txt | awk -F " " '{printf $3 $6}' //用sed sg把逗号换成空格
oldboy49000448
第十四题:
如何查看/etc/services文件的有多少行?
cat //查看 命令
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
wc 统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
参数:
-c 统计字节数。
-l 统计行数。----------常用
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
答:
)vi /etc/services
:set nu
)less -N /etc/ssh/sshd_config
)cat -n /etc/services
)nl /etc/services
)[root@moban tmp]# grep -n " " ./etc/services
第十五题:
过滤出/etc/services 文件包含3306或1521两数字的行的内容
grep 过滤
参数
-n 显示行号
答:
[root@moban tmp]# grep -En "3306|1521" /etc/services
:mysql /tcp # MySQL
:mysql /udp # MySQL
:ncube-lm /tcp # nCube License Manager
:ncube-lm /udp # nCube License Manager
或
[root@moban tmp]# egrep -n "3306|1521" /etc/services
:mysql /tcp # MySQL
:mysql /udp # MySQL
:ncube-lm /tcp # nCube License Manager
:ncube-lm /udp # nCube License Manager
其他一些设计到的内容
正则表达式:
^的意思是以...开头,例如^oldboy表示以oldboy开头的
与`^`意思相反的是[^*],非以*为开头的
$的意思是以....结尾,例如oldboy$表示以oldboy字符串为结尾。
^$意思是空行
\ 让一个字符脱掉马甲,还原他本来的意义。([root@moban ceshi]# sed -n '/\//p' 1.txt //过滤斜线)
find参数 -maxdepth 1 //数字1表示1层 查找的目录深度参数
小结:
find
!的作用取反 -a为and表示并且(查找多个默认为and) -o为or两遍有一个成立即可。
[root@moban ceshi]# find ./ -type f -o -name .txt
[root@moban ceshi]# find ./ -type f -a -name .txt
L010 linux命令及基础手把手实战总结的更多相关文章
- Linux命令工具基础04 磁盘管理
Linux命令工具基础04 磁盘管理 日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩: 查看磁盘空间 查看磁盘空间利用大小 df -h -h: huma ...
- SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作
摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...
- L014-第三关课前linux命令及基础知识考试手把手实战解答小节
又是一周啊,以后保持一周一个微博吧. 这是一个堂解答考试题的课,那么就以题目来展开吧! 1.如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r--为644,要求用命令获得644这 ...
- linux 命令行基础
命令行基础 一些名词 「图形界面」 「命令行」 「终端」 「shell」 「bash」 安装使用 Windws: 安装git, 打开 gitbash Linux 打开终端 Mac 打开终端 基本命令 ...
- Linux命令行基础操作
目录 1.打开终端命令行 2.常用快捷键 2.1 tab键 2.2 Ctrl+c组合键 2.3 Ctrl+d组合键 2.4Ctrl+Shift+c组合键和Ctrl+Shift+v组合键 2.5图形界面 ...
- Linux命令工具基础02 文件及目录管理
文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理 ...
- Linux命令行基础
常用命令 命令 功能 pwd 打开当前所在的文件目录 ls 查看当前文件夹下的文件(不包括隐藏文件) ls -a 查看当前文件夹下的文件(包括隐藏文件) ls -al 查看当前文件夹下的文件(包括隐藏 ...
- linux命令1——基础
Rm 删除命令 Rm [选项][文件] 删除一个文件或者目录 选项:r 递归的删除文件夹及其子文件,f 忽略不存在的文件(不提示) (2)rm删除目录下所有文件,但不删除目录 >>rm - ...
- Linux实战教学笔记04:Linux命令基础
第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...
随机推荐
- WC2018 滚粗记
虽然又考炸了但还是总结一下.. $day0$:没有什么很重要的事.. $day1$:除了听(dong)课(mian)以外没有什么很重要的事.. $day2$:除了听(dong)课(mian)以外没有什 ...
- [USACO19JAN]Exercise Route
题目 这题的数据有点水,暴力合并\(set\)好像过了 分析一下这个题的性质,发现我们一条非树边就会形成一个环,而我们要求选择两个非树边,就会形成两个环,要求不走重复的点,就是说我们需要走一个大环,且 ...
- 19、配置嵌入式servlet容器(下)
使用外置的Servlet 嵌入式Servlet容器:应用打成可执行的j ar 优点:简单.便携: 缺点:默认不支持JSP.优化定制比较复杂 使用定制器[ServerProperti ...
- TCP/IP模型 & 5层参考模型
OSl参考模型与TCP/IP参考模型相同点: 1.都分层 2.基于独立的协议栈的概念 3.可以实现异构网络互联
- Enum介绍
public enum Color { RED, YELLOW, BLUE; } 说明: 使用的是enum关键字而不是class 多个枚举变量之间用 逗号 隔开 枚举变量名大写,多个单词之间用 _ 隔 ...
- idea debug操作
3. 条件断点 说明: 调试的时候,在循环里增加条件判断,可以极大的提高效率,心情也能愉悦.具体操作: 在断点处右击调出条件断点.可以在满足某个条件下,实施断点. 查看表达式的值(Ctrl + u): ...
- ARP, Fragmentation and Reassembly
Address Resolution Protocol IP addresses are said to be logical, because they are defined in terms o ...
- Xcode 7.0 SDK(Software Development Kit) 及 Sandbox(沙盒) 存放路径
1. Sandbox(沙盒) 存放路径 我的硬盘/Users/wj121/Library/Developer/CoreSimulator/Devices/879D7E35-BE50-4620-97E1 ...
- 在EF Core里面如何使用以前EntityFramework的DbContext.Database.SqlQuery<SomeModel>自定义查询
问: With Entity Framework Core removing dbData.Database.SqlQuery<SomeModel> I can't find a solu ...
- win7下添加库文件出现“file is not regcognized”问题
最近几天需要画电路图,所以安装了protel se99,安装后在添加库文件的时候出现“file is not regcognized”的问题 百度查了一下,说win7基本上都会出现这个问题. 实际上, ...