如何在ubuntu缺少-exec参数下编写一个带参数的命令行程序

求帮助:在ubuntu下编一段标准C的代码,来查看内核参数_ubuntu吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:115,157贴子:
求帮助:在ubuntu下编一段标准C的代码,来查看内核参数收藏
老师布了个作业,原题:编写一个程序getinfo.c,编译后并在命令行带命令参数来运行该程序,获得内核参数 (例如网络主机名、共享内存容量、文件句柄的最大参数等) 在屏幕上显示出来。运行过程实例如下(获取文件句柄最大参数):[root
/ ]# ./getinfo filemaxfilemax :18626刚学Linux,不会,请求帮助。
登录百度帐号Ubuntu下apt-get命令详解_百度经验
&&&&&&&&&电脑软件Ubuntu下apt-get命令详解
百度经验:jingyan.baidu.com在Ubuntu下,apt-get近乎是最常用的shell命令之一了,因为他是Ubuntu通过新立得安装软件的常用工具命令。本文列举了常用的APT命令参数:apt-cache search package 搜索软件包apt-cache show package &获取包的相关信息,如说明、大小、版本等sudo apt-get install package 安装包sudo apt-get install package --reinstall & 重新安装包sudo apt-get -f install & 修复安装sudo apt-get remove package 删除包sudo apt-get remove package --purge 删除包,包括配置文件等sudo apt-get update &更新源sudo apt-get upgrade 更新已安装的包sudo apt-get dist-upgrade 升级系统apt-cache depends package 了解使用该包依赖那些包apt-cache rdepends package 查看该包被哪些包依赖sudo apt-get build-dep package 安装相关的编译环境apt-get source package &下载该包的源代码sudo apt-get clean&&& sudo apt-get autoclean 清理无用的包sudo apt-get check 检查是否有损坏的依赖经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(25)已投票(25)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验50130热门杂志第1期你不知道的iPad技巧3806次分享第1期win7电脑那些事6658次分享第2期新人玩转百度经验1420次分享第1期Win8.1实用小技巧2665次分享第1期小白装大神1946次分享◆请扫描分享到朋友圈1.打开终端的方法
Ubuntu 中按左侧栏的第一个&面板主页(Dash 主页)&(可以按win键调出),在里面输入terminal可以打开终端,另外打开终端的快捷键是Ctrl+Alt+T
2.修改用户密码
在terminal中输入passwd,回车,再输入新密码,回车,再次输入新密码,回车,搞定。注意Linux中输入密码的时候不会用*号显示出来,所以注意不要输错了。
3.进入root(超级管理员)权限的方法
1)如果是rethat系统,启动后直接就会进入root超级管理员,如果当然用户不是root,在终端输入su,回车,就进入root用户。
2)如果是Ubuntu系统,启动后进入的是普通用户,需要在终端中先设置root的密码,方法是sudo&passwd root,回车,然后会提示输入密码,输入后回车,会提示再次输入密码以确认。确认密码后,回车,完成root密码的设置。然后就跟rethat一样,在终端输入su,回车,提示输入root的密码,输入刚才设置的密码,就可以进去。
注:sudo是superuser do的缩写
4.安装卸载软件、更新命令
安装软件:sudo apt-get install &软件包名&
如安装scim输入法:sudo apt-get install scim
卸载软件:sudo apt-get remove
&软件包名&
卸载刚才安装的scim输入法:sudo apt-get
remove scim
如果有关联的要卸载,会自动提示用sudo apt-get
autoremove来自动清理。
升级:sudo apt-get
如:升级vi用&sudo apt-get install vim&
5.关机、重启、注销、切换用户、退出终端、清屏命令
shutdown &h
重启:shutdown &r
切换用户:su(switch
注销:logout(只有在纯命令模式shell才可用)
退出终端:exit
清屏:clear
6.使用vi编辑器(可用来编写程序,文本等),还有一个叫vim编译器,是vi的升级版。
vi有三种模式:命令行模式、插入模式、底行模式。但也有的命令行模式和底行模式归到一起,即分成两种模式,一种是命令行模式,一种是插入模式。
1)在终端中输入
fileName.suffixName(如
vi first.c或vi second.cpp)回车确定,相当于新建了一个记事本文件但还没保存。(注意这时是命令行模式,是无法输入字符的)
2)按i进入插入模式(要进入插入模式才能输入字符)然后输入程序。
3)按esc退出插入模式(进入命令行模式,用于复制、粘贴、删除字符等操作)
4)在命令行模式下输入冒号&:&可退出命令行模式进入底行模式(光标位于屏幕的底行,用户可以进行文件保存或退出等操作)。
5)在底行模式下按w保存,q退出,q!强制退出不保存,x退出并保存,一般可直接输入wq,回车,这样就保存并退出。
6)接着用ls(即list,也可用dir)命令查看当前文件夹文件,用ls &l查看文件的详细信息。
7)用gcc编译器编译刚才保存的C文件。
方法:①gcc
fileName.c(或gcc fileName.cpp)这样编译成的文件后默认命名为a.out
②gcc fileName.c &o
fileName.out,这样编译后的.out文件的名字就不会默认命名为a.out而是file_name.out了。
8)如果要编辑已存在的文件,比如之前写的C程序有错误要修改,可在终端上输入
fileName.c(或vi fileName.cpp),即可进入编辑。
9)修改文件名:mv oldName newName(注意要在终端界面,而不要在vi的命令界面)
10)运行fileName.out文件直接用&./fileName.out&,即用gcc编译器把&.c&文件编译成&.out&后,执行&.out&文件时,直接在文件名前加上&./&即可。
注:GCC(GNU Compiler
Collection)
vi的删除与修改文件的命令(注意是在编辑模式下而不是插入模式下):
x:删除光标所在字符。
dd :删除光标所在的列。
r :修改光标所在字元,r後接著要修正的字符。
R:进入取替换状态,新增文字会覆盖原先文字,直到按
[ESC]回到指令模式下为止。
s:删除光标所在字元,并进入输入模式。
S:删除光标所在的列,并进入输入模式。
7.复制移动删除文件
源文件或目录
目标文件或目录
选项如下:
该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
拷贝时保留链接。
删除已经存在的目标文件而不提示。
和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
不作拷贝,只是链接文件。
2)删除(用rm删除可恢复,不可恢复的用shred)
忽略不存在的文件,从不给出提示。
指示rm将参数中列出的全部目录和子目录均递归地删除。
进行交互式删除。
3)移动(兼重命名)
源文件或目录
目标文件或目录
当目标是文件时,则把源文件重命名为目标文件名,如果目标是目录,则把源文件或目录移动到目标目录里。
8.显示你当前所在的目录
pwd(present which dirctory)
9.添加用户
useradd user_name
adduser user_name
10.修改密码
user_name(如果后面不写user_name,那么就是给当前用户设置密码)
11.创建目录
mkdir [option]
[dir_name]
-p:确保用户存在,不存在就创建一个
-m:对新建目录设置存取权限
12.修改文件目录属主
chown(change owner)
/home/user_name&
(p是path的意思)
chown user_name:usrgp_name
/home/newuser(注意home前面的/和前面的name有一个空格,否则会出错)
13.删除用户
user_name(只删除用户,不删除用户文件,就是说user_name这个文件还在,但是已经无法用这个用户名登录了)
如果用userdel &r
user_name,则会删除用户文件及用户目录(包含用户文件的那个目录)
如果是用adduser添加的用户,使用deluser user_name来删除。
14.Linux下查看用户组的信息
查看当前登录用户的组内信息
user_name&
查看user_name用户所在的组,以及组内成员
查看当前登录用户名
显示目录登入系统的用户信息
whois user_name
查找并显示用户信息
显示目前登入系统的用户信息
查询用户的信息
15.Linux的运行级别(共7级)
命令:init
多用户状态没有网络服务
多用户状态有网络服务
系统未使用保留给用户
修改默认的运行级别可修改文件:
/etc/inittab中的id:5:initdefault:这一行中的数字,如把5修改成1。
16.修改用户名
用vi编辑根目录下面的/etc/passwd,在最后一行里面改用户名就行,修改后wq保存退出后用reboot重启就可以了(首先要用su转换成root权限)
&&GNU GRUB&简称&GRUB&是GRand
Bootloader的缩写,它是一个多重操作系统启动管理器。用来引导不同系统,如windows,linux。
17.压缩解压(打包解包)
压缩打包相关命令
.bz2文件的压缩(或解压)程序
bzip2 [option]
.bz2文件的解压缩程序
bunzip2 [option]
filename.bz2
bzip2recover
修复损坏的.bzw文件
bzip2recover.bz2压缩文件
.gz文件的压缩程序
gzip [option]
解压缩被gzip压缩过的文件
gunzip [option]
filename.gz
解压缩winzip压缩的.zip文件
unzip [option]
filename.zip
早期的压缩或解压缩程序(压缩后文件名为.Z)
compress [option]
对文件或目录进行打包或解包
tar [option] [filename] list
1)gzip:对文件进行压缩和解压缩,而且gzip会根据文件类型可自动识别压缩或解压缩。
格式:gzip [选项]
&gzip参数列表&
将输出信息写到标准输出上,并保留原有文件
将压缩文件解压
对每个压缩文件,显示下列字段:压缩后大小、压缩前大小、压缩比、压缩前文件名
查找指定目录并压缩或解压缩其中的所有文件
测试,检查压缩文件是否完整
对每一个压缩和解压的文件,显示文件名和压缩比
2)tar:对文件目录进行打包或解包。
&tar命令常见参数列表
建立新的打包文件
向打包文件末尾追加文件
从打包文件中解压出文件
将文件解开到标准输出
处理过程中输出相关信息
对普通文件进行操作
调用gzip来压缩打包文件,与-x联用时调用gzip完成解压缩
调用bzip2来压缩打包文件,与-x联用时调用bzip2完成解压缩
调用compress来压缩打包文件,与-x联用时调用compress完成解压缩
& & &tar -cvf
a.tar a & & &
&创建文件a的tar包
& & &tar -tvf
a.tar & & &
& 查看tar包包含的文件
& & &tar -xvf
a.tar & & &
& 释放tar包文件
& & &tar -rvf
a.tar b & & &
追加文件b到tar包a.tar
& & &tar -Avf
a.tar c.tar & &
&追加c.tar包到a.tar包&
& & &tar -zcvf
a.tar.gz a & & &
&创建文件a的gzip压缩的tar包&
& & &tar -ztvf
a.tar.gz & & &
& 查看文件a的tar压缩包内容 &
& & &tar -zxvf
aa.tar.gz & & &
释放aa.tar.gz包的内容
& & &tar -jcvf
aa.tar.bz2 aa & &
&创建文件a的bzip压缩的tar包&
& & &tar -jtvf
aa.tar.bz2 & & &
查看文件a的tar压缩包内容
& & &tar -jxvf
aa.tar.bz2 & & &
释放aa.tar.bz2包的内
Linux常见压缩解压命令一览表
tar xv hello.a
uncompress
uncompress
gunzip hello.gz
hello.tar.Z
.tar.gz/.tgz
hello.tar.gz
安装:rpm -i
安装:rpm -i
解压:rpm2cpio
解压:dpkg -i
安装:dpkg -i
安装:dpkg -i
解压:dpkg-deb
--fsys-tarfile
解压:dpkg-deb
--fsys-tarhello hello.deb
unzip hello.zip
注:tar命令的作用是对文件进行打包或解包,注意打包解包与压缩解压不同。
打包:将一些文件或目录变成一个总的文件(把许多文件变成单个文件)。
压缩:将一个(注意是&一个&)大的文件通过一些压缩算法变成一个小文件。
在Linux中的很多压缩程序如(gzip)只能针对一个文件进行压缩,这样当想要压缩较多文件时,就要借助其它的工具将这些文件先打成一个包,然后再用压缩程序压缩这一个包。
18、查看、修改文件读写权限
上例查看文件读写权限:ls -l
xxx.xxx(xxx.xxx是文件名)
修改文件读写权限:chmod xxx ***.***(其中xxx是三位数字,***.***是文件名)
例:chmod 700
name.txt(表示文件拥有者拥有读、写、执行三种权限,而文件所有组、系统其他用户没有读、写、执行权限),修改中间的三位数字可以修改不同的权限。
例:-rwx--r--
上例共10个字符,
第 一个字条:表示文件类型,其中上例的&-&表示普通文件,此外还有:
目录文件(用&d&表示)
链接文件(用&l&表示)
字符设备(用&c&表示)
块设备(用&b&表示)
命名管道(用"p"表示)
堆栈文件(用"f"表示)
套接字(用"s"表示)
后面9个字符每3个分为一组,共3组
第一组:文件拥有者(u,user)对文件的权限
第二组:文件所有组(g,group)对文件的权限
第三组:系统其他用户(o,other)对文件的权限
这三组中,每组的三个字符按顺序分别表示:读、写、执行(即read、write、execute)
每组的三个字符又可以用一个八进制数字表示,这个八进制数字又是从二进制转化而来,方法:
例如:rwx用二进制111表示,r--用100表示,-w-用010表示,--x用001表示,---用000表示,二进制数100,010,001、000用八进制表示分别为:4、2、1、0。
如果文件可读可写可执行,即rwx,则rwx又可用数字7表示(即4+2+1),4即可读r--(100),2即可写-w-(010)、1即可执行--x(001)。
(r-- + -w- + --x)=rwx
如:chmod 700
name.txt,表示修改name.txt这个文件的访问属性,700三位数字中,第一位表示文件拥有者的权限,第二位表示文件所有组的权限,第三位表
示系统其他用户的权限。7即4+2+1(即rwx),文件拥有者对name.txt这个文件有读、写、执行三个权限,而第二位和第三位都是0,0即
0+0+0(即---),表示文件所有组和系统其他用户都没有对name.txt进行读、写、执行的权限(当然这里只是一个例子,实际上txt文件是不能
被执行的)
19、重启X-windows(类似windwos的explorer.exe)的方法
Ubuntu 中 默认重启X-Windows 为 Alt+Print+K
20、ubuntu显示桌面快捷键
Ctrl+Super+D(Super即windows键,即Ctrl与Alt键之间的那个)
小提示:长按Super键可显示全部快捷键,放开即消失。
21、设置Linux更新源
首先备份:$sudo cp
/etc/apt/sources.list etc/apt/sources.list_backup
修改:$sudo gedit
/etc/apt/sources.list
(即用gedit打开sources.list)
22、查看Linux系统版本和内核版本
1)查看内核
cat /proc/version
2)查看Linux版本
lsb_release -a
cat /etc/issue
3) 登录到linux执行cat /etc/redhat-release ,例如如下:
[root@q1test01 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
注:这种方式下可以直接看到具体的版本号,比如 AS4 Update 1
4)登录到linux执行rpm -q redhat-release ,例如如下:
[root@q1test01 ~]# rpm -q redhat-release
redhat-release-4AS-3
23、在终端用命令查看某个文件夹里面的文件个数
24、切换纯命令终端(称为虚拟控制台)的快捷键
Ctrl+Alt+F1-F7,其中F1-F6是6个纯命令终端,F7是X窗口(即图形界面),6个纯命令终端称为:tty1,tty2,一直到tty6,tty,我上网查了,是teletype的缩写,teletype是电传打字机的意思。
25、查找查个进程的进程号
ps -ef|grep httpd(httpd是进程名)
netstat -ant(查找端口号)
26、Ubuntu的截图方法
1)全屏幕截屏直接按键盘上的Pirntscreen键,然后就可以按着鼠标左键拖选截屏区域,拖选完放开左键弹出对话框,可以选择复制到剪贴板或者保存图片。
2)局部区域截屏按着Shift再按Pirntscreen键,然后就可以按着鼠标左键拖选截屏区域,拖选完放开左键弹出对话框,可以选择复制到剪贴板或者保存图片。
27、查看硬盘容量使用情况
df -h(容量计算进位为1024)或df -hi
df -H(容量计算单位为1000)
注:df是disk free的缩写。
阅读(...) 评论()故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。...
学习ubuntu之路(二) 使用用命令行实现文件的相关操作
在Ubuntu下,当需要打开其他格式文件时,比如pdf、jpg、mp3等格式文件,通常做法是进入到文件所在的目录,双击打开,很影响效率。事实上,可以通过命令xdg-open打开这些格式文件,甚至是网页,像打开文件一样简单。举两个例子:
ctrl+alt+t打开终端
用户名@主机名:~$ xdg-open la_isla_bonita.mp3
用户名@主机名:~$ xdg-open http://www.baidu.com
xdg-open会选择默认的程序打开指定文件,跟双击打开效果一样。
创建一个文件夹
1、mkdir 命令
mkdir 命令能够创建一个目录。mkdir 命令的执行方式为:
# mkdir 目录名
其实一个目录就是一个特殊类型的文件,就如同Windows中的文件夹一样,目录里面既可以有文件,也可以有子目录,就是因为有目录的存在,Linux才能够以一种目录树的结构对文件系统进行管理。
例如现在要建立一个directory目录,则可以执行命令:
# mkdir directory
创建完目录后可以使用ls –l命令去查看目录是否建立成功。如果directory所在行的第一个字母为d,则说明建立成功。
有时候我们需要一次性地建立多级目录,则可以使用-p参数:
# mkdir -p /home/dir1/dir2/dir3
rmdir 空文件夹名 --/删除一个空文件夹
rmdir不能删除非空目录
删除一个文件或多个文件
rm -rf 非空文件夹名 --/删除一个非空文件夹下的一切
这时可以考虑直接使用rm,不过要在rm后跟两个参数-rf 即:
rm -rf 目录名字
-r 就是向下递归,管理有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
这条命令虽然能够帮助你解决问题,但需要提醒的是:使用这个rm -rf的时候一定要格外小心,众所周知,linux没有回收站的,一旦删除就永远找不回来了。
如果不能删除或者建立的话,可以使用sudo命令,如 sudo rm -rf 文件夹名称
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。
把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
该命令的各选项含义如下:
 - a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
 - d 拷贝时保留链接。
 - f 删除已经存在的目标文件而不提示。
 - i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
 - p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
 - r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
 - l 不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
 $ cp - i exam1.c /usr/wang/shiyan1.c
 该命令将文件exam1.c拷贝到/usr/wang 这个目录下,并改名为 shiyan1.c。若不希望重新命名,可以使用下面的命令:
 $ cp exam1.c /usr/ wang/
 $ cp - r /usr/xu/ /usr/liu/ 将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中。
重命名/移动
  用户可以使用mv命令来为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。
  语法:mv [选项] 源文件或目录 目标文件或目录
  说明:视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重 命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目 录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件 系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
  命令中各选项的含义为:
  - I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
  - f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
  如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户在不经意的情况下用mv命令破坏另一个文件,建议用户在使用mv命令移动文件时,最好使用i选项。
  需要注意的是,mv与cp的结果不同。mv好象文件“搬家”,文件个数并末增加,而cp对文件进行复制,文件个数增加了。
  例1:将/usr/xu中的所有文件移到当前目录(用“.”表示)中:
  $ mv /usr/xu/ * .
  例2:将文件wch.txt重命名为wjz.doc
  $ mv wch.txt wjz.doc
没有更多推荐了,curl命令是个功能强大的网络工具,支持通过http、ftp等方式下载文件、上传文件。还可以用来抓取网页、网络监控等方面的开发,解决开发过程中遇到的问题。
常用参数curl命令参数很多,这里只列出我曾经用过、特别是在shell脚本中用到过的那些。-v/--verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。-m/--max-time &seconds& 指定处理的最大时长-H/--header &header& 指定请求头参数-s/--slient 减少输出的信息,比如进度--connect-timeout &seconds& 指定尝试连接的最大时长-x/--proxy &proxyhost[:port]& 指定代理服务器地址和端口,端口默认为1080-T/--upload-file &file& 指定上传文件路径-o/--output &file& 指定输出文件名称-d/--data/--data-ascii &data& 指定POST的内容--retry &num& 指定重试次数-e/--referer &URL& 指定引用地址-I/--head 仅返回头部信息,使用HEAD请求
1、curl安装
eg、sudo apt-get install curl
2、GET请求
curl http://www.baidu.com,回车之后,HTML内容打印在屏幕上;如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地。
curl -i "http://www.baidu.com"
显示全部信息
curl -l "http://www.baidu.com" 只显示头部信息
curl -v "http://www.baidu.com" 显示get请求全过程解析
wget "http://www.baidu.com"也可以
curl &o linjiqin http://www.cnblogs.com/linjiqin,执行后可以看到下载进度提示,完成100%后会自动退出了,把网页保存到linjiqin中。
它还有一个大写O的选项,是按照服务器上的文件名保存到本地,如果执行curl &O http://www.cnblogs.com,是会报错的,提示找不到文件名,如果换成curl &O http://www.cnblogs.com/linjiqin/p/5401969.html,就自动保存文件为5401969.html。
-T/--upload-file:往服务器上传文件
上传多个文件
curl -T "img[1-1000].png" ftp://example.com/upload/
上传多个文件
curl -T "{file1,file2}" http://www.example.com
5、POST方法
-d或--data参数:post请求,用法为curl -d "id=1&name=test" http://example.com/example.php,需把请求的参数和URL分开,同时可以使用curl -d "id=1" -d "name=test" http://example.com/example.php,相当于提交了两个参数。当提交的参数值中有特殊字符就需要先转义。如空格时,就需要转义成%20。
--data-urlencode参数:可以自动转义成特殊字符,无需人工事先转义。
curl --data-urlencode "name=April 1" http://example.com/example.php
-F或--form:将本地文件上传到服务器,用法为:curl -F "filename=@/home/test/test.pic" http://example.com/example.php 。千万不能漏掉@符号。
6、设置referer
有时候我们如果直接请求某个URL不能成功,它需要判断referer是否正确,那就可以通过-e或--referer参数模拟
curl --referer http://www.example.com http://www.example.com
7、指定User Agent
-A/--user-agent:伪装成指定的浏览器Chrome访问,用法:
curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" www.baidu.com
8、伪造cookie
-b或--cookie: 有两种用法,一是指定参数和值:curl --cookie "name=xxx" http://www.example.com ;二是从文件读取:curl -b /cookie.txt http://www.example.com
9、保存cookie
-c/--cookie-jar:curl命令执行后保存操作时生成的cookie到文件:
curl -c ./cookie.txt -d username=aaaa -d pwd=****** http://www.example.com
10、定义输出显示内容
-w/--write-out: 可以定义输出的内容,如常用的http码,tcp连接时间,域名解析的时间,握手时间及第一时间响应时间等,非常强大。
1、打印出返回的http码
curl -o /dev/null -s -w %{http_code} "http://www.baidu.com"
2、打印响应时间
curl -o /dev/null -s -w "time_total: %{time_total}\n" "http://www.baidu.com"
阅读(...) 评论()

我要回帖

更多关于 ubuntu怎么编写c程序 的文章

 

随机推荐