常用开发环境 Linux

使用最多的开发环境

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

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2024 HELLO WORLD All Rights Reserved.

UV : | PV :