Linux下的常用命令

来源:互联网 发布:股票网络销售加人 编辑:程序博客网 时间:2024/05/19 13:21

1、date日期命令

date 直接显示Linux系统格式的目录,这种格式不常用;

date -d "..." 省略号可以是:

-1 day

-1 month

-2 day

...

分别表示当前日期(今天)的前一天,前一个月,前二天等,输出的格式同上。

date +[format] format可以是:

%s

%Y

%Y%m%d

...

分别表示

当前距离1970年01月01日的秒数,当前是哪一年, 当前是哪一年哪一天。

综合上述,给一个例子

date -d "-1 day" +%Y%m%d

输出:20160918(注意:假定当前是2016年9月19日)

上述例子等价于: 

date -d yesterday +%Y%m%d

%s这种格式主要是获得一个日期间隔很有用,例如:我想获得最近一个月的所有日期,可以这样写:

beg_date=$(date -d "-1 month" +%s)

end_date=$(date -d "-1 day" +%s)

for((start_date=${beg_date};start_date<=${end_date};start_date=$((start_date+86400))))

do

date -d @${start_date} +%Y%m%d

done


2、iconv字符编码的转换

直接给出一个实用的参数搭配吧:

iconv -c -f src_encode -t dest_encode <filename> > <encoded_filename>

参数解释:

-c 表示忽略转换的编码位置,可加也可不加,但有些时候不加这个参数会出现"** position ILEGEL ERROR"错误

-f 源编码,可以通过file <filename> 命令查看文件的编码

-t 转换之后的编码

例如:我们可以这样使用:

首先, file a.file 获得这个文件一个gbk编码的文件,

然后, iconv -c -f gbk -t utf8 a.file > a.file.decoded


3、free -g 查看本机的内存大小


4、find 按照某种属性查找文件

find ./ -name "file_name" | xargs <cmd>

cmd: 可以是任何的Linux命令

例如:我们需要实现一个这样的操作,在当前目录下找到名为file的文件,然后删除它们。

find ./ -name "file" | xargs rm -rf


5、sort排序

sort 排序命令很重要,在很多时候都会用到,直接看例子:

cat file | sort -T./ -t \t -k2 -n -r 

上面sort命令的参数:

-T :如果不写-T参数,则sort排序大文件时,外存交换到/tmp目录下,而/tmp目录一般很小,所以不太安全,-T./表示将外存交换部分控制在当前目录下。

-t :设定列的分隔符

-k :指定按照第2列排序,-k1,2 则表示将第一列和第二列一起作为排序的键

-n :sort默认按照ASCII码从低到高排序,-n 表示按照实数值大小排序

-r:reverse,按照降序排序


6、uniq


7、awk


8、cut


9、curl 


10、文件记录或属性字段去重

使用awk去重: cat file | awk -F "\t" '{dict[$0]}'

使用sort去重: cat file | sort -n | uniq;;


11、Linux 下的if语句和c语言中的if语句的区别

if 命令执行成功; then 执行   ; 而c语言里面 if 非0; then  执行。  这两者刚好相反。

当命令执行成功时,返回0,则这行then里面的东西,否则不执行。


12、在使用crontab 命令启动一个定时任务start.sh时,一定要在启动脚本start.sh里面第一句写上 source ~/.bashrc。因为,系统到点执行start.sh时,不会自动执行source ~/.bashrc命令。

13、关于nohup cmd &后台执行

给出标准执行命令: nohup cmd 1 > *.log 2> *.err & < /dev/null

</dev/null表示:因为nohup命令会等待接收输入,(如果不加</dev/null,可以在*.err文件里面的第一行看到ignore input)使用命令 < /dev/null 表示不给nohup输入。

1 0
原创粉丝点击