设为首页 加入收藏

TOP

Linux下shell编程基础知识(一)
2015-07-16 12:57:17 来源: 作者: 【 】 浏览:15
Tags:Linux shell 编程 基础知识

1、history? ? 记录历史命令;
预设记录1000条命令,存储在用户家目录 .bash_history 文件中;
!!? ? 执行上一条命令
!n? ? n为数字,history里面显示的指令数字
!cat? ? 执行最近一次以cat开头的命令
!$? ? 上一条命令的最后一个参数


man builtin? ? 可以查询系统内置的所有命令;


2、指令和文件名补全
Tab键? ? 连续按2次列出所有的指令或文件名;


3、别名alias
自定义别名,把很长的经常使用的命令别名一个简单的命令
[root@linuxidc ~]# alias yong="cat /etc/sysconfig/network-scripts/ifcfg-eth0"
[root@linuxidc ~]# yong
DEVICE=eth0
HWADDR=00:0C:29:43:3D:32
TYPE=Ethernet
UUID=0b1f4512-cefa-4a9e-ae85-adb2ac2a9903
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.20.20
NETMASK=255.255.255.0
GATEWAY=192.168.20.2


unalias? ? 解除别名
别名永久生效的话,把命令写入到当前用户家目录 .bashrc里面;只对当前用户生效。



4、通配符
*? ? 代表零个或多个任意字符
?? ? 代表1个任意字符



5、输入输出重定向
输出重定向 >
把前面的输出不显示在当前屏幕上,输出到指定文件里面;
追加重定向 >> 把内容追加到文件里面;
输入重定向 2>? ? ? ? 错误重定向(写脚本的时候会用到)
2>>? ? 错误追加重定向
[root@localhost ~]# ls -l /dev/stdin?
lrwxrwxrwx. 1 root root 15 4月? 6 11:04 /dev/stdin -> /proc/self/fd/0
[root@localhost ~]# ls -l /dev/stdout?
lrwxrwxrwx. 1 root root 15 4月? 6 11:04 /dev/stdout -> /proc/self/fd/1
[root@localhost ~]# ls -l /dev/stderr?
lrwxrwxrwx. 1 root root 15 4月? 6 11:04 /dev/stderr -> /proc/self/fd/2


标准输入设备stdin用0表示;键盘;


标准输出设备 stdout用1表示,显示器显示;
标准输出错误 stderr用2表示,显示器显示;



示例:直接ls 会在当前屏幕显示出来,正确和错误的信息;
[root@localhost ~]# ls /etc/passwd /etc/passwd1
ls: 无法访问/etc/passwd1: 没有那个文件或目录
/etc/passwd
[root@localhost ~]# ls /etc/passwd /etc/passwd1 >1.log 2>&1
[root@localhost ~]# cat 1.log
?ls: 无法访问/etc/passwd1: 没有那个文件或目录
?/etc/passwd


正确输出1默认可以不用写,直接重定向到1.log里面,2代表错误输出,重定向到&1代表前面的1.log;有时候也可以>>追加到日志;


?


[root@localhost ~]# ls /etc/passwd /etc/passwd1?
&>all.log
[root@localhost ~]# cat all.log?
ls: 无法访问/etc/passwd1: 没有那个文件或目录
/etc/passwd


&表示所有,包括正确输出1和错误输出2,输出重定向到all.log里面;


?


6、管道符 |
把前面命令的输出结果作为后面命令的输入
[root@linuxidc ~]# cat /etc/passwd | wc -l
25


?


7、作业控制
当运行一个进程时,你可以使它暂停(按Ctrl+z),然后使用fg命令恢复它,利用bg命令使他到后台运行,你也可以使它终止(按Ctrl+c)
jobs? ? 可以查看被暂停或在后台运行的任务
[root@linuxidc ~]# vmstat 1 > /tmp/1.log?
^Z
[1]-? Stopped? ? ? ? ? ? ? ? vi file
[2]+? Stopped? ? ? ? ? ? ? ? vmstat 1 > /tmp/1.log
[root@linuxidc ~]# jobs
[1]-? Stopped? ? ? ? ? ? ? ? vi file
[2]+? Stopped? ? ? ? ? ? ? ? vmstat 1 > /tmp/1.log
[root@linuxidc ~]# bg 2
[2]+ vmstat 1 > /tmp/1.log &
[root@linuxidc ~]# jobs
[1]+? Stopped? ? ? ? ? ? ? ? vi file
[2]-? Running? ? ? ? ? ? ? ? vmstat 1 > /tmp/1.log &


想要让进程在后台运行的话加 &,中间有空格,进程就在后台运行了。


vmstat 1? ? 用来观察系统状态的一个命令。
fg 2 让后台运行的进程回到当前运行,ctrl+c 可以终止进程。
+号显示的为优先级最高。



另一种情况,关闭当前shell,重新打开另一个shell,使用jobs并不会显示在后台运行的进程。想要停止进程的话,需要知道pid,然后使用kill命令杀死进程。如遇到杀不死的进程,使用 kill -9 pid
[root@linuxidc ~]# ps aux | grep vmstat
root? ? ? 1909? 0.0? 0.1? 2016? 548 pts/0? ? S? ? 15:03? 0:00 vmstat 1
root? ? ? 1941? 0.0? 0.1? 4356? 732 pts/0? ? S+? 15:08? 0:00 grep vmstat
[root@linuxidc ~]# kill 1909


?


8、变量,就是使用一个较简单的字符串来替代某些具有特殊意义的设定以及数据。


env? 可以查看系统预设的所有环境变量;


set? ? 可以列出系统预设的全部变量,包括用户自己设定的变量;


变量永久生效的方法:
1)系统下所有用户登录都可以使用该变量
在/etc/profile 配置文件中最后一行,添加"export myname=linuxidc",然后执行source /etc/profile 生效;source命令的作用是,将目前设定的配置刷新,即不用注销再登录也能生效。
[root@linuxidc ~]# echo "export myname=linuxidc" >> /etc/profile
[root@linuxidc ~]# source /etc/profile
[root@linuxidc ~]# su - user1
[user1@linuxidc ~]$ echo $myname?
linuxidc


?


2)只在当前用户下使用变量
在用户的家目录下 .bashrc 配置文件,添加"export myname=linuxidc",然后执行source .bashrc 生效;
[user1@linuxidc ~]$ pwd/home/user1
[user1@linuxidc ~]$ echo "export myname=linuxidc" >> .bashrc
[user1@linuxidc ~]$ source .bashrc
[user1@linuxidc ~]$ echo $myname
linuxidc


自定义变量的规则
1、设定变量的格式“变量名=变量内容”等号两边不能有空格
2、变量名只能由

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux进程之Fork函数 下一篇C语言 gets()和scanf()函数的用法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: