Linux shell获取系统时间
1 |
|
调用系统时后:
1 |
|
这里注意的地方是 等号两边不要空格
获取系统时间之当前小时的语句是
1 | hours=`date +%H` |
如果想系统时间按格式显示,则可改为
1 | echo `date +"%Y-%m-%d-%H:%M:%S"` |
运行结果为:
1 | 2013-01-17-18:01:08 |
这里需要注意的是:不同的大小写代表的是不同的含义
1 | date +%Y 以四位数字格式打印年份 eg: 2018 |
1 | #!/bin/bash |
调用系统时后:
1 | #!/bin/bash |
这里注意的地方是 等号两边不要空格
获取系统时间之当前小时的语句是
1 | hours=`date +%H` |
如果想系统时间按格式显示,则可改为
1 | echo `date +"%Y-%m-%d-%H:%M:%S"` |
运行结果为:
1 | 2013-01-17-18:01:08 |
这里需要注意的是:不同的大小写代表的是不同的含义
1 | date +%Y 以四位数字格式打印年份 eg: 2018 |
IF you can not find the network configure.
May be you should TYPE:
1 | system-config-network |
to setting IP info.
import
is a feature provided by the GCC compiler, which is what Xcode uses when you’re compiling Objective- C, C, and C++ programs. #import guarantees that a header file will be included only once, no matter how many times the #import directive is actually seen for that file.
NOTE
In C, programmers typically use a scheme based on the #ifdef directive to avoid the situation where one file includes a second file, which then, recursively, includes the first.
In Objective- C, programmers use #import to accomplish the same thing.
So import equals to ifndef plus include.
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:
1 | #include <assert.h> |
assert的作用是先计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
但是使用assert()的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含#include <assert.h>的语句之前插入
#define NDEBUG` 来禁用assert调用。
我比较常用的比如断言分母不能是0等等。
一个程序的编译,需要完成词法分析、语法分析、中间代码生成、代码优化、目标代码生成。
而编译的过程包括预处理preprocessing、编译compilation、汇编assembly和链接linking。
pkg-config 主要解决软件库的依赖问题,特别是在不同的平台,安装的软件目录不同的情况下,可以很优雅地解决。这一切都是自动的,不用担心库文件放在什么地方。
1 | pkg-config - Return metainformation about installed libraries |
比如对于同样安装了gtk的系统而言,使用下来命令
1 | pkg-config --libs --cflags gtk+-2.0 |
MacOSX输出为:
1 | -D_REENTRANT -I/usr/local/Cellar/gtk+/2.24.31_1/include/gtk-2.0 -I/usr/local/Cellar/gtk+/2.24.31_1/lib/gtk-2.0/include -I/usr/local/Cellar/pango/1.40.14/include/pango-1.0 -I/usr/local/Cellar/harfbuzz/1.7.5/include/harfbuzz -I/usr/local/Cellar/graphite2/1.3.10/include -I/usr/local/Cellar/pango/1.40.14/include/pango-1.0 -I/usr/local/Cellar/atk/2.26.1/include/atk-1.0 -I/usr/local/Cellar/cairo/1.14.12/include/cairo -I/usr/local/Cellar/pixman/0.34.0_1/include/pixman-1 -I/usr/local/Cellar/fontconfig/2.12.6/include -I/usr/local/opt/freetype/include/freetype2 -I/usr/local/Cellar/libpng/1.6.34/include/libpng16 -I/usr/local/Cellar/gdk-pixbuf/2.36.11/include/gdk-pixbuf-2.0 -I/usr/local/Cellar/libpng/1.6.34/include/libpng16 -I/usr/local/Cellar/glib/2.54.3/include/glib-2.0 -I/usr/local/Cellar/glib/2.54.3/lib/glib-2.0/include -I/usr/local/opt/gettext/include -I/usr/local/Cellar/pcre/8.41/include -L/usr/local/Cellar/gtk+/2.24.31_1/lib -L/usr/local/Cellar/pango/1.40.14/lib -L/usr/local/Cellar/atk/2.26.1/lib -L/usr/local/Cellar/cairo/1.14.12/lib -L/usr/local/Cellar/gdk-pixbuf/2.36.11/lib -L/usr/local/Cellar/glib/2.54.3/lib -L/usr/local/opt/gettext/lib -lgtk-quartz-2.0 -lgdk-quartz-2.0 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -Wl,-framework -Wl,CoreFoundation |
CentOS输出为:
1 | -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng15 -I/usr/include/libdrm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype |
可以看出还是有很大差别的,所以对于下面的示例程序:
1 | ``` |
gcc -o test main.c pkg-config --libs --cflags gtk+-2.0
Linux sort
命令用于将文本内容进行排序。
官方定义为:
sort
- sort lines of text files
1 | $ sort [OPTION]... [FILE]... |
常用的参数为:
-c
检查文件是否已经按照顺序排序。-u
意味着是唯一的(unique),输出的结果是去完重了的。-r
以相反的顺序来排序。-k field1[,field2]
按指定的列进行排序。这里假定测试文件名为testfile:
1 | LiSi 80 |
在使用 sort
命令以默认的式对文件的行进行排序,命令如下:
1 | $ sort testfile |
sort
命令默认情况下将第一列以 ASCII 码的次序排列,并将结果输出到标准输出。
对于测试文件而言,或许我们更希望使用数字来统计排序,此时可以使用-k N
参数,其中N为列数
1 | $ sort testfile -k 2 |
此时默认的分隔符为空格,如果是其他分隔符,比如分毫
在某些情况下,或许只想看看文件是否已经排序,使用-c
参数 :
1 | $ sort -c testfile |
如果没有排序会有输出,而排序的话就没有输出。
如果希望看一下数字从高到低的培训,使用-r
参数:
1 | $ sort testfile -k 2 -r |
对一个使用冒号分隔的文件的第二项进行排序
$ sort -t: -k 2 names.txt
对使用tab分隔的第三项进行排序**(department_id),**并去掉重复项
$ sort -t: -u -k 3 names.txt
对passwd文件的第三项进行排序**(userid)**
$ sort -t: -k 3n /etc/passwd | more
基于ip地址对**/etc/hosts**文件排序
$ sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n /etc/hosts
与其它命令组合在一起使用
ps –ef | sort : 对进程列表进行排序
ls -al | sort +4n : 使用升序对ls -al的输出以文件大小进行排序(第5项)
ls -al | sort +4nr : 使用降序对ls -al的输出以文件大小进行排序(第5项)
Linux sort
命令用于将文本内容进行排序。
官方定义为:
sort
- sort lines of text files
1 | $ sort [OPTION]... [FILE]... |
常用的参数为:
-c
检查文件是否已经按照顺序排序。-u
意味着是唯一的(unique),输出的结果是去完重了的。-r
以相反的顺序来排序。-k field1[,field2]
按指定的列进行排序。这里假定测试文件名为testfile:
1 | LiSi 80 |
在使用 sort
命令以默认的式对文件的行进行排序,命令如下:
1 | $ sort testfile |
sort
命令默认情况下将第一列以 ASCII 码的次序排列,并将结果输出到标准输出。
对于测试文件而言,或许我们更希望使用数字来统计排序,此时可以使用-k N
参数,其中N为列数
1 | $ sort testfile -k 2 |
在某些情况下,或许只想看看文件是否已经排序,使用-c
参数 :
1 | $ sort -c testfile |
如果没有排序会有输出,而排序的话就没有输出。
如果希望看一下数字从高到低的培训,使用-r
参数:
1 | $ sort testfile -k 2 -r |
-b 忽略每行前面开始出的空格字符。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i
排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。