linux常用命令(2015.12.27第二周linux课程笔记)

2015.12.27日第二周linux课程笔记

常用命令
echo :输出
 将标准输入输出到标准输出。默认情况会带有一个\n(换行符)。
[[email protected] test]# echo hello world
hello world
# echo "welcome to uplooking" > test.txt
[[email protected] test]# cat test.txt
welcome to uplooking
-e:解释转义字符
-n:不输出换行符
-E:不解释转义字符
[[email protected] test]# echo -e "a\nb\nc"
a
b
c
[[email protected] 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
[[email protected] test]# man 5 passwd
Formatting page, please wait...

# man -k pass  模糊匹配

总结:
陌生命令——>type(内部|外部)——>help 命令|命令 --help ——>man page(man 章节 命令)——>info (软件|工具详细信息)——>度娘、google(参考)——>必须在测试环境中测试通过——>生产

其他命令:
date:
date 【选项】 +格式
[[email protected] ~]# date +%F
2015-12-27
[[email protected] ~]# date +%D
12/27/15
[[email protected] ~]# date +%Y%m%d
20151227
[[email protected] ~]# date +%T
11:55:15
[[email protected] ~]# date +%X
11:55:17 AM
[[email protected] ~]# date "+%Y%m%d %T"
20151227 11:55:32
[[email protected] ~]# 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
同步系统时间:通过时间同步服务器
[[email protected] ~]# date -s "20201111 1212"
Wed Nov 11 12:12:00 CST 2020
[[email protected] ~]# ntpdate 192.168.0.254
27 Dec 12:02:23 ntpdate[14365]: step time server 192.168.0.254 offset -153878994.737730 sec
[[email protected] ~]# 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  更新数据库
[[email protected] test]# touch /tmp/xihei
[[email protected] test]# mkdir /var/tmp/xiaobai
[[email protected] test]# locate xihei
[[email protected] test]# locate xiaobai
[[email protected] test]# updatedb
[[email protected] 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 {} [email protected]:/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 [email protected]:/home/redhat/liuxing

4、删除/home/uplook目录下的redhat目录
rm -rf /home/uplook/redhat

2015.12.27日第二周linux课程笔记

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 {} [email protected]:/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

未经允许不得转载:好玩吧 » linux常用命令(2015.12.27第二周linux课程笔记)