分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
文件系统 |
|
---|
程序 |
|
---|
使用环境 |
|
---|
文字编辑 |
|
---|
Shell 程序 |
|
---|
网络 |
|
---|
搜索 |
|
---|
杂项 |
|
---|
1. 文件权限
$ls -l- rw-r--r-- 1 dave admin 300 Fed 19 22:05 myfile
文件类型 文件权限 文件属主 文件属主dave 的用户组 文件字节长度 文件更新时间 文件名
- rw-r--r-- 1 dave admin 300 Fed 19 22:05 myfile
1 .文件类型
文件权限位前面的那个字符,我们例子中的横杠就是文件的类型,即普通文件类型。
文件类型有七种,它可以从 ls -l命令所列出的结果的第一位看出:
d 目录。l 符号链接(指向另一个文件)。s 套接字文件。b 块设备文件。c 字符设备文件。p 命名管道文件。
- 普通文件,或者更准确地说,不属于以上几种类型的文件。
2.文件的权限:
文件的权限可分为三类:3.修改权限: chmod
1)符合模式:chmod [who] operator [permission] filename
who的含义是:u文件属主权限。g同组用户权限。o其他用户权限。a所有用户(文件属主、同组用户及其他用户)。
operator的含义:+ 增加权限。-取消权限。= 设定权限。
permission的含义:r读权限。w写权限。x 执行权限。s 文件属主和组set -ID。t 粘性位*。l 给文件加锁,使其他用户无法访问。
u,g,o 针对文件属主、同组用户及其他用户的操作。
chmod u+x myfile //赋予文件属主执行权限
2) 绝对模式: chmod [mode] file把相应权限位所对应的值加在一起,就是644。
4.chown和chgrp
chown命令的一般形式为:
chown -R -h owner file
- R选项意味着对所有子目录下的文件也都进行同样的操作。
- h选项意味着在改变符号链接文件的属主时不影响该链接所指向的目标文件。
如:
$ chown mysql hiscore 把 hiscore文件的属主改为mysql
$ chown -R mysql hiscore 递归地把hiscore(数据库名称)目录下的所有文件属主改成mysql
chgrp命令和chown命令的格式差不多
chgrp sybadmin project
把project文件所属的组由admin变为sybadmin(系统中的另外一个用户组) 。
2. ls、find和xargs
ls使用技巧
以找到当前目录中最大的那个文件:
ls -lSrh
“r”的作用是将大的文件列在后面,而“h”则是给出易于人们阅读的输出(MB或者诸如此类)。你也可以搜寻最大的MP3/MPEG文件:
ls -lSrh *.mp*
你也可以通过下面这条命令搜寻最大的目录:
du -kx | egrep -v "\./.+/" | sort -n
Find命令的一般形式为:
find pathname -options [-print -exec -ok]1. find命令选项
-name 按照文件名查找文件。2. find的例子:
1)匹配$ H O M E目录下的所有文件,下面两种方法都可以使用:$ find / -type f -size 0 -exec ls -l {} \;
可以按照文件长度来查找文件,这里所指的文件长度既可以用块(block)来计量,也可以用字节来计量。以字节计量文件长度的表达形式为N c;以块计量文件长度只用数字表示即可。
在按照文件长度查找文件时,一般使用这种以字节表示的文件长度,在查看文件系统的大小,因为这时使用块来计量更容易转换。
实例1:在当前目录下查找文件长度大于1 M字节的文件
命令:
find . -size +1000000c -print
实例2:在/home/apache目录下查找文件长度恰好为100字节的文件:
命令:
find /home/apache -size 100c -print
实例3:在当前目录下查找长度超过10块的文件(一块等于512字节)
命令:
find . -size +10 -print
9)从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行:
$ find / -type f -name "*.log" | xargs grep "ERROR"
10、使用find在多个文件中替换掉相同的文本
要替换当前目录以及下层目录里所有文件中的Windows为Linux,你可以这样运行:
find . -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt
或者如果你更需要让它只作用于普通文件上
find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/'
3. 后台执行命令
是crontab的格式:
分 时 日 月 星期 要运行的命令
第1列 分钟1~59
第2列 小时1~23(0表示子夜)
第3列 日1~31
第4列 月1~12
第5列 星期0~6(0表示星期天)
第6列 要运行的命令
crontab文件的一个条目是从左边读起的,第一列是分,最后一列是要运行的命令,它位于星期的后面。
用横杠-来表示一个时间范围,例如你希望星期一至星期五运行某个作业,那么可以在星期域使用1-5来表示。
使用逗号“,” ,例如你希望星期一和星期四运行某个作业,只需要使用 1,4来表示。
用星号 *来表示连续的时间段。如果你对某个表示时间的域没有特别的限定,也应该在该域填入 *。
该文件的每一个条目必须含有 5个时间域,而且每个域之间要用空格分隔。该文件中所有的注释行要在行首用#来表示。
例子:
分 时 日 月 星期 要运行的命令
30 21 * * * /apps/bin/cleanup.sh :表示每晚的21:30运行/apps/bin目录下的cleanup.sh。
45 4 1,10,22 * * /apps/bin/backup.sh :表示每月1、10、22日的4:45运行/apps/b i n目录下的backup.sh。
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \; :表示每周六、周日的1 : 1 0运行一个f i n d命令。
0,30 18-23 * * * /apps/bin/dbcheck.sh:表示在每天18:00至23:00之间每隔30分钟运行/apps/bin目录下的dbcheck.sh。
0 23 * * 6 /apps/bin/qtrend.sh :表示每星期六的11:00pm运行/apps/bin目录下的qtrend.sh。
每隔30分钟时运行:
*/30 * * * * /apps/bin/cleanup.sh :
2) 创建和提交crontab文件:
创建一个名为davecron。的文件,加入如下的内容:
#15 minutes between 6pm and 6am
0,15,30,45 18-06 * * * /bin/echo `date` > /dev/console
系统将每隔 15分钟向控制台输出一次当前时间。
如果系统崩溃或挂起,从最后所显示的时间就可以一眼看出系统是什么时间停止工作的。
提交crontab文件,cron命令的参数:
$ crontab davecron
现在该文件已经提交给cron进程,它将每隔1 5分钟运行一次。
同时,新创建文件的一个副本已经被放在/var/spool/cron目录中,文件名就是用户名davecron。
2) 常用参数:
update-alternatives --config editor
There are 3 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status------------------------------------------------------------ 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.tiny 10 manual mode
3) $HOME目录中对crontab文件做一备份:
$crontab -l > $HOME/mycron
4) 恢复丢失的crontab文件:
如果不小心误删了crontab文件,假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/
成拷贝,可以用:
$ crontab
其中,
我建议你在自己的$HOME目录中保存一个该文件的副本。我就有过类似的经历,有数次误删了crontab 文件(因为r键紧挨在e键的右边…) 。这就是为什么有些系统文档建议不要直接
编辑crontab 文件,而是编辑该文件的一个副本,然后重新提交新的文件。
有些crontab 的变体有些怪异,所以在使用crontab 命令时要格外小心。如果遗漏了任何选
项,crontab 可能会打开一个空文件,或者看起来像是个空文件。这时敲crontab 键退出,不要按
< Ctrl - D >,否则你将丢失crontab 文件。
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
$ echo find /etc -name "passwd" -print | at now +1 minute
4. shell输入与输出
1 . echo
字符串被重定向到一个名为myfile文件中:
$ echo "The log files have all been done"> myfile
2 . read
可以使用read 语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只
指定了一个变量,那么read 将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回
车。
它的一般形式为: