- A+
0x00前言
Java刷题先告一段落,先把Linux丢的捡起来,生疏的反复回忆记忆。深度学习这2天不在状态,静不下心,明天得补回来//):)
0x01 Linux文件系统知识
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/sbin 超级管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公共的临时文件存储点
/root 系统管理员的主目录
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统
/lost+found这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录,其中包含:
/usr/x11R6存放x window的目录
/usr/bin众多的应用程序
/usr/sbin超级用户的一些管理程序
/usr/doclinux文档
/usr/includelinux下开发和编译应用程序所需要的头文件
/usr/lib常用的动态链接库和软件包的配置文件
/usr/man帮助文档
/usr/src源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin本地增加的命令
0x02 chown和chmod区别
##chown 修改文件和文件夹的用户和用户组属性
1。要修改文件hh.c的所有者.修改为sakia的这个用户所有
chown sakia hh.c
这样就把hh.c的用户访问权限应用到sakia作为所有者
2。将目录 /tmp/sco 这个目录的所有者和组改为sakia和组net
chown -R sakia:net /tmp/sco
############################################################
chmod 修改文件和文件夹读写执行属性
1。把hh.c文件修改为可写可读可执行
chmod 777 hh.c
要修改某目录下所有的文件属性为可写可读可执行
chmod 777 *.*
把文件夹名称与后缀名用*来代替就可以了。
同理若是要修改所有htm文件的属性
chmod 777 *.htm
2。把目录 /tmp/sco修改为可写可读可执行
chmod 777 /tmp/sco
要修改某目录下所有的文件夹属性为可写可读可执行
chmod 777 *
把文件夹名称用*来代替就可以了
要修改/tmp/sco下所有的文件和文件夹及其子文件夹属性为可写可读可执行
chmod -R 777 /tmp/sco
可写 w=4
可读 r=2
可执行 x=1
777就是拥有全权限。根据需要可以自由组合用户和组的权限
0x03 Linux文件权限
mkdir abc ls -l
drwxr-xr-x 2 root root 4096 Feb 21 22:17 abc
- 10个字符确定不同用户能对文件干什么
- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
- 2 表示连接的文件数
- root 表示用户
- root 表示用户所在的组
- 4096 表示文件大小(字节)
- Feb 21 22:17 表示最后修改日期
- abc 表示文件名
0x04 非vim下
cut :从文本文件的每一行中截取指定内容的数据。
cp :用来复制文件或目录。
dd :将指定的输入文件拷贝到输出文件中,在拷贝的过程中可以进行格式转换。
fmt :将所有非空白行的长度设置为几乎相同,来进行简单的文本格式化。
0x05 计划任务
计划任务内容格式:分 时 日 月 周 命令/脚本
实例:
每天04:00
0 4 * * * 要执行的命令
周二和周五18:00
0 18 * * 2,5 要执行的命令
1月到3月份, 周二和周五18:00
0 18 * 1-3 2,5 要执行的命令
周一到周五17:30发广播,然后17:45分关机
写两条计划任务,不是只能写一条
30 17 * * 1-5 /usr/bin/wall < /root/msg
45 17 * * 1-5 /sbin/shutdown -h now
中午12点到14点,每两分钟(偶数)
*/2 12-14 * * * 命令
1-59/2 (奇数)
在Linux下我们用crontab来实现定期执行脚本。
查看crontab 输入命令:cat /etc/crontab
crontab -u //设定特定用户的定时服务
crontab -l //列出当前用户定时服务内容
crontab -r //删除当前用户的定时服务
crontab -e //编辑当前用户的定时服务
在设定编辑之前都建议列出服务查看一下:crontab -l
显示有一个已经设定好的定时任务 每天九点10分执行 脚本命令: hadoop jar /tycrtest/test2.jar
然后编辑定时任务:crontab -e 进入编辑界面会显示已存在的定时任务
* * * * * user_name command to be executed
user_name 表示执行定时任务的用户 不指定默认当前用户
command to be executed 表示要执行的脚本语句。
按 i 键进入编辑 编辑完毕后 按esc 然后输入 :wq 报存并退出 注意不是输入wq 是:wq
前面五位是定时执行的时间周期 说明如下:
第一个 * 表示分钟:取值范围 0-59
第二个 * 表示小时:取值范围0-23
第三个 * 表示天数:取值范围1-31
第四个 * 表示月份:取值范围1-12
第五个 * 表示每周:取值范围0-6
使用(-)可以划定范围
如:0 0-3 * * * 脚本 表示每天0-3点整执行脚本
使用(,)可以枚举时间
如: 0,15,30,45 * * * * 脚本 表示每个小时的0分,15分,45分,30分会执行脚本
使用(/)可以指定间隔
如:* */8 * * * 脚本 表示每8小时执行脚本
组合用法
0-20/10 * * * * 脚本 表示在前20分钟内每隔10分钟执行脚本
10 9 * * * hadoop jar /cookie/test.jar 默认root 每天9点10执行hadoop jar /cookie/test.jar 这个脚本