Linux下程序设计基础

来源:互联网 发布:暴漫官方淘宝店是哪个 编辑:程序博客网 时间:2024/05/22 11:53

  我是一名大三学生,学的虽然是计算机,可是大三之前感觉什么都没有学会,什么东西都像蜻蜓点水一般。后来越接近于毕业找工作,才慢慢的意识到这个问题,我到底这四年学到了什么。由于专业是物联网工程,就下定决心继续从事这个行业。

  首先第一个需要熟练掌握的就是Linux下的编程,我记得有一次看人家博客提到说,每天用博客总结会对自己的学习以及日后的巩固起到很大的作用。所以我就开始写了我的第一篇博客。不管以后是成是败,我还是那句话,自己选的路跪着也要走完。

  首先就是Linux用户应该熟练掌握的50个基本命令:(具体的参数和选项大家可以man 或者 info一下)

(1)系统安装和登陆命令: 

login  登陆

   shutdown 关机(安全的关机)

halt  关机并且是强制性的

reboot 重新启动系统

install 安装

mount 挂载  (文件与目录之间建立联系称之为挂载)

exit 退出

last 内置的跟踪程序(可以显示出已经登入的用户的名称 ,连接到计算机的方式,剩下的就是持续了多久)

(2)文件处理命令:

mkdir  建立一个文件夹

grep  查找文件或者文件夹

dd 复制文件到某个文件(dd if=/temp/tempfile of=/dev/fd0)

find  也是查找

mv  移动命令

ls list的意思 

diff  比较差异(甚至可以不是一个文件)

cat 显示文件的内容

ln 建立连接(ln -s sourcefile targetfile)

(3)系统管理相关命令:

df disk free(检查文件系统的磁盘空间占用情况)

top 能够实时的显示各个进程占用资源的情况

free  显示总共的空闲或者使用过的物理内存和交换内存并且包括内核使用过的缓存

quota 显示出使用者硬盘容量以及限制,

lp 输出文件

adduser 增加用户

groupadd 增加组

kill 终止进程

crontab 任务调度(用crontab -e来为当前用户创建任务调度)

(4)网络操作命令:

ifconfig 显示当前的网络接口,以及输出结果

ip 和ifconfig作用相差不大,不过前者已经好久没有更新过了,建议使用第二种

ping 请求与host端的链接

netstat 输出网络链接,路由表,界面状态

telnet 写Telnet协议的用户界面

ftp 网络文件传输程序

route 路由

rlogin 打开SSH客户端

nslookup 质疑Internet名称服务器的相互作用

(5)系统安全相关命令:

passwd 密码

 su 超级用户

umask 设置文件模式创造性的掩盖

chgrp 改变组

chmod  改变模式(权限)

chattr 改变在一个Linux文件系统下的文件指向

who 查看用户名以及其他信息

(6)其他命令:

tar 讲文件打包成一个文件包

unzp 解压缩Zip文件

gunzip 解压缩gzip gunzip zcat文件

man 一个在线的指导说明书

mtools 用于模拟ms-dos的指令

接下来使用到的命令我会一一在这详细记录:

首先是解压缩的tar 一般来说解压一个tar 文件 用到的是 tar -zvxf  这些选项,本身是不能解压缩的,所以必须要调用-z使用gzip来解压缩

然后就是shell的脚本文件编写:

cat > myprogram 这是采用管道的方法将脚本直接写入myprogram必须要以#!来规定使用sh还是bash,不过一般看网上有人建议使用bash,我试了一下好像不行,所以还是使用sh。编写完成之后按crtl+d的方式退出编辑模式。最后还要更改权限使用chmod 755 filename 来修改。最后run 是./filename 。脚本文件一般用来执行重复性的工作,当进入系统时要查看有无信件,现有的用户群,之类的完成这些工作的命令都是固定的所以采用脚本,每次批处理就可以。

更改环境变量是PATH=$PATH:/some/directory

shell的内部命令:

:空,永远返回true. 执行一个脚本文件 bg  把程序转后台执行 exit  退出当前shell  fg  把挂起的进程在前台执行

fc 编辑当前命令行历史列表jobs 显示后台进程执行情况 ulimit 显示或设置shell资源      hash  显示命令执行的次数和位置 source 执行一个脚本文件

umask 显示或设置缺省创建模式 pwd 显示出目录位置 break 结束一个循环的执行 continue 结束本次循环exec 目前程序中执行另外的程序

export 设置环境变量read 从键盘读入一行数据  return 退出函数并带返回值 set  设shell变量到标准显示 stop把后台执行的程序暂停

test 评估条件表达式 unset 从shell内存中删除变量 eval 读取参数执行的结果 readonly使变量只读

shift 名航参数左移一个times 显示shell运行过程时间  trap 捕获信号时运行命令   wait 等待到子进程运行完毕

alias 设置命令别名history 显示历史命令清单 kill 终止一个进程

以上命令,用于编写shell程序

shell中有两种命令分组的方法:{ },()

执行()中的命令时将再创建一个新的子进程,然后这个子进程执行()里的命令,当用户在执行某个命苦时,若不想让命令运行对状态集合的改变,影响后面语句的执行时,就应该把这些命苦放在()中,这样就能保证所有的改变只对子进程产生改变,而父进程不受影响。

{ }用于将顺序执行的命令输出结果用于另一个命令的输入(管道方式)。当用户使用{},()时需要在其前面加上转义符\以便shell指导他们不是用于命令执行的终止。

bash函数的实质是命令集合或批处理文件,在shell中定义的函数都是由若干条shell命令组成的命令集合,与shell程序形式相似,可看做是一条复合命令,不同之处在于他是多进程,函数定义的基本格式为:

[function]函数名()

{

命令行

}

0 0
原创粉丝点击