0728linux基础内容小记
2016-07-29 19:47
495 查看
~- 上一个工作目录
~+ 当前工作目录
touch f{1..100} 创建名为f1~f100的文件
touch f{a..z} 创建名为fa~fz的文件
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:digit:] 任意数字,相当于0-9
[:alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:space:] 空格
[:punct:] 标点符号
1.显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
touch命令
-a 仅改变atime
-m 仅改变mtime
-c 文件存在则刷新,不存在也不会创建
-t [YY]MMDDhhmm[.ss] 改变atimemtime
cp命令
-a 归档,相当于-dR --preserv=all-d --no-dereference --preserv=links 不复制原文件,只复制链接名-p 等同--preserv=mode,ownership,timestamp-r recursive 递归-v verbose
1.定义别名命令baketc,每天将/etc目录下所有文件,备份到/testdir独立的子目录下,并要求子目录格式 为backupYYYY-mm-dd,备份过程可见
2.创建/testdir/rootdir目录并复制/root所有下文件到该目录内,要求保留原有权限
建多层目录,例
inode工作原理图
mv 移动并重命名文件a.txt,不影响文件的用户数据及 inode 号
它们的inode和data block是一样的,改其中一个的内容,另一个的内容也随之变化,说明它们是同一个文件,相当于一个文件两个名字 -rw-r--r-- 2 2是链接数。还可以继续做硬链接如ln bb cc,链接数随之增加为3。
删除如bb文件,aa和cc依然存有数据,链接数减少为2。
创建硬链接不能跨分区或文件系统
不能对目录进行创建,只可对文件创建
有时候磁盘空间未满,但不能创建文件,可能是inode耗尽
实验耗尽inode号
ls -i // inode 不同分区的节点号有可能相同
ln -s source softlink
原始文件相对路径:相对于软链接文件路径,而不是相对于当前工作目录
file descriptor 文件描述符
ps aux 看到某个进程的pid
cd /proc/PID/fd 看到有文件
当前tty0
stdinput 0
stdouput 1
stderr 2
BADCOMMAND 2> file 记录错误信息
正确错误信息都输出在同一个文件,例:
set+C 允许覆盖
set-C 禁止覆盖,可以追加
how are you
. //以点结束
EOT
cat /var/spool/mail/user1 可以读到邮件
或者user1登录 敲命令 mail 可以收到邮件
群发邮件,将邮件内容保存到一个文件mail.txt
mail -s tongzhi user1 < mail.txt 每次将user1更改用户即可
练习题
1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
Hello, I am 用户名,the system version is here,pleasehelp me to check it ,thanks!
操作系统版本信息
~+ 当前工作目录
touch f{1..100} 创建名为f1~f100的文件
touch f{a..z} 创建名为fa~fz的文件
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:digit:] 任意数字,相当于0-9
[:alpha:] 任意大小写字母
[:alnum:] 任意数字或字母
[:space:] 空格
[:punct:] 标点符号
1.显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
ls /var/l*[[:digit:]]*[[:lower:]]2.显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
ls /etc/[0-9]*[^0-9]3.显示/etc目录下以非字母开头,后面跟了一个字母及其他任意长度任意字符的文件或目录
ls /etc/[^[:alpha:]][[:alpha:]]*4.显示/etc目录下所有以m开头以非数字结尾的文件或目录
ls /etc/m*[^0-9]5.显示/etc目录下所有以.d结尾的文件或目录
ls -da /etc/*.d6.显示/etc目录下,所有的.conf结尾,且以m,n,r,p开头的文件或目录
ls -da /etc/[mnrp]*.conf
touch命令
-a 仅改变atime
-m 仅改变mtime
-c 文件存在则刷新,不存在也不会创建
-t [YY]MMDDhhmm[.ss] 改变atimemtime
touch -t 201605051010.30 file1
cp命令
-a 归档,相当于-dR --preserv=all-d --no-dereference --preserv=links 不复制原文件,只复制链接名-p 等同--preserv=mode,ownership,timestamp-r recursive 递归-v verbose
cp -r /etc/sysconfig/ /testdir/xxx没有xxx目录,则把sysconfig目录复制到testdir下并重命名为xxx
cp -r /etc/sysconfig/ /testdir/xxx已存在xxx目录,则sysconfig复制为xxx目录中的子目录
1.定义别名命令baketc,每天将/etc目录下所有文件,备份到/testdir独立的子目录下,并要求子目录格式 为backupYYYY-mm-dd,备份过程可见
alias baketc='cp -rpv /etc/ /tmp/testdir1/backup-`date +%F`'
2.创建/testdir/rootdir目录并复制/root所有下文件到该目录内,要求保留原有权限
cp -R --preserve=mode /root/ /testdir/rootdir
建多层目录,例
mkdir -pv /testdir/dir1/{x,y}/{a,b} mkdir -pv /testdir/dir2/{x/{a,b},y} mkdir -pv /testdir/dir{3,4,5/{dir{6,7}}}
inode工作原理图
mv 移动并重命名文件a.txt,不影响文件的用户数据及 inode 号
它们的inode和data block是一样的,改其中一个的内容,另一个的内容也随之变化,说明它们是同一个文件,相当于一个文件两个名字 -rw-r--r-- 2 2是链接数。还可以继续做硬链接如ln bb cc,链接数随之增加为3。
删除如bb文件,aa和cc依然存有数据,链接数减少为2。
创建硬链接不能跨分区或文件系统
不能对目录进行创建,只可对文件创建
有时候磁盘空间未满,但不能创建文件,可能是inode耗尽
实验耗尽inode号
for id in {1..204800};do touch f$id;echo f$id is created;done
watch -n1 'df -i' // df -i 查看inodes大小,wathc -n1 每秒查看执行结果创建的文件即使为空,本身的元数据也会占用磁盘空间
ls -i // inode 不同分区的节点号有可能相同
ln -s source softlink
原始文件相对路径:相对于软链接文件路径,而不是相对于当前工作目录
find /testdir/ -samefile /testdir/aa // 查看路径/testdir有相同inode的所有硬链接
find /testdir/ -lname aa // 查找在路径/testdir下的文件aa的软链接
file descriptor 文件描述符
ps aux 看到某个进程的pid
cd /proc/PID/fd 看到有文件
当前tty0
ls > /dev/pts/1 // 将ls命令的结果发送到tty1终端上了
stdinput 0
stdouput 1
stderr 2
BADCOMMAND 2> file 记录错误信息
正确错误信息都输出在同一个文件,例:
ls /etc/issue xxx &> file1等价于
ls /etc/issue xxx > file1 2>&1
(ls;pwd)>f3 //多条命令(用括号引起来)同时执行输出到一个文件
ls /testdir/ xxx 1> right.txt 2> fail.txt
set+C 允许覆盖
set-C 禁止覆盖,可以追加
echo cenotos | passwd --stdin wang &> /dev/null
mail -s hello user1hi
how are you
. //以点结束
EOT
cat /var/spool/mail/user1 可以读到邮件
或者user1登录 敲命令 mail 可以收到邮件
群发邮件,将邮件内容保存到一个文件mail.txt
mail -s tongzhi user1 < mail.txt 每次将user1更改用户即可
练习题
1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
cat /etc/issue|tr 'a-z' 'A-Z' > /tmp/issue.out2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中
echo `who`|tr 'a-z' 'A-Z' > /tmp/who.out3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:
Hello, I am 用户名,the system version is here,pleasehelp me to check it ,thanks!
操作系统版本信息
echo -e "I am `whoami`.\nThe system is `cat /etc/redhat-release `."|mail -s help root4、将/root/下文件列表,显示成一行,并文件名之间用空格隔开
ls -1 /root/ |tr '\n' ' ' //方法一 echo $(ls -a) //方法二5、file1文件的内容为:”1 2 3 4 5 6 7 8 9 10” 计算出所有数字的总和
cat file1 |tr ' ' '\n'|awk '{sum+=$1}END{print sum}' //方法一 i=$((`tr " " "+" < file1`));echo $i //方法二 echo '1 2 3 4 5 6 7 8 9 10'|tr ' ' '+'|bc //方法三 echo $[`echo '1 2 3 4 5 6 7 8 9 10'|tr ' ' '+'`]6、删除Windows文本文件中的'^M'字符
sed -i "s/\^M//g" wintxt //方法一 cat a.txt|tr -d '\015' > f2 再cat -A f2 看到没^M了 // ^M对应十进制13,八进制015 //方法二7、处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格
cat string1|tr -d [[:alpha:]][[:punct:]] 或 echo 'xt.,l 1 jr#!$mn2 c*/fe3 uz4'|tr -d -c '[:digit:] \n'8、将PATH变量每个目录显示在独立的一行
echo $PATH|tr ':' '\n'9、删除指定文件的空行
sed /^$/d file2 或 sed /^[[:space:]]*$/d file2 //方法一 cat b.txt|tr -s '\n' //方法二10、将文件中每个单词(字母)显示在独立的一行,并无空行
cat /etc/init.d/functions |tr -cs '[:alpha:]' '\n'
相关文章推荐
- php重定向的三种方法分享
- 网站技巧之转发与重定向的区别
- php弹出对话框实现重定向代码
- PHP弹出提示框并跳转到新页面即重定向到新页面
- ASP.NET 重定向的几种方法小结
- Asp.Net 重定向必须要知道的一些资料
- Linux base shell重定向详解
- linux URL的301重定向代码分析
- .htaccess重定向和url重写详细介绍
- 使用ISAPI_Rewrite做简单实用的301重定向
- Nginx下配置301重定向的正确方法例子
- Windows Powershell 管道和重定向
- shell 1>&2 2>&1 &>filename重定向的含义和区别
- IIS重定向使用图文教程
- IIS服务器下做301永久重定向设置方法[可以传参][图文]
- shell常用重定向实例讲解
- JavaEE通过response实现请求重定向
- ASP.NET MVC3 实现全站重定向的简单方法
- PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
- 用JavaScript实现页面重定向功能的教程