diff的结果显示解释
a - add
c - change
d - delete
如:
$ diff file1 file2
1c1
< 时间:0.29000000
---
> 时间:0.42000000
代表第一行不同
1,2d0
< 时间:0.29000000
代表第一个文件比第二个文件多第一行
时间:0.29000000
和第二行
after sorted :
。
0a1
> hello
代表第一个文件比第二个文件少第一行hello。
查看磁盘空间
edemon@ubuntu1:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 491M 0 491M 0% /dev
tmpfs 101M 5.2M 95M 6% /run
/dev/sda5 20G 6.3G 13G 34% /
tmpfs 501M 156K 501M 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 501M 0 501M 0% /sys/fs/cgroup
cgmfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs 101M 56K 100M 1% /run/user/1000
/dev/sr0 1.2G 1.2G 0 100% /media/edemon/Ubuntu 15.04
查看CentOS上mysql的版本
$ rpm -qi mysql-server
Name : mysql-server Relocations: (not relocatable)
Version : 5.1.73 Vendor: CentOS
Release : 7.el6 Build Date: Wed 11 May 2016 02:05:53 PM CST
Install Date: Wed 07 Dec 2016 08:44:50 AM CST Build Host: worker1.bsys.centos.org
Group : Applications/Databases Source RPM: mysql-5.1.73-7.el6.src.rpm
Size : 25688915 License: GPLv2 with exceptions
Signature : RSA/SHA1, Thu 12 May 2016 06:46:25 PM CST, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://www.mysql.com
Summary : The MySQL server and related files
Description :
MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
client/server implementation consisting of a server daemon (mysqld)
and many different client programs and libraries. This package contains
the MySQL server and some accompanying files and directories.
产看文件系统类型
root@ubuntu1:/etc/init.d# df -h
Filesystem Size Used Avail Use% Mounted on
udev 491M 0 491M 0% /dev
tmpfs 101M 5.2M 95M 6% /run
/dev/sda5 20G 6.7G 12G 36% /
tmpfs 501M 156K 501M 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 501M 0 501M 0% /sys/fs/cgroup
cgmfs 100K 0 100K 0% /run/cgmanager/fs
tmpfs 101M 48K 100M 1% /run/user/1000
/dev/sr0 1.2G 1.2G 0 100% /media/edemon/Ubuntu 15.04 i386
root@ubuntu1:/etc/init.d# file -s /dev/sda5
/dev/sda5: Linux rev 1.0 ext2 filesystem data (mounted or unclean), UUID=acbb6d51-cbc0-40cc-8341-d4b0a4471b44 (large files)
Can’t connect to local MySQL server through socket
抱着折腾的心思,我关闭了mysql服务端。
root@ubuntu1:~# mysqladmin -u root -p shutdown
然后尝试重新开启,出现下列错误:
root@ubuntu1:~# mysqld_safe &
[1] 6366
root@ubuntu1:~# 161211 10:20:13 mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
161211 10:20:13 mysqld_safe Logging to '/var/log/mysql/error.log'.
161211 10:20:13
根据最后一句话的提示,我杀死mysqld进程。但是随后新的mysqld又出现了。查阅后,我将/etc/init.d/mysql删除了(准确的说是误删,mv写成了rm,word天 -_-||)
神奇的是我又能正常登陆mysql了。这正常吗。。。
我重新来了一次,发现是这样的:
mysqld确实正常启动了:
root@ubuntu1:/etc/init.d# mysqld_safe &
[1] 7276
root@ubuntu1:/etc/init.d# 161211 11:09:28 mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
161211 11:09:28 mysqld_safe Logging to '/var/log/mysql/error.log'.
161211 11:09:28 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
161211 11:09:30
登陆时出现问题:
edemon@ubuntu1:~$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
我查找sock文件,它并不存在。
重启mysql:
edemon@ubuntu1:~$ service mysql restart
OK:
root@ubuntu1:/home/edemon# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
不过我在CentOS上使用同样的指令时他不认识mysql,我搜索了一下mysqld,然后重启mysql服务,最后正常了。
/etc/rc.d/init.d/mysqld restart
bc进行浮点运算
man在线手册中有这样的话:
NUMBERS
45 The most basic element in bc is the number. Numbers are arbitrary precision numbers. This precision is both in the integer part and the
46 fractional part. All numbers are represented internally in decimal and all computation is done in decimal. (This version truncates
47 results from divide and multiply operations.) There are two attributes of numbers, the length and the scale. The length is the total
48 number of significant decimal digits in a number and the scale is the total number of decimal digits after the decimal point. For exam‐
49 ple:
50 .000001 has a length of 6 and scale of 6.
51 1935.000 has a length of 7 and a scale of 3.
所以我们可以通过改变scale来控制输出浮点数的精度。
比如:
edemon@ubuntu1:~$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2/4
0
scale=2
2/4
.50
查看cpu、处理器等硬件信息
cat /proc/cpuinfo
gdb临时改变变量的值
假设改变浮点数value1的值:
(gdb) set var value1=1
负数的增长
-1在计算机中的表示:
32整数 ——
11111111111111111111111111111111
仅从负数的角度来看,负数在计算机中的表示也有一定的规律:
(gdb) set var $eax=-1
(gdb) p/t $eax
$3 = 11111111111111111111111111111111
(gdb) set var $eax=-2
(gdb) p/t $eax
$4 = 11111111111111111111111111111110
(gdb) set var $eax=-3
(gdb) p/t $eax
$5 = 11111111111111111111111111111101
(gdb) set var $eax=-4
(gdb) p/t $eax
$6 = 11111111111111111111111111111100
(gdb) set var $eax=-5
(gdb) p/t $eax
$7 = 11111111111111111111111111111011
(gdb) set var $eax=-6
(gdb) p/t $eax
$8 = 11111111111111111111111111111010
Binary file (standard input) matches
grep提取特定信息出错,加上选项-a即可。
read_command |grep -a condition
专用于处理二进制文件的情况:
Process a binary file as if it were text; this is equivalent to the --binary-files=text option
查gdb调试运行到哪一行
(gdb) bt
查看堆栈信息,同时也能查看行数信息。
vim字体设置
ctrl \+ 0
常规字体
ctrl \+ shft \+ +
字体加大
ctrl \+ -
字体变小
at计划任务
linux at命令可以用于在特定的时间执行设定的任务,如:
at 14:40
at> ls -l > text
at> <EOT>
job 8 at 2017-01-18 14:40
查看at任务列表:
atq
;删除at任务:
atrm Job_number
run level
Linux默认的运行级别是
[root@CentOS Desktop]# runlevel
N 5
查看各个运行级别的含义:
[root@CentOS Desktop]# cat /etc/inittab
...
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
init 0
可关机。
crontab
crontab的安装:
yum install -y vixie-cron
crontab -e
编辑crontab文件,不存在则自动创建。
crontab前5列是时间和日期。
9 # .---------------- minute (0 - 59)
10 # | .------------- hour (0 - 23)
11 # | | .---------- day of month (1 - 31)
12 # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
13 # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
14 # | | | | |
15 # * * * * * user-name command to
开启crond服务:
[root@CentOS Desktop]# /etc/rc.d/init.d/crond restart
Starting crond: [ OK ]
[root@CentOS Desktop]# ps -ef |grep crond
root 3636 1 15 15:41 ? 00:00:01 crond
root 3639 2872 0 15:41 pts/0 00:00:00 grep
在crontab文件中编辑任务:
vim /etc/crontab
末尾增加任务:
19 16 * * * date > /home/edemon/workspace/text
最后查看结果:
[edemon@CentOS workspace]$ cat text
Wed Jan 18 16:19:01 CST 2017
使用
crontab -e
来制定任务却一直未能成功,迷惑啊。
查看gcc的搜索路径
先看看gcc帮助:
shell> gcc --help
Usage: gcc [options] file...
Options:
-pass-exit-codes Exit --help Display --target-help Display --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]
Display specific types of command line options
(Use '-v --help' to display command line options of sub-processes)
--version Display -dumpspecs Display all of the built in -dumpversion Display -dumpmachine Display the compiler's target processor
-print-search-dirs Display the directories in the compiler's search path
-print-libgcc-file-name Display the name of the compiler's companion library
-print-file-name=<lib> Display -print-prog-name=<prog> Display -print-multiarch Display the target's normalized GNU triplet, used as
a component in the library path
-print-multi-directory Display the root directory for -print-multi-lib Display the mapping between command line options and multiple library search directories
-print-multi-os-directory Display the relative path to OS -print-sysroot Display -print-sysroot-headers-suffix Display -Wa,<options> Pass -Wp,<options> Pass -Wl,<options> Pass -Xassembler <arg> Pass -Xpreprocessor <arg> Pass -Xlinker <arg> Pass -save-temps Do not -save-temps=<arg> Do not -no-canonical-prefixes Do not canonicalize paths when prefixes to other gcc components
-pipe Use -time Time -specs=<file> Override built-in -std=<standard> Assume that the input sources are for --sysroot=<directory> Use <directory> as the root directory for and libraries
-B <directory> Add <directory> to the compiler's search paths
-v Display -### Like -v but options quoted and commands not executed
-E Preprocess only; do not compile, assemble or -S Compile only; do not assemble or -c Compile and assemble, but do not -o <file> Place -pie Create -shared Create -x <language> Specify
根据提示查找搜索:
shell> gcc -print-search-dirs
install: /usr/lib/gcc/i686-linux-gnu/4.9/
programs: =/usr/lib/gcc/i686-linux-gnu/4.9/:/usr/lib/gcc/i686-linux-gnu/4.9/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.9/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../../i686-linux-gnu/bin/i686-linux-gnu/4.9/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../../i686-linux-gnu/bin/i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../../i686-linux-gnu/bin/
libraries: =/usr/lib/gcc/i686-linux-gnu/4.9/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../../i686-linux-gnu/lib/i686-linux-gnu/4.9/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../../i686-linux-gnu/lib/i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../../i686-linux-gnu/lib/../lib/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../i686-linux-gnu/4.9/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../i386-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../../lib/:/lib/i686-linux-gnu/4.9/:/lib/i386-linux-gnu/:/lib/../lib/:/usr/lib/i686-linux-gnu/4.9/:/usr/lib/i386-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../../i686-linux-gnu/lib/:/usr/lib/gcc/i686-linux-gnu/4.9/../../../:/lib/:/usr/lib/
#for c:
shell> `gcc -print-prog-name=cc1` -v
ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.9/../../../../i686-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/i686-linux-gnu/4.9/include
/usr/local/include
/usr/lib/gcc/i686-linux-gnu/4.9/include-fixed
/usr/include
End of search list.
#for c++
shell> `gcc -print-prog-name=cc1plus` -v
ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.9/../../../../i686-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/4.9
/usr/include/i386-linux-gnu/c++/4.9
/usr/include/c++/4.9/backward
/usr/lib/gcc/i686-linux-gnu/4.9/include
/usr/local/include
/usr/lib/gcc/i686-linux-gnu/4.9/include-fixed
/usr/include
End of search list.
^C
mingw32头文件和库文件
查找mingw32的搜索路径是一样的:
shell> i686-w64-mingw32-gcc --help
Usage: i686-w64-mingw32-gcc [options] file...
Options:
-pass-exit-codes Exit with highest error code from a phase
--help Display this information
--target-help Display target specific command line options
--help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]
Display specific types of command line options
(Use '-v --help' to display command line options of sub-processes)
--version Display compiler version information
-dumpspecs Display all of the built in spec strings
-dumpversion Display the version of the compiler
-dumpmachine Display the compiler's target processor
-print-search-dirs Display the directories in the compiler's search path
-print-libgcc-file-name Display the name of the compiler's companion library
-print-file-name=<lib> Display the full path to library <lib>
-print-prog-name=<prog> Display the full path to compiler component <prog>
-print-multiarch Display the target's normalized GNU triplet, used as
a component in the library path
-print-multi-directory Display the root directory for versions of libgcc
-print-multi-lib Display the mapping between command line options and
multiple library search directories
-print-multi-os-directory Display the relative path to OS libraries
-print-sysroot Display the target libraries directory
-print-sysroot-headers-suffix Display the sysroot suffix used to find headers
-Wa,<options> Pass comma-separated <options> on to the assembler
-Wp,<options> Pass comma-separated <options> on to the preprocessor
-Wl,<options> Pass comma-separated <options> on to the linker
-Xassembler <arg> Pass <arg> on to the assembler
-Xpreprocessor <arg> Pass <arg> on to the preprocessor
-Xlinker <arg> Pass <arg> on to the linker
-save-temps Do not delete intermediate files
-save-temps=<arg> Do not delete intermediate files
-no-canonical-prefixes Do not canonicalize paths when building relative
prefixes to other gcc components
-pipe Use pipes rather than intermediate files
-time Time the execution of each subprocess
-specs=<file> Override built-in specs with the contents of <file>
-std=<standard> Assume that the input sources are for <standard>
--sysroot=<directory> Use <directory> as the root directory for headers
and libraries
-B <directory> Add <directory> to the compiler's search paths
-v Display the programs invoked by the compiler
-### Like -v but options quoted and commands not executed
-E Preprocess only; do not compile, assemble or link
-S Compile only; do not assemble or link
-c Compile and assemble, but do not link
-o <file> Place the output into <file>
-pie Create a position independent executable
-shared Create a shared library
-x <language> Specify the language of the following input files
Permissible languages include: c c++ assembler none
'none' means revert to the default behavior of
guessing the language based on the file's extension
Options starting with -g, -f, -m, -O, -W, or --param are automatically
passed on to the various sub-processes invoked by i686-w64-mingw32-gcc. In order to pass
other options on to these processes the -W<letter> options must be used.
For bug reporting instructions, please see:
<http://gcc.gnu.org/bugs.html>.
查找c的头文件搜索路径:
shell> `i686-w64-mingw32-gcc -print-prog-name=cc1` -v
ignoring nonexistent directory "/usr/lib/gcc/i686-w64-mingw32/4.9-win32/../../../../i686-w64-mingw32/sys-include"
#include "..." search starts here:
#include <...> search starts here:
/usr/lib/gcc/i686-w64-mingw32/4.9-win32/include
/usr/lib/gcc/i686-w64-mingw32/4.9-win32/include-fixed
/usr/lib/gcc/i686-w64-mingw32/4.9-win32/../../../../i686-w64-mingw32/include
End of search list.
查看库文件搜索目录:
[edemon@CentOS ~]$ i686-w64-mingw32-gcc -print-search-dirs
install: /usr/lib/gcc/i686-w64-mingw32/4.9.2/
programs: =/usr/libexec/gcc/i686-w64-mingw32/4.9.2/:/usr/libexec/gcc/i686-w64-mingw32/4.9.2/:/usr/libexec/gcc/i686-w64-mingw32/:/usr/lib/gcc/i686-w64-mingw32/4.9.2/:/usr/lib/gcc/i686-w64-mingw32/:/usr/lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/i686-w64-mingw32/4.9.2/:/usr/lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/
libraries: =/usr/lib/gcc/i686-w64-mingw32/4.9.2/:/usr/lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/lib/i686-w64-mingw32/4.9.2/:/usr/lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/lib/../lib/:/usr/i686-w64-mingw32/sys-root/mingw/lib/i686-w64-mingw32/4.9.2/:/usr/i686-w64-mingw32/sys-root/mingw/lib/../lib/:/usr/lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/lib/:/usr/i686-w64-mingw32/sys-root/mingw/lib/
优先搜索多个头文件库
i686-w64-mingw32-gcc sdl_back.c -lSDL -I/usr/include/ -I/usr/include/i386-linux-gnu/gnu/
mingw32在linux平台生成windows可执行文件
#include <stdio.h>
int main(){
printf("hello\n");
return 0;
}
root@ubuntu1:/home/edemon/workspace# i686-w64-mingw32-gcc -S -o win.s win.c
root@ubuntu1:/home/edemon/workspace# i686-w64-mingw32-gcc -o win.exe win.c
root@ubuntu1:/home/edemon/workspace# file win.exe
win.exe: PE32 executable (console) Intel 80386, for MS Windows
root@ubuntu1:/home/edemon/workspace# file win.s
win.s: assembler source, ASCII text
root@ubuntu1:/home/edemon/workspace# cat win.s
.file "win.c"
.def ___main; .scl 2; .type 32; .endef
.section .rdata,"dr"
LC0:
.ascii "hello\0"
.text
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
pushl %ebp
movl %esp, %ebp
andl $-16, %esp
subl $16, %esp
call ___main
movl $LC0, (%esp)
call _puts
movl $0, %eax
leave
ret
.ident "GCC: (GNU) 4.9.2"
.def _puts; .scl 2; .type 32; .endef