scp /home/wangchangshuai/{test.c,input.txt,output.txt} [email protected]:/home/test/
echo $LOGNAME
一.手机中文件导出到电脑上
1.通过adb shell,确保手机连接到电脑上
2.运行adb
3.拷贝所需要的文件目录 例如:
D:\adb shell>adb pull /data/app d:\ adb pull src org
src:手机文件路径
org:电脑拷贝到的文件路径
二.电脑上文件push到手机中
1.通过adb shell,确保手机连接到电脑上
2.运行adb
3.拷贝所需要的文件目录 例如:
D:\adb shell>adb push d:\test_algorithm_host /data/app adb pull src org
src:电脑拷贝到的文件路径
org:手机文件路径
shell中逻辑连接符如下:
==================================================
-a/&&:与
-o/||:或
! :非
==================================================
例如:
if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ];
then
echo "success"
fi
the password of server
password="wangchangshuai"
sudo -S touch /etc/hellolllllllllllllllll <<EOF
yizhan
#EOF
或者
echo 密码 | sudo ******
if [ $# != 1 ] ; then
echo "USAGE: $0 TABNAME"
echo " e.g.: $0 CDR_CALL_20040701"
exit 1;
fi
位置参数 $1, $2,..., $N,$#代表了命令行的参数数量, $0代表了脚本的名字
1、字符串判断 str1 = str2 当两个串有相同内容、长度时为真 str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) -z str1 当串的长度为0时为真(空串) str1 当串str1为非空时为真 2、数字的判断 int1 -eq int2 两数相等为真 int1 -ne int2 两数不等为真 int1 -gt int2 int1大于int2为真 int1 -ge int2 int1大于等于int2为真 int1 -lt int2 int1小于int2为真 int1 -le int2 int1小于等于int2为真 3 文件的判断 -r file 用户可读为真 -w file 用户可写为真 -x file 用户可执行为真 -f file 文件为正规文件为真 -d file 文件为目录为真 -c file 文件为字符特殊文件为真 -b file 文件为块特殊文件为真 -s file 文件大小非0时为真 -t file 当文件描述符(默认为1)指定的设备为终端时为真 3、复杂逻辑判断 -a 与 -o 或 ! 非8.使用gcc编译包含pthread.h头文件都源文件使需注意
由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数:gcc myThread.c -lpthread -o myThread在ubuntu下测试,以下命令不可行(网上有的文章说可行):gcc test.c -o -lpthread testgcc -lpthread -o test test.cgcc -o test -lpthread test.c9.ubuntu显示桌面都快捷键
Ctrl+Windows键+D10.警告:隐式声明函数‘close’ [-Wimplicit-function-declaration]
在Ubuntu下,用套接字编程时用到了close函数来关闭套接字,没想到编译的时候遇到了警告:
警告: man一下close
原来需要包含<unistd.h>
#include <unistd.h>
================================================== 本以为close能关闭套接字和文件描述符,就会和文件操作函数或套接字函数定义在同样的文件中。看来是想当然了。
11.deb包安装方式
sudo dpkg -i ssh_5.3p1-3ubuntu3_all.deb12. \r 和 \n的区别
\r 是换行 (不回到行首,只是换了1行,位置不变) \n 是回车(回到行首,不一定换行) 在windows里,判断是否回车换行要同时判断有没有\r 和 \n。而在linux里则只需要判断是不是\n就可以了。
13.linux c 获取当前时间,获取时间差
time_t b_time,b_time2; struct tm *tim,*tim2; b_time = time(NULL ); tim = localtime(&b_time); printf("当前时间:%d-%d-%d %d:%d:%d\n", tim->tm_year + 1900,tim->tm_mon+1,tim->tm_mday,tim->tm_hour,tim->tm_min,tim->tm_sec); sleep(2); b_time2 = time(NULL ); tim2 = localtime(&b_time2); int temp = b_time2-b_time; printf("时间差为:%d\n",temp);
14.使用 APT 自动满足依赖关系
通常使用 deb 包管理方式的 Linux 发行版都已经安装了 APT(AdvancedPackaging Tool) ,比如 Ubuntu,我们可以使用命令:
sudo apt-get -f install
来自动满足未满足的依赖关系。输入该命令后只需一路回车即可,待依赖关系自动满足后,只需要重复安装软件包的命令即可。
15.shell sleep
睡眠脚本sleep 时间(秒)16.linux怎么根据进程名得到pid
ps -e|grep 进程名(或者进程名的一部分)17.字符串转换为数字
atof(将字符串转换成浮点型数)
atoi(将字符串转换成整型数)
atol(将字符串转换成长整型数)
strtod(将字符串转换成浮点数)
strtol(将字符串转换成长整型数)
strtoul(将字符串转换成无符号长整型数)
toascii(将整型数转换成合法的ASCII 码字符)
toupper(将小写字母转换成大写字母)
tolower(将大写字母转换成小写字母)
18.怎么给pthread_create()函数传递多个参数
涉及多参数传递给线程的,都需要使用结构体将参数封装后,将结构体指针传给线程 定义一个结构体 struct mypara { var para1;//参数1 var para2;//参数2 } 将这个结构体指针,作为void *形参的实际参数传递 struct mypara pstru; pthread_create(&ntid, NULL, thr_fn,& (pstru)); 函数中需要定义一个mypara类型的结构指针来引用这个参数 void *thr_fn(void *arg) { mypara *pstru; pstru = (* struct mypara) arg; pstru->para1;//参数1 pstru->para2;//参数2 }
19.linux 创建连接命令 ln -s 软链接
这是linux中一个非常重要命令,请大家一定要熟悉。它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件目标文件。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln -s /bin/less /usr/local/bin/less -s 是代号(symbolic)的意思。 这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接 和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。 如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls -l命令去察看,就可以看到显示的link的路径了。20.linux c 判断文件(夹)是否存在
用函数int access(const char *filename, int amode);
注意必须加上头文件 #include <unistd.h>
代码如下:
#include <unistd.h> int main(int argc , char *argv[]) { if (access("fileName", 0) == -1) //access函数是查看文件夹是不是存在 { if (mkdir("fileName", 0777)) //如果不存在就用mkdir函数来创建 { printf("创建文件夹fileName失败!\n",); return; } } }
lsb_release -a结果如下:No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 13.04 Release: 13.04 Codename: raring
21.将错误写入标准错误变量中
fprintf(stderr, "Can't open pid file %s", path);