[linux] linux学习笔记 1:Shell入门

1. 在虚拟机中新建一个test.sh文件

也可以直接在控制台输入/bin/bash test.sh ,这时文本里和控制台都不用写#! 

查看gcc版本 gcc --version

2. 新建一个c文件,保存为 test.c, 在控制台输入 gcc test.c,会在同一目录下生成 a.out 文件,此时 ./test.c即可运行

也可以通过下面的方式给生成的文件制定一个名字:

.out文件是可执行文件。

 3. ctrl + shift + c 复制, ctrl + shift + v 粘贴

 4. 

char *argv[] = {"test.sh",0}; 
末尾需要为0
execvp(argv[0],argv); 
execvp()的第一个参数是文件路径名,第二个参数是参数列表,为0,1,2,3 第0个参数还是文件名,即argv[0],需要重复一遍。

5. linux 的内部命令和外部命令的区别: shell (命令解释器)本身是一个程序,默认是 bash , 在 linux 系统启动运行时,shell 就被加载,并驻留在系统内存中,而内部命令就是 shell 的部分功能代码,已经随着 shell 的加载预留在系统内存中,在被调用时可以直接被shell 识别并运行,速度很快,不用创建一个新的进程;而外部命令是linux系统中的实用程序部分,实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用到内存当中,通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在bash之外额外安装的,通常在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/sbin等等。可通过“echo $PATH”命令查看外部命令的存储路径,比如:ls、vi等。所以在实现内部命令时,相当于调用在 自定义shell中的函数名即可。

6. pwd 显示当前工作目录;echo $SHELL 可以显示当前的shell; 用 g++ 来编译cpp, 用 gcc 来编译 c 文件;

7.pwd是一个内部命令,但是/bin/pwd 的pwd却是一个功能相似甚至更加强大的外部命令,当没有shell没有找到内部命令时,会到 PATH 中寻找同名的外部命令,在 bash 中输入pwd 直接定位的是内部命令,输入 /bin/pwd 则定位到外部命令,当我们自己写一个没有内部命令 pwd 的 shell 时,输入 pwd 它会直接找到 PATH 环境变量下的 /bin/pwd 可执行文件中,如果我们输入的是 cd 或者 echo , type 得到的结果可能是乱七八糟或者根本就不会显示出结果,所以我们在写自己的内部命令时要在 shell 程序体中进行定义。ls 是一个外部命令,所以我们可以直接通过系统调用的方法执行。

8. 在ubuntu 安装codeblocks,虽然用gcc编译,但是debug的时候报出没有g++的错误,只能老老实实的安装,并且要注意新建一个工程时一定不能带中文目录,路径一定要是全英文的,否则会提示 no input files。

9. 在linux 中使用gets()可能会报警告,忽略即可。

10. ctrl + z 可以终止vi或者正在终端执行的程序。

11. 在codeblocks 中修改代码以后,要先build 一下,再run.

12. char ch = getchar() 的使用,可以用来接收回车符,避免回车符作为下一次的输入

13. vi a.txt进入编辑模式,i 可以进行修改,esc键退出修改模式,shift+:,再用wq表示保存并退出

14.shift + pageup可以对查看命令行界面前面的内容,Pgon则向下翻页

15. 利用putty中的pscp向主机中传输文件,首先定位到pscp(cd d:\centos镜像)所在目录,直接就可以使用pscp命令了:

/root/即为默认的目录,也可以为:/usr/local/进行指定:

16.使用 wget -P /usr/local/  http://... 下载文件到指定目录

17.打开虚拟机时,要启动zookeeper,(zkServer.sh start(restart)每台机子都要进行) 在进出虚拟机时,只需对cluster1进行下面的操作即可,并且使用到了hadoop时,关机前要按照顺序执行(开启时为start-yarn.sh...):

stop-yarn.sh

stop-dfs.sh

stop-hbase.sh

stop-master.sh

stop-slaves.sh

18. 先通过ps -ef|grep mysql查看当前进程,如果有/usr/开头的mysql 用 kill 进程号进行解除。

然后通过,# /etc/init.d/mysql.server start -user=mysql启动mysql,然后mysql -u root -p连上mysql即可。

19.vi模式gg回到顶部,shift+g到达底部,esc模式下 输入 / 接上查找的字符串可以查找,但只是从当前到文档末尾进行查找。

20. 从虚拟机向主机发送文件,必须有主机的路径:

pscp -r root@192.168.56.121:/usr/local/apache-hive-1.1.0-bin/conf/hive-site.xml d:\centos镜像

21.在linux中运行.java文件

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值