2015.12.27日第二周linux课程笔记
常用命令
echo :输出
将标准输入输出到标准输出。默认情况会带有一个\n(换行符)。
[root@node1 test]# echo hello world
hello world
# echo “welcome to uplooking” > test.txt
[root@node1 test]# cat test.txt
welcome to uplooking
-e:解释转义字符
-n:不输出换行符
-E:不解释转义字符
[root@node1 test]# echo -e “a\nb\nc”
a
b
c
[root@node1 test]# echo -e “a\tb\tc”
a b c
修改用户密码:
# passwd 修改当前用户密码(root)
# passwd user 修改user1用户的密码,虽然密码不符合安全规范,依然可以修改成功
$ passwd 修改当前普通用户密码,但是这个密码必须符合安全规范
# echo 123 |passwd –stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
su – user1 切换用户
Linux下怎么去获取帮助?
help:简约帮助
man:详细帮助
info doc:软件的详细信息,作者、使用帮助说明
求简约帮助:
help + 命令(内部命令)
命令(外部命令) + –help
详细的说明
man page:
man man
MANUAL SECTIONS
The standard sections of the manual include:
1 User Commands 所有用户使用的命令
2 System Calls 系统调用相关
3 C Library Functions 库函数
4 Devices and Special Files 特殊文件和设备
5 File Formats and Conventions 文档的格式说明
6 Games et. Al. 游戏相关
7 Miscellanea 杂项
8 System Administration tools and Deamons 系统管理员和程序用户相关
系统管理员:1458
程序员:123458
man 1 ls
# man -f passwd 打印命令所在man文档的章节
passwd (1) – update user’s authentication tokens
passwd (5) – password file
passwd [sslpasswd] (1ssl) – compute password hashes
[root@node1 test]# man 5 passwd
Formatting page, please wait…
# man -k pass 模糊匹配
总结:
陌生命令——>type(内部|外部)——>help 命令|命令 –help ——>man page(man 章节 命令)——>info (软件|工具详细信息)——>度娘、google(参考)——>必须在测试环境中测试通过——>生产
其他命令:
date:
date 【选项】 +格式
[root@node1 ~]# date +%F
2015-12-27
[root@node1 ~]# date +%D
12/27/15
[root@node1 ~]# date +%Y%m%d
20151227
[root@node1 ~]# date +%T
11:55:15
[root@node1 ~]# date +%X
11:55:17 AM
[root@node1 ~]# date “+%Y%m%d %T”
20151227 11:55:32
[root@node1 ~]# date “+%Y%m%d %X”
20151227 11:55:35 AM
修改时间:
date -s “20151111”
date -s “2016-12-12 11:11”
date -s “1111 20181213”
系统时间和硬件时间:
# hwclock
# hwclock –systohc 以系统时间为准,来同步硬件时间 或者clock -w
# hwclock –hctosys 以硬件时间为准,来同步系统时间
扩展:
# date +%F –date=’30 days ago’ 30天以前
2015-11-27
# date +%F –date=’30 day’ 30天以后
2016-01-26
同步系统时间:通过时间同步服务器
[root@node1 ~]# date -s “20201111 1212”
Wed Nov 11 12:12:00 CST 2020
[root@node1 ~]# ntpdate 192.168.0.254
27 Dec 12:02:23 ntpdate[14365]: step time server 192.168.0.254 offset -153878994.737730 sec
[root@node1 ~]# date
Sun Dec 27 12:02:25 CST 2015
# cal
# cal 8 10 2015 显示2015年的10月8号
# touch $(date +%Y%m%d).log
# mkdir $(date +%Y%m%d –date=’30 day’)
文件查找命令:
locate:速度快、不精确、忽略临时目录/tmp 和/var/tmp,查找数据库
locate 关键字
updatedb 更新数据库
[root@node1 test]# touch /tmp/xihei
[root@node1 test]# mkdir /var/tmp/xiaobai
[root@node1 test]# locate xihei
[root@node1 test]# locate xiaobai
[root@node1 test]# updatedb
[root@node1 test]# locate xiaobai
find:精确、磁盘查找,cpu开销较大
find pathname [选项] [-exec |ok command ] {} \;
pathname:查找文件的路径,默认当前目录
选项:
-name:以文件的名字查找
-iname:以文件名字查找,忽略大小写
-type:按照文件的类型 -f代表普通文件;d目录
-size:按文件的大小
-perm:按照文件的权限
-mtime:按照文件的修改时间来查找 +n:代表n天以前;-n:代表n天以后;n代表n当天
-exec:执行后面的command;不询问
-ok:执行后面的command;询问
{}:代表find命令所查找出来的内容
空格 \; 必须以”空格 \;“结尾
# find /etc -type f -size +1M
/etc/selinux/targeted/policy/policy.24
/etc/selinux/targeted/modules/active/policy.kern
/etc/gconf/gconf.xml.defaults/%gconf-tree.xml
# find /tmp -perm 777
# find /etc -name *.conf
# find /etc -name *.conf -exec cp {} /home/test/bak/ \;
# find /etc -name shadow -ok cp {} ../home/test \;
< cp … /etc/shadow > ? y
-mtime:
今天是27号
22、23、24、25、26、27
+3:代表找出3天以前的文件,22号、23号,不包含24号
-3:代表找出3天以内的文件,25号、26号、27号,不包含24号
3:代表找出24号当天的文件
练习:
1、找出根下的所有块设备文件,并且将标准输出及标准错误重定向到/tmp/find.test文件中。
find / -type b >/tmp/find.test 2>&1
2、找出/root目录下小于2M的文件长列出,同时将其追加到/tmp/find.test文件中。
find /root -size -2M -exec ls -l {} \; >> /tmp/find.test
3、在/home/test目录下创建10个文件,并且修改file1~file5的时间为当前系统时间的5天以前,file6的时间为9月1号,file7的时间为9月2号,file8的时间为9月3号。
要求:
1)找出5天以前的文件并将其删掉
find /home/test -mtime +5 -exec rm -f {} \;
2)找出5天以内的文件并且将其拷贝到192.168.0.1上的/home/redhat目录中(redhat/redhat)
find /home/test -mtime -5 -exec scp {} redhat@192.168.0.1:/home/redhat \;
打包压缩的工具:
打包:tar 压缩:zip、gzip、bzip2、xz
压缩工具:
zip:一次性压缩多个文件,或目录
-r:递归
# zip /tmp/conf_bak bakup/*
# zip -r /tmp/conf_bak1 /home/test/bakup /home/test/aaa
解压缩:
unzip /tmp/conf_bak.zip 默认解压到当前目录
unzip /tmp/conf_bak.zip -d /home/test 指定解压目录
gzip|bzip2|xz:压缩单个文件
gzip:压缩单个文件,空间大,速度快,cpu消耗高
gzip /tmp/bak.conf.zip
# gzip conf_bak1.zip conf_bak.zip
解压缩:
# gunzip bak.conf.zip.gz
# gzip -d conf_bak1.zip.gz
参数:
保留源文件
-c
bzip2:压缩单个文件,压缩率高,速度慢,cpu消耗相对较低
# bzip2 conf_bak.zip.gz
解压缩
# bunzip2 conf_bak.zip.gz.bz2
# bzip2 -d conf_bak.zip.gz.bz2
xz:压缩单个文件,压缩率较高,时间非常慢,cpu消耗相对较高
参数:
-z:压缩
-k:保留源文件
unxz
# xz file1.log
# xz -d file1.log.xz
# unxz file1.log.xz
打包工具:
tar
参数:
-c:创建一个tar包
-f:指定包名
-v:显示详细信息
-z:调用的是gzip压缩工具 xx.tar.gz
-j:调用的是bzip2压缩工具 xxx.tar.bz2
-J:调用的是xz压缩工具xx.tar.xz
-t:查看tar包
-x:解压
tar -cf /tmp/$(date +%F).tar /home/test/backup
tar -tf /tmp/2015-12-27.tar
tar -cvzf /tmp/$(date +%Y%m%d).tar.gz /home/test/backup
解压缩:
1、gunzip去解压,只能解压gz,不能解压tar包
2、tar -xf /tmp/20151227.tar.gz
-C:指定加压的路径
往tar包里追加文件
# tar -rP /etc/fstab -f 2015-12-27.tar
练习一:
1、将自己的系统时间修改为2020年的12月12日的11点11分,并写到cmos中。
#date -s “2020-12-12 11:11”
#hwclock –systohc
2、通过时间服务器(192.168.0.254)来同步自己的系统时间,并且将系统时间和硬件时间同步。
#ntpdate 192.168.0.254
#hwclock –systohc
练习二:
1、在/home目录下创建uplook/redhat/test目录,然后在/home/uplook/下面创建文件file1~file5,并且修改file1的日期为20171010,修改file5的时间为11:11分。
#mkidr -p /home/uplook/redhat/test
#cd /home/uplook
#touch file{1..5}
#touch -d 20171010 file1
#touch -d 11:11 file5
2、将/home/uplook/下的file1到file5文件移动到/home/uplook/redhat/test目录下,并重命名test1~test5.
mv /home/uplook/file1 /home/uplook/redhat/test/test1
mv /home/uplook/file2 /home/uplook/redhat/test/test2
mv /home/uplook/file3 /home/uplook/redhat/test/test3
mv /home/uplook/file4 /home/uplook/redhat/test/test4
mv /home/uplook/file5 /home/uplook/redhat/test/test5
3、将/home/uplook/redhat/test下的文件test5远程拷贝到192.168.0.1服务器上的/home/redhat下面,并且重命名成自己名字全拼。(redhat用户的密码是redhat)
#scp /home/uplook/redhat/test/test5 redhat@192.168.0.1:/home/redhat/liuxing
4、删除/home/uplook目录下的redhat目录
rm -rf /home/uplook/redhat
1、找出根下的所有块设备文件,并且将标准输出及标准错误重定向到/tmp/find.test文件中。
find / -type b > /tmp/find.test 2>&1
2、找出/root目录下小于2M的文件长列出,同时将其追加到/tmp/find.test文件中。
find /root -size -2M >> /tmp/find.test
find /root -size -2M -exec ls -l {} \; >> /tmp/find.test
3、在/home/test目录下创建10个文件,并且修改file1~file5的时间为当前系统时间的5天以前,file6的时间为9月1号,file7的时间为9月2号,file8的时间为9月3号。
要求:
1)找出5天以前的文件并将其删掉
2)找出5天以内的文件并且将其拷贝到192.168.0.1上的/home/redhat目录中(redhat/redhat)
新建文件:
touch file{1..10}
修改属性
touch -d 20151226 file1
touch -d 20151225 file2
touch -d 20151224 file3
touch -d 20151223 file4
touch -d 20151222 file5
touch -d 20150901 file6
touch -d 20150902 file7
touch -d 20150903 file8
查找文件:
find ./ -mtime +5
删除文件
find ./ -mtime +5 -exec rm -rf {} \;
推送文件
find ./ -mtime -5 -exec scp {} redhat@192.168.0.1:/home/redhat/liuxingxing \;
1、找出/etc下面的.conf结尾的文件,并将其复制到/home/下的backup目录中。
#mkdir /home/backup
#find /etc -name *.conf -exec cp {} /home/backup \;
2、将/home/backup下的所有文件全部打包压缩到/tmp/20151227.etc.tar.gz(时间调用系统时间)
#tar -cf /tmp/$(date +%Y%m%d).etc.tar.gz /home/backup
3、将/tmp/20151227.etc.tar.gz解压到新建目录/tmp/test中,并打包成20151227.tar
#cd /tmp
#tar -xf /tmp/20151227.etc.tar.gz -C /tmp/test 【解压到指定目录】
#tar -cvf /root/20151227.etc.tar /tmp/test/backup 【打包tar文件】
4、将/etc/fstab文件追加到20151227.tar包
#tar -rP /etc/fstab -f /root/20151227.etc.tar
楼主:书上说:老婆生气了,只要按到在床上嘿咻一下就能平息。我试了几次,还真管用!但是现在老婆动不动就生气,感觉自己上当了!
回复:是生气还是充气?