首页 > 代码库 > 第四章第五章 环境搭建和24个命令总结
第四章第五章 环境搭建和24个命令总结
GUN 和 GPL
GUN‘s not Unix 递归写法,简写也是GUN
1. GUN 是84年自由软件资金会牵头弄的一个类unix操作系统,但是因为它不实用,而且总是跳票,所以并没有流行起来。
2. 但是它里面的很多软件是很好的,比如bash,这些都被用在了linux系统上
GPL
general public license
通用公共许可
84年Richeal Stallman 发起了自由软件运动后不久,在其他人的协作下,创立了GPL
Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. #官网的解释,GPL 是自由的,公共版权(copyleft)的,软件和其他的作品。 For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. #不管你的软件是免费还是收费,你都传递相同的自由给其他人。你必须要他们也获得了源代码。并且让 他们知道他们的权利。 Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. #开发者用两步保护你的权利: 1. 确保软件的版权(是开发者的) 2. 给你复制,传播,修改这个软件的权利 For the developers‘ and authors‘ protection, the GPL clearly explains that there is no warranty for this free software. For both users‘ and authors‘ sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. #为了保护开发者,GPL明确了这些免费软件是没有保修的(质保?咋翻译呢)。 #任何修改过的软件都要注明修改版本,免得以后出问题责任归咎到前面版本的开发者。 Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. #这一段说的是专利法也不能用来限制软件的自由传播。有些州用专利法限制软件的传播,这些GPL是不 承认的。
linux内核是基于gun通用公共许可的,但是linux不是gun计划的一部分
24命令总结
命令总结
mkdir 创建目录 -p 递归创建
touch 创建文件
ls 列表目录
cd 切换目录
echo 打印
cp 拷贝目录文件 -r递归 -a(dpr)
vi 记事本编辑
head 查看前n行
rm rm -f -r 目录 练!
cat 查看文件内容
rmdir 删除空目录
grep -v 后面要排除的内容
-B before 出了显示
-A after
-C context 前后
find 目录 -type f -name "名字" -mtime +7, 7, -7
[root@jacobs test]# find . -type f -name "*" -mtime +12 ./space.txt ./awk.txt ./rex.txt ./tab.txt ./recode.txt ./root.txt
eg
sed 增删改查 -i 修改 -n 取消默认输出 -e多项编辑
p s g
alias 修改和设置别名,查看
unalias 取消别名
xargs 从标准输入读入创建执行命令 -n 1分组
记住从标准输入读入
[root@jacobs test]# find . -type f -name "*" -mtime -10 | xargs ./dtest_link.txt ./test1/jacob ./oldboy.txt ./dtest.txt
[root@jacobs test]# find . -type f -name "*" -mtime -10 | xargs -n 1 ./dtest_link.txt ./test1/jacob ./oldboy.txt ./dtest.txt
[root@jacobs test]# find . -type f -name "*.txt" -mtime -10 | cat ./dtest_link.txt ./oldboy.txt ./dtest.txt [root@jacobs test]# find . -type f -name "*.txt" -mtime -10 | xargs cat -->6)target is a good market -->1)target is a good market -->10)target is a good market -->3)tj_max is a good market -->9)target is a good market -->8)target is a good market -->13)target is a good market -->5)target is a good market -->2)walmart is a good market
awk -F 指定分隔符 NR 行号 {print $1 $2}
seq 打印序列
1 2 3 4 5 6 7 8 9 10
seq -s " " 10 横着打印
-s指定分隔符
seq -s " " 10
pwd 打印当前目录
tree 打印目录结构 目录树
yum install tree -y
tr 截取 替换
tail 尾巴 默认后10行, -n 数字
vim 复杂编辑器 写 shell,python
mv 移动 相当于改名
[root@jacobs test]# mv dtest.txt dtestchanged.txt [root@jacobs test]# ls a dtest_link.txt rex.txt stu_nihao00_1.jpg aaaaaa.txt dtest_soft.txt riqi2017-07-22.txt tab.txt awk.txt md5.log root.txt test1 b mod.txt space.txt today.txt c nihao.sh sshd umasktest1.txt ceshi.txt oldboy.txt stu_100_3.jpg umasktest.txt checklog.sh person.txt stu_100_4.jpg dtestchanged.txt recode.txt stu_100_5.jpg [root@jacobs test]# cat dtestchanged.txt -->6)target is a good market -->1)target is a good market -->10)target is a good market
移动到当前目录,相当于改名了
date -s 改时间
date -s "05/10/2009 10:18:00"
重点研究了cp这个命令
cp | 默认复制是符号链接也就是软连接的 |
比如 | [root@jacobs test]# ln -s today.txt todaysoft.txt [root@jacobs test]# ln -s today.txt todaysoft1.txt [root@jacobs test]# cp todaysoft1.txt todaysoft3.txt lrwxrwxrwx 1 root root 9 Aug 3 23:44 todaysoft1.txt -> today.txt -rwxr-xr-x 1 root root 23 Aug 3 23:45 todaysoft3.txt lrwxrwxrwx 1 root root 9 Aug 3 23:44 todaysoft.txt -> today.txt 修改源复制的文件不会对源文件造成影响 |
cp test2.sh test1.sh 这条命令不会把test1.sh的软连接也copy过去,这就是cp命令的默认设置。-d就关闭了这个称为derefrence(解除绑定)的默认选项 eg: [root@jacobs test]# cp -d todaysoft1.txt todaysoft4.txt lrwxrwxrwx 1 root root 9 Aug 3 23:44 todaysoft1.txt -> today.txt -rwxr-xr-x 1 root root 23 Aug 3 23:45 todaysoft3.txt lrwxrwxrwx 1 root root 9 Aug 3 23:44 todaysoft4.txt -> today.txt lrwxrwxrwx 1 root root 9 Aug 3 23:44 todaysoft.txt -> today.txt | |
cp -d test2.sh test1.sh 就会保留这个链接 | |
-r 是递归复制, | |
-a 包含了-d -p -r -p是指包含一切诸如属组,修改时间等信息 | |
综上所述,-a是完全一样的复制 但是这是对于除了硬链接以外的文件 | |
笔者尝试了cp 一个硬链接,但是产生了一个与源文件inode不相同的文件,也就是说,cp 对硬链接的默认复制就是复制了一个源文件,并且是inode不同的源文件 也就是相当于cp了源文件 | |
cp 为我们提供了一个专门创建硬链接的选项 -l | |
值得一提的是 ln这个命令的默认顺序是 要复制的在前面,硬链接的结果在后面 NAME ln - make links between files SYNOPSIS ln [OPTION]... [-T] TARGET LINK_NAME (1st form) ln [OPTION]... TARGET (2nd form) ln [OPTION]... TARGET... DIRECTORY (3rd form) ln [OPTION]... -t DIRECTORY TARGET... (4th form) [ ] 里面是可选的选项,就是说,默认情况下,目标在前,链接后的名字在后 最后一个 -t 选项, 可是更改过来,但是是对目录建立硬链接 |
若干特殊符号
>or1>输出重定向
>>or1>>
<or <0 从文件里出来
<<or<<0
{ }生成序列
echo {1..10}
echo {a..z} 跟seq不一样
{a,b}/txt
本文出自 “爱生活,爱linux” 博客,请务必保留此出处http://baoyu.blog.51cto.com/9768109/1953553
第四章第五章 环境搭建和24个命令总结