linux学习记录(一)

一、打开/etc/apt/source.list源列表文件加放源

 

 

二、make 工具:

                       make默认查找的文件名:GNUmakefile  makefile Makefile

                       常用预定义变量

                       $*              不含扩展名的目标文件
                       $@              目标的完整名称。
                       $%              如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称
                       为 mytarget.so(image.o),则 $@ 为 mytarget.so,而 $% 为 image.o。

 

                       $+              所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。
                        $<              第一个依赖文件的名称。
                       $?              所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。
                       $^              所有的依赖文件,以空格分开,不包含重复的依赖文件。

 

                        AR              归档维护程序的名称,默认值为 ar。
                         ARFLAGS         归档维护程序的选项。

                      AS              汇编程序的名称,默认值为 as。
                     ASFLAGS         汇编程序的选项。

                  CC              C 编译器的名称,默认值为 cc。
                CCFLAGS         C 编译器的选项。
              CPP             C 预编译器的名称,默认值为 $(CC) -E。

 CPPFLAGS        C 预编译的选项。
 CXX             C++ 编译器的名称,默认值为 g++。
 CXXFLAGS        C++ 编译器的选项。

 

 

隐含规则:(1)  可以省略同名的依赖文件(2)


包含其它makefile : 用include  或者用 -include 来忽略当中的错误

 

目录搜索:VPATH = ./src:../inc   用来指定全局搜索目录  vpath %.h ../inc 用来指定部分文件搜索的目录

 

gcc -MM  main.c 它会根据main.c里面的包含头文件自动生成依赖关系


把每个源文件所依赖的文件目录自动生成一个依赖的.d文件


.c=.d    意思是所有文件替换,.c换成.d


环境变量可以带入


还有条件判断和函数

 

程序注释:
1)刚开始的几行定义了几个变量,比如用CC来代替真正的 gcc 编译器,这样当想换别的编译器来编译我们的程序时直接改变CC变量的值就OK了。其它的:

CC 指代用来编译程序的编译器,这里使用 gcc

RPOG_NAME 指代最终要生成的可执行文件名,需手工填入
INCS 指代工程文件中所自定义的所有头文件,需手工填入

SRCS 指代所有使用到的源文件,需手工填入
OBJS 是通过 .c 文件得到的 .o 文件,因为每个 .c 文件都将编译生成一个对应的 .o 文件,自动生成
LIBS 用来指代编译GTK程序时需要使用到的GTK相关库,一般使用默认的 gtk+-2.0 即可,需手工填入
CFLAGS 用来指代编译程序时使用到的一些编译选项, -g 表示生成调试信息以供GDB使用,-Wall表示生成编译时的警告信息(W表示Warning,all 表示全部)
LDFLAGS 用来指代进行程序连接时使用到的一些选项
以上这些变量,将在Makefile的剩余部分使用 ${xxx} 的形式进行引用。

2)关于“目标”:“依赖关系”
从“all: ${PROG_NAME}”这一句开始,Makefile就开始使用 目标:依赖 的关系来处理真正的程序编译了;而它们下边以 TAB 键开始的行就是满足依赖关系后要运行的程序(注意:是TAB键,不是空格)。具体笔者就不详细描述了,有兴趣的读者可以参考下边推荐的教程。

3)关于 “.c.o:” 语句:
这句话的意思就是说,当遇到一个 .c 文件,那么使用它下边的命令“         ${CC} -c $<  ${CFLAGS}” 将 .c 文件编译为 .o 文件;命令中 $< 用来代替对应的 .c 文件的文件名。

4)关于"clean" 和 "rebuild":
这两个者伪目标,必须使用 "make clean" 或 "make rebuild" 来引用,"make clean" 用于删除生成的 .o 目标文件和可执行文件; "make rebuild" 用于对整个工程进行重构建。

 

 

三、find directory  file

 

四、ftp IP
>get filename
>mget filelist
>put
>mput
>ls
>quit

 

五、GTK

  安装
 sudo apt-get install gnome-core-devel  #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件
 sudo apt-get install pkg-config            #用于在编译GTK程序时自动找出头文件及库文件位置
 

编译
 gcc hello_dubuntu.c -o hello_dubuntu `pkg-config --cflags --libs gtk+-2.0`
 `pkg-config --cflags --libs gtk+-2.0` 是GTK相关文档的头文件或者库文件的目录

 

 

六、SMB

安装samba软件包。
 如:rpm ivh samba*
 apt-get install samba


查看samba服务是否正在运行
 用ps -aux 查看是否有smbd、nmbd两个进程


让Samba从inetd中启动
  在inetd.conf文件中加入下面的两行
 格式:[service] [socket] [protocol] [flags] [user] [server path] [arguments] 
      netbios-ssn stream  tcp          nowait  root /usr/sbin/smbd smbd
      netbios-ns  dgram   udp           wait    root /usr/sbin/nmbd nmbd


重新启动inetd
 kill -HUP 1

 

 

七、telnet
>logout
 

八、安装 G++:sudo apt-get install build-essential

 

 

九、安装JAVA:apt-get install sun-java6-jdk sun-java6-jre

 

 

十、配置网络:

查看网络状态
 netstat -nr


 ifconfig eth0 192.168.1.2 netmask 255.255.255.0

 

十一、RPM

 rpm -i 安装
 rpm -U 更新
 -vh等来查看过程
反安装RPM包  rpm -e package-name


查看已经安装的RPM包
 查看全部安装的:rpm -qa
 查看某个安装: rpm -q pname


查看某个文件在某个包里面
 rpm -qf 文件完整路径


查看某个包的用途
 rpm -qip pname

 

十二、tar

tar xvf xxx.tar  解压文件
tar cvf xxx.tar directory  打包某个目录

 

十三、 at
使用权限 : 所有使用者

使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME

说明 : at 可以让使用者指定在 TIME 这个特定时刻执行某个程式或指令,TIME 的格式是 HH:MM其中的 HH 为小时,MM 为分钟,甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 点锺)等口语词。

如果想要指定超过一天内的时间,则可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分钟,DD 是第几日,YY 是指年份。另外,使用者甚至也可以使用像是 now + 时间间隔来弹性指定时间,其中的时间间隔可以是 minutes, hours, days, weeks

另外,使用者也可指定 today 或 tomorrow 来表示今天或明天。当指定了时间并按下 enter 之后,at 会进入交谈模式并要求输入指令或程式,当你输入完后按下 ctrl+D 即可完成所有动作,至于执行的结果将会寄回你的帐号中。

把计 :

-V : 印出版本编号
-q : 使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c... z 以及 A, B, ... Z 共 52 个
-m : 即使程式/指令执行完成后没有输出结果, 也要寄封信给使用者
-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d)
-v : 列出所有已经完成但尚未删除的指定

例子 :
三天后的下午 5 点锺执行 /bin/ls :
at 5pm + 3 days /bin/ls

三个星期后的下午 5 点锺执行 /bin/ls :
at 5pm + 2 weeks /bin/ls

明天的 17:20 执行 /bin/date :
at 17:20 tomorrow /bin/date

1999 年的最后一天的最后一分钟印出 the end of world !
at 23:59 12/31/1999 echo the end of world !

 

 

十四、chmod 777 -R /home

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值