标签:基础命令
12.19&12.20基础命令练习二
linux启动过程
1.开启开关
2.bios开机自检
3.mbr引导
4.grub菜单 选择内核
5.加载内核
6.启动init进程 init进程是linux启动的时候运行的第一个进程
7.从/etc/inittab读取运行级别
8.根据/etc/rc.d/rc.sysinit 初始化系统 (设置主机名 ip地址)
9.根据运行级别启动对应的软件(开机自启动软件)
10.运行mingetty 显示登录界面
[root@oldboy oldboy]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy oldboy]# export.UTF-8
1. 环境变量
2. 存放的是命令的位置/目录
1. ls或mkdir
2. 系统会去PATH里面的位置查找命令 是否存在
存在 运行
不存在 报错
小结:1.PATH作用
2.Linux下面执行命令简单过程
[root@oldboy oldboy]# tree -d -L 1
. -d 显示目录名称而非内容
├── ext -L 层级显示
├── gao
├── test
├── xiaodong
├── xiaofan
└── xingfujie
6 directories
[root@oldboy oldboy]# find -maxdepth 1 -type d
.
./xingfujie
./xiaodong
./gao
./ext
./xiaofan
./test
[root@oldboy oldboy]# find -maxdepth 1 -type d -name "."
.
[root@oldboy oldboy]# find -maxdepth 1 -type d ! -name "."
./xingfujie ! 排除
./xiaodong -maxdepth 最大深度,最多几层目录
./gao
./ext
./xiaofan
./test
[root@oldboyedu43-lnb oldboy]# ls -l |grep "^d"
drwxr-xr-x 3 root root 4096 Dec 15 00:26 ext
drwxr-xr-x. 2 root root 4096 Dec 11 21:22 test
drwxr-xr-x 2 root root 4096 Dec 15 00:26 xiaodong
drwxr-xr-x 2 root root 4096 Dec 15 00:26 xiaofan
drwxr-xr-x 2 root root 4096 Dec 15 00:26 xingfujie
(三剑客使用)正则表达式,以....开头的行
[root@oldboyedu43-lnb oldboy]# ls -l |awk '第2列大于1'
awk: 第2列大于1
[root@oldboyedu43-lnb oldboy]# ls -l |awk '$2>1'
total 32 蓝色字体表示目录数目=隐藏目录数目+普通目录数目
drwxr-xr-x 3 root root 4096 Dec 15 00:26 ext
drwxr-xr-x. 2 root root 4096 Dec 11 21:22 test
drwxr-xr-x 2 root root 4096 Dec 15 00:26 xiaodong
drwxr-xr-x 2 root root 4096 Dec 15 00:26 xiaofan
drwxr-xr-x 2 root root 4096 Dec 15 00:26 xingfujie
[root@oldboyedu43-lnb oldboy]# ls -F|grep "/"
ext/
test/
xiaodong/ F 给不同类型的文件,做上标记
xiaofan/
xingfujie/
[root@oldboyedu43-lnb oldboy]# #-F 给不通类型的文件 加上不通的标记/尾巴
[root@oldboy oldboy]# pwd #==>这是打印当前目录的,最菜的命令了,你该会的。/oldboy。现在因为需要进入到了/tmp 目录下进行操作,执行的命令如下:[root@oldboy oldboy]# cd /tmp[root@oldboy tmp]# pwd /tmp操作完毕后,希望快速返回上一次进入的目录,即/oldboy 目录,该如何做呢?(提示:不能用 cd /oldboy 命令呦)
cd - 快速回上一次所在位置
cd . 当前目录 复制/移动
cd .. 进入当前目录的上级目录
cd ~ 进入当前目录的家目录 回老家
cd 进入当前目录的家目录 回老家
ls -lrt
-r 倒序/逆序显示内容
-t 按照文件的修改时间显示
显示的时候按时间顺序,最新的在最下面 按时间顺序倒序
[root@oldboyedu43-lnb etc]# ls -l --time-style=long-iso
total 1636
drwxr-xr-x. 3 root root 4096 2017-12-08 12:38 abrt
drwxr-xr-x. 4 root root 4096 2017-12-08 12:41 acpi
-rw-r--r--. 1 root root 46 2017-12-12 07:18 adjtime
-rw-r--r--. 1 root root 1512 2010-01-12 21:28 aliases
-rw-r--r--. 1 root root 12288 2017-12-08 12:49 aliases.db
[root@oldboy ~]# mkdir -p /applocation/apache2.2.17
[root@oldboy ~]# ln -s /applocation/apache2.2.17 /applocation/apache
[root@oldboy /]# ls /applocation
mkdir -p /app/logs
cd /app/logs
for time in {01..20};do date -s "201705$time"; touch access_www_$(date +%F).log ;done
date -s "20170520"
方法一:
find /app/logs/ -type f -name "*.log" -mtime +7|xargs ls -l
方法二:
ls -l $(find /app/logs/ -type f -name "*.log" -mtime +7)
方法三:
#find /app/logs/ -type f -name "*.log" -mtime +7 -exec ls -l {} \;
方法四:(了解)
通过系统软件对系统日志进行切割
[root@oldboy oldboy]# date -s "20171111 11:11:11"
Sat Nov 11 11:11:11 CST 2017
[root@oldboy oldboy]# date
Sat Nov 11 11:11:12 CST 2017
tail -f /var/log/secure
-f 显示文件内容的实时更新
查找/oldboy 下所有以log 结尾的大于1M 的文件复制到/tmp 下
[root@oldboy oldboy]# find /oldboy -type f -name "*.log" -size +1M
/oldboy/old.log
# -size +1M 大写
# -size +100k 小写
方法一: cat的叠加功能
[root@oldboy oldboy]# ls -lh /etc/services
-rw-r--r--. 1 root root 626K Mar 22 2017 /etc/services
[root@oldboy oldboy]# cat /etc/services /etc/services >1.log
[root@oldboy oldboy]# ls -lh 1.log
-rw-r--r--. 1 root root 1.3M Nov 11 11:33 1.log cat具有叠加功能
方法二:dd命令
[root@oldboy /]# dd if=/dev/zero of=/wang.txt bs=3M count=1
1+0 records in
1+0 records out
3145728 bytes (3.1 MB) copied, 0.0152596 s, 206 MB/s
find /oldboy -type f -name "*.log"
mkdir -p /tmp/a /tmp/b /tmp/c
方法1 find+$()
#cp 此处是find命令的结果 /tmp/a/
cp $(find /app/logs/ -type f -name "*.log") /tmp/a/
方法2 find + -exec
find /app/logs/ -type f -name "*.log" -exec cp {} /tmp/b/ \; 注意{}的位置
方法3 find + |xargs
find /app/logs/ -type f -name "*.log" |xargs cp -t /tmp/c
-t参数 源目标与目的目标互换
总结:
1,.find与复制或移动
1. Linux启动过程
2. PATH作用
3. 文件修改时间 mtime
4. cd相关参数
5. tree/find
6. grep 正则表达式
12.20
第二关练习题(2)
[root@oldboy oldboy]# echo {1..4}
1 2 3 4
[root@oldboy oldboy]# echo {01..100}
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100
[root@oldboy oldboy]# echo stu{01..10}
stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10
[root@oldboy oldboy]# echo stu{01..5} |xargs -n1 >nginx.conf
[root@oldboy oldboy]# cat nginx.conf -n 分组显示
stu01
stu02
stu03
stu04
stu05
cat -n nginx.conf -n 显示行号
vim :set nu 显示行号 :set nomu 取消显示行号
[root@oldboy oldboy]# grep -n "." nginx.conf
1:stu01
2:stu02 -n 给grep找到的内容显示行号
3:stu03
4:stu04 .(点) 表示任意一个字符
[root@oldboy oldboy]# awk '{print NR}' nginx.conf
1
2
3
4
5
[root@oldboy oldboy]# awk '{print NR,$0}' nginx.conf
1 stu01 print 显示 逗号 --显示空格
2 stu02 NR 行号
3 stu03 $0 表示这一行的内容
4 stu04
5 stu05
[root@oldboy oldboy]# sed '=' nginx.conf
1
stu01
2 ‘=’ 显示行号
stu02
3
stu03
4
stu04
5
stu05
[root@oldboy oldboy]# sed '=' nginx.conf|xargs -n2
1 stu01
2 stu02
[root@oldboy oldboy]# chkconfig --level 3 iptables on
[root@oldboy oldboy]# chkconfig |grep "ipt" --level 单独指定某个与运行级别
iptables 0:off 1:off 2:off 3:on 4:off 5:off 6:off
0 关机
1 单用户模式 root密码忘记
2 没有NFS的多用户模式
3 命令行模式
4 没有使用 待开发
5 图形化模式 桌面模式 x11
6 重启
[root@oldboy oldboy]# runlevel
3 3
1. 临时 init 3
2. 永久 /etc/inittab
3.13 /etc/目录为 linux 系统的默认的配置文件及服务启动命令的目录
a.请用 tar 打包/etc 整个目录(打包及压缩)
b.请用 tar 打包/etc 整个目录(打包及压缩,但需要排除/etc/services 文件)
c.请把 a 点命令的压缩包,解压到/tmp 指定目录下(最好只用 tar 命令实现)
tar zcvf /tmp/etc.tar.gz
z === gzip 通过gzip进行压缩
c === create 创建包
v === 显示执行过程
f === file 指定的压缩包
-C (大写) 解压到指定目录
x 解压
格式: #tar zcvf 压缩包(筐) 文件 文件 目录
文件后缀:.tar.gz
tar xf /tmp/etc.tar.gz -C /opt
[root@oldboy ~]# tar ztf /tmp/etc.tar.gz
t =====list 查看压缩包内容
tar zcf /tmp/etc-pai.tar.gz /etc/ --exclude=/etc/services
tar: Removing leading `/' from member names
tar: Removing leading `/' from hard link targets
tar tf /tmp/etc-pai.tar.gz |grep "services"
etc/init/readahead-disable-services.conf
-X(大写) =====--exclude-from=被排除的文件名列表(暗杀名单)
警告:
tar: Removing leading `/' from member names
删除 主要的 /(根)从 压缩包中的文件名
把压缩包中每个文件名开头的”/”删掉
tar: Removing leading `/' from hard link targets
原因:是一种安全措施,防止解压的时候覆盖原来的文件
如果不这样做,解压之前的压缩包的时候 会把新的文件覆盖,导致之间时间段的数据丢失
解决:
1)不理会,这只是警告,不影响实际创建
2)使用相对路径创建压缩包
小结:
1. 创建,查看,解压压缩包
2. tar zcf tf xf
3. -C 指定解压目录
4. --exclude 压缩时排除
[oldboy@test ~]$ echo "I am oldboy,myqq is 31333741">>oldboy.txt
[oldboy@test ~]$ cat oldboy.txt
I am oldboy,myqq is 31333741
现在需要从文件中过滤出“oldboy”和“31333741”字符串,请给出命令.
sed 's#I am ##g' oldboy.txt |sed 's#,myqq is # #g'
oldboy 31333741 将指定字符替换为空字符
[root@oldboyedu43-lnb oldboy]# awk -F "[ ,]" '{print $3,$6}' oldboy.txt
oldboy 31333741 空格&逗号
-F 指定分隔符 ——F “[ ,]” []内空格和逗号 只一把刀,不需要[] 如-F “,”
实例3-1 扩展(过滤出oldboy ,31333741 包括逗号)
awk -F "[ ,]" '{print $3","$NF}' oldboy.txt
oldboy,31333741 双引号里面写什么,输出什么
$NF 表示最后一列 awk默认分隔符为空格
sed 's#,# #g' oldboy.txt |cut -d " " -f3,6
oldboy 31333741
缺点:cut只能指定一个分隔符 cut awk小弟 阉割版
优点:显示多列方便(某一列和某一列 某一列到某一列)
-d 指定分隔符
-f 显示某列
-f1 显示第一列
-f1,5 显示第一列和第五列
-f1-5 显示第一列到第五列
[root@oldboy ~]# wc /etc/services
10774 58108 641020 /etc/services
行数 单词数 大小 -l(小写) 只显示行数
[root@oldboy ~]# wc -l /etc/services
10774 /etc/services
-ef 显示所有正在运行的进程
ps -ef |grep “/sshd”|wc -l 根据进程数推断进程是否运行
[root@oldboyedu43-lnb oldboy]# egrep "3306|1521" /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
ncube-lm 1521/tcp # nCube License Manager
ncube-lm 1521/udp # nCube License Manager
| 正则表达式 或者 egrep识别 grep不识别
标签:基础命令
原文地址:http://blog.51cto.com/13517084/2054960