使用最多的开发环境
linux基础
Linux是一个网络操作系统(Network Operating System,NOS)网络操作系统则在一般操作系统的功能上增加了网络功能,具体包括: (1)实现网络中各计算机之间的通信和资源共享; (2)提供多种网络服务软件; (3)提供网络用户的应用程序接口; (4)它是由以Linus Torvalds为首的一批Internet上的志愿者开发的,完全免费,并与著名的网络操作系统UNIX完全兼容,是一个具有很高性能价格比的网络操作系统; (5)由于开放源代码与良好的模块化设计,从而使嵌入式应用成为可能;
linux目录配置 linux目录配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 /bin :存放用户一般使用程序,如ls,mv,rm等常用执行文件,有时内容与/usr/bin一样(使用链接文件) /boot :在这个目录下存放的都是系统启动时要用到的程序。在使用grub或lilo引导linux的时候,会用到这里的一些信息 /lost+found:系统产生异常错误时,会将一些遗失的片段放在该目录下 /dev:dev 是设备(device)的英文缩写,这个目录对所有的用户都十分重要,因为在这个目录中包含了所有linux系统中使用的外部设备,但是这里并不是放的外部设备的驱动程序 /etc :etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下 /etc/rc.d:这个路径主要在记录一些开关机过程中的 scripts 档案, scripts 有点像是DOS 下的批次档(.bat檔名) /etc/rc.d/init.d:所以服务预设的启动 scripts 都是放在这里的,例如要启动与关闭iptables 可以: /etc/rc.d/init.d/iptables start /etc/rc.d/init.d/iptables stop /etc/X11:这是与 X windows 有关的设定文件所在的目录,如XF86Config-4 /sbin :这个目录是用来存放系统管理员的系统管理程序,如fdisk,mke2fs,fsck等 /home :如果建立一个用户,用户名是“jl”,那么在/home目录下就有一个对应的/home/jl路径,用来存放用户的主目录 /lib :lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的,几乎所有的应用程序都会用到这个目录下的共享库 /mnt :这个目录在一般情况下也是空的,可以临时将别的文件系统挂在这个目录下 /proc :可以在这个目录下获取系统信息,这些信息是在内存中,由系统自己产生的。 /root :如果用户是以超级用户的身份登录的,这个就是超级用户的主目录,设置成较高安全等级700 /tmp :用来存放不同程序执行时产生的临时文件。 /usr :这是linux系统中占用硬盘空间最大的目录,相当于windows下的program files目录 /usr/bin:放置可执行程序,这个目录的档案与 /bin 几乎是相同的 /usr/sbin:放置管理者使用程序,与 /sbin 类似的功能 /usr/include:一些套件的头文件,以源代码形式安装程序时通常会用到 /usr/lib:许多程序与子程序所需的函数库 /usr/local:软件升级后常用的安装目录,可执行文件通常放在 /usr/local/bin /usr/share/doc:系统说明文档 /usr/share/man:man工具文档放在路径 /usr/src:编译系统时,源代码存放的位置 /var:系统中的可变文档的存放位置,例如日志文件,未读邮件等
linux权限 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 chown:改变文件拥有者 chgrp:改变文件所属群组 chmod:改变文件属性 umask:改变预设的建立文件或目录属性 chattr:改变文件的特殊属性 lsattr:显示文件的特殊属性 666: 用户建立文件时的默认属性为666(可读,可写不能执行) 777: 用户建立目录的默认属性为777(可读,可执行) chattr 设置文件或目录的特殊属性 -chattr [+-=] [ASacdistu] [文件或目录名] -+-=:增加、去除、设置属性 -A:文件或目录的存取时间不能被修改 -S:将数据同步写入到磁盘中,避免数据丢失 -a:文件只能增加数据,不能被删除,限root使用 -c:自动对文件使用压缩存储功能 -d:使文件具有dump功能 -i:使文件不能被删除、更名、设定硬链接,写入数据 -j:当使用ext3时,使文件在写入时先记录在日志中 -s:文件会被完全移出硬盘 -u:与s相反,可以取消删除操作 lsattr [-aR] 显示文件的特殊属性 -a:将隐藏文件的属性显示 -R:连同子目录的数据一同显示
搜索文件或目录 1 2 3 whereis:查看文件的位置 locate:配合数据库查看文件位置 find:实际搜寻硬盘查询文件名称
linux操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 d: 剪切 p: 粘贴 ^C 输入中断 mkdir 创建文件夹 cd 打开文件夹 cd ~ 回到根目录 cd xx/xx 打开xx 下的xxx文件夹 cd ../.. 返回两层文件夹 cd .. 返回一层文件夹 df -h 列出当前磁盘占用情况 ln -s /home9/luna.xiong/test/jen/ /home9/luna.xiong/cmtool/aaa..doc 创建软连接 ln -s<空格>目标文件夹<空格>快捷方式文件名 创建软连接 cp abc abc.sh 把abc 拷贝为abc.sh文件 cat abc.sh 打开查看abc.sh文件 vi abc.sh 编辑abc.sh文件 touch text1.pl 在本目录下创建名为 test1 的perl文件 echo aaaa 打印aaaa echo bbb >>/tmp/abc 重定向 输入 grep a </tmp/abc fg 将后台任务进程调至前台继续运行,如果后台中有多个任务进程,可以用 fg %num 将选中的任务进程调至前台 tail -f ~/test.log 从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容. deactivate 退出虚拟python环境
linux-ls 1 2 3 4 5 6 ls -l 列出文件夹目录 ls -ls 列出当前目录下的所有文件和子目录,包括隐藏文文件 (.git文件) ls -la 列出当前目录下的所有文件和子目录,不包括隐藏文文件 ls -l |grep "^-"|wc -l或find ./company -type f | wc -l 查看某文件夹下文件的个数,包括子文件夹里的。 ls -lR|grep "^-"|wc -l 查看某文件夹下文件夹的个数,包括子文件夹里的。 ls -lR|grep "^d"|wc -l 将长列表输出信息过滤一部分只保留目录就是 ^d
linux-du 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 -a 显示目录中个别文件的大小,每个文件或目录的大小都要显示出来,目录的大小是指的该目录下文件和子目录的总和; -S 显示目录大小的时候,不包含子目录的大小,只包含该目录下文件的总和; -s 仅显示该目录或者文件的总计,不显示其他子目录信息; -h 输出的大小按照人类可读的方式,例如K M G -t 设置阈值,+20M大于20M的文件,-20M小于20M的文件; du [-abcDhHklmsSx] file_path df -lh 查看当前磁盘的使用情况 du -sh 显示当前文件夹总计内存占用情况 du -sh xxxx/ xxxx文件夹的内存占用情况 du -lh --max-depth=1 查看当前目录下一级子文件和子目录占用的磁盘容量。 du -sh 查看当前目录总共占的容量。而不单独列出各子项占用的容量 du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序 du -s * | sort -nr | head 选出排在前面的10个 du -s * | sort -nr | tail 选出排在后面的10个 du -sk filename 查看指定文件大小 du --max-depth=1 -h 查看当前目录下文件大小 du -ahS test_dir 显示test_dir文件夹下的文件(包含目录)的大小; du -aS -t -4K file_path
linux-sort 1 2 3 4 5 6 7 -r 以相反的顺序进行排序;(默认是升序) -n 按照数值的大小进行排序;(默认是ASCII码值) -u 忽略相同的行; -h 按照人类可读的方式排序,例如100K < 2M < 1G sort [-bcdfimMnr] file sort testfile sort -rnu testfile 按照数值大小逆序且去重复项输出
linux-find 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 find path -option [-print ] [ -exec -ok command ] {} [\] find . -print 列出给定目录下所有的文件和子目录 -print选项使用\n(换行符)分隔输出的每个文件或目录名。 -print0选项则使用空字符’\0’来分隔。 find / '*.txt' -print 查找所有扩展名为txt的文件 find . -type f -atime -3 -print 打印出在最近3天内被访问过的所有文件 find . -type f -atime 3 -print 打印出恰好在3天前被访问过的所有文件。 find . -type f -atime +3 -print 打印出访问时间超过3天的所有文件 find . -name "*.c" 查找当前目录及其子目录下所有延伸的文件名称是 c 的文件 find . -name "tmp_pack_*" 查找当前及子目录下以tmp_pack_开头的文件 find . -type f -name "tmp_*" | cut -c3- | xargs du -sh 查找当前文件夹下及子文件夹内某个名字的文件名及路径及大小 find . -type f -name "tmp_*" | cut -c3- | xargs du -sh | sort -nr 查找当前文件夹下及子文件夹内文件名及路径及大小 按数字排序 find . -type f -name "tmp_*" | cut -c3- | xargs du -s | sort -nr 查找当前文件夹下及子文件夹内文件名及路径及大小 按大小排序 大到小 find . -type f -name "tmp_*" | cut -c3- | xargs du -s | sort -n 查找当前文件夹下及子文件夹内文件名及路径及大小 按大小排序 小到大 find ./ -name "*.so" -exec ls -l {} \ 实现在当前目录以及所有子目录下找出后缀名为so的文件,并显示其详细信息 find /root -size -5557c -size +5555c -exec ls -ld {} \; 查找大于5555字节小于5557字节的文件,以上查找的是/root 目录 find /root -size -500k -size +50k -exec ls -ld {} \; 查找 小于500K,大于50K的文件 find . -type f|xargs du -ahS 2>/dev/null|sort -rh|head -1 找到当前文件夹下最大的文件 find . -name builds -prune -o -name 'config.xml' -print | xargs grep -nr --color "UpdateKey.sh" 查找文件UpdateKey.sh在jenkins里面哪个job用到了 find ./ -type d -ok ls {} \ 查找目录并列出目录下的文件 为找到的每一个目录单独执行ls命令,执行命令前需要确认 find . -ctime -20 将目前目录及其子目录下所有最近 20 天内更新过的文件列出 find . -type f -size +10M -exec ls -l {} \ 查找当前目录以及子目录中所有文件大于10M的普通文件,并列出它们的完整路径 find /var/logs -type f -mtime +7 -ok rm {} \ 查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们 find . -type f -name "*.log" -print0 | xargs -0 rm -f rm 删除太多的文件时候 解决/bin/rm Argument list too long. find . -type f -name "*.php" -print0 | xargs -0 wc -l 统计一个源代码目录中所有php文件的行数 find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz 查找所有的jpg 文件,并且压缩它们 find . -type f|xargs du -ahS 2>/dev/null|sort -rh|head -1 找到当前文件夹下最大的文件 find . -name "*.log"|xargs grep -o Exception|wc -l 统计当前文件夹下面的所有日志文件(.log文件)中Exception出现的次数
linux-xargs 1 2 3 4 5 6 7 8 xargs -0 将\0作为定界符。 cat test.txt | xargs 将多行的test.txt文件转换为单行输出 cat test.txt | xargs -n3 将多行的test.txt文件转换为3列多行输出 echo "nameXnameXnameXname" | xargs -dX 定义界定符号X 输出 name name name name echo "nameXnameXnameXname" | xargs -dX -n2 定义界定符号X 2列多行输出 name name name name cat arg.txt | xargs -I {} ./sk.sh -p {} -l --------- ls *.jpg | xargs -n1 -I cp {} /data/images 复制所有图片文件到 /data/images 目录下 cat url-list.txt | xargs wget -c 有一个文件包含了很多你希望下载的URL,使用xargs下载所有链接
linux-wc 1 2 3 4 5 6 7 8 -c 或 –bytes 只显示bytes数 -l 或者 –lines 只显示行数 -w 或者 –words 只显示单词数 wc [-clw] [file…] wc testfile 缺省参数将输出 指定文件的 行数、单词数、字节(符)数 wc -l testfile 统计指定文件的行数 linux-cut