linux学习正是开始---嘎嘎嘎

基于Red Hat 5linux学习笔记----------------------宙斯-------欧也也也!!!!!!!!

 

人生哪能不二!!     加了个油!!!

 

超级用户利用root登陆:在超级用户权限下可以更改任何文件。

普通用户即利用普通用户名登录即可,在普通用户权限下,有一些设置是不能更改的。

 

命令详解篇

一、添加用户

useradd

例如:useradd smd

则在linux系统中会新添加以用户 用户名为 smd 

      在超级用户下运行 ls /home/(即查看home目录)  会新添加一名为smd的文件夹

二、修改密码 passwd

例如: passswd smd

则系统会提示 更改密码设置 输入两次 即改密成功。

三、切换用户 su

例如: su smd    则会切换到 smd用户下

       su root    则会切换到root用户下,但是root用户会要求输入密码。

四、关机 shut down now  即立刻关机

五、拷贝  cp   拷贝文件或者目录  

格式: cp 源文件或源目录  目标文件或目标目录,(当拷贝目录时在cp后要加上-r

六、移动(即剪切) 更名  mv

  格式: mv 源文件或目录  目标文件或目录

 

七、删除 rm     同样 当要删除目录时要在目录后加-r

            rm hand –r   (删除hand 目录)

八、 创建目录  mkdir 文件名 

  例如: mkdir hand   (创建名为 hand 的文件名)

九、改变工作目录  cd 

格式 cd 目录  

例如 cd /home/

cd /  (回到根目录下)

十、查看路径 pwd 显示当前工作目录的绝对路径

十一、查看目录  ls

     例如 ls  (查看当前目录下的子目录)

             ls  /home/  查看home文件下的子目录(仅仅是查看

详细查看指令: ls  –l 能详细查看本目录中的文件 (建立时间和 文件大小)

十二、打包与压缩

格式: 1tar cvf tmp.tar /home/tmp     

       /home/tmp/目录下的所有文件和目录打包成一个tmp.tar文件

      2tar xvf tmp.tar   

        将打包文件tmp.tar文件解压开

      3tar cvzf tmp.tar.gz/home/tmp

        /home/tmp目录下的文件和目录打包并压缩成一个 tmp.tar.gz

      4tar xvzf tmp.tar.gz

        将打包的压缩文件tmp.tar.gz在当前目录下解开

十三、解压缩       unzip   例如: unzip tmp.zip  解压tmp.zip文件

 

文本编辑

一、vi hello.c  就会自动创建一个hello.c文件 .  敲入i转到插入模式 就可以写程序了、。   键入Esc 退到命令行模式    键入:wq(有冒号的)

   保存并退出

二、 命令行模式功能键:

      yy 复制光标所在行

     nyy    n为数字 ,复制当前光标开始的n

      P   粘贴复制的内容到光标所在出

      dd 删除当前光标所在行

      ndd 删除当前光标所在的n

      /name  查找光标之后的名为name的字符串

      G  光标移动到文件尾(注意是大写)

      u  取消前一个动作(注意是小写)

三、底行编辑功能键

w 保存

q 退出 vi(系统会提示保存修复)

q强行退出(对保存不做修改)

wq 保存后退出

w   filename 另存为filename的文件

set nu 显示行号

set nonu 取消行号

TFTP服务器

宿主机主要执行 编译、连接、嵌入式软件的计算机

目标机运行 嵌入式软件的硬件平台

Tftp服务器作为工作于宿主机上的软件,主要提供对目标机的主要映像文件的下载

 

 

 

 

Shell编程

#/bin/sh   用指定的脚本文件解析程序,即利用shell解析程序

注释利用 #

编程:(变量不必提前定义

1     #/bin/sh

            # set variable a

            a=hello world (不用分号结束,a为变量 所以和等号之间不能有空格)

         #print a

        echo “A is :”

        echo $a    ( 下一行输出 hello world)

输出结果

      A is:

      hello world

2

      #/bin/sh

     num=2

     echo “this is the $num”

输出结果

this is the 2

3.

   #/bin/sh

     num=2

     echo “this is the ${num}nd”  (只有家大括号才会识别变量)

输出结果

  this is the 2nd

默认变量( 系统已经定义的变量 不是我们定义的)(冒号不是命令)

 $#:  传入脚本的命令行参数个数

 $*:  所有命令行参数值,在各个参数值之间留有空格

$0:  命令本身(shell文件名)

$1:  第一个命令行参数

$2:  第二个命令行参数

例:

 

输出结果:

 

局部变量

   在变量首次被赋值是加上local关键字可以声明一个局部变量  

Localfunction  func1 函数中声明了一个hello 局部变量,变量只在函数中有效。

输出结果

     

变量:

1、          变量赋值时,“=”左右两边不能有空格

2  Bash 中的语句结尾不需要分号。

If语句

****ifexpression

       then

           #code block

    fi

****if [expression]

     then

           #code block

     esle

           #code block

fi(fi结尾结束if语句)

***** if [expression]

       then

           #code block

     else if  [expression]

       then

           #code block

       else

           #code block

     fi

   fi

每一个if 都要一个fi结束

比较

比较操作        整数操作        字符串操作

相同             -eq               =  

不同             -ne               != 

大于             -gt                > 

小于             -lt                <  

大于或等于       -ge                  

小于或等于       -le           

为空             -z

不为空           -n

 

 

例:

  比较整数ab是否相等:   if [ $a = $b ]  (也可以eq)

  判断整数a是否大于整数b  if [ $a –gt $b ]

比较字符串ab是否相等: if [ $a = $b]

判断字符串是否为空:       if [ -z $a ]

判断整数变量a是否大于b:   if [ $a –gt $b ]

 

注意:

1、  在“[”和“]”符号左右都留有空格

2、  =”左右也都有空格(在变量赋值时 = 两侧没有等号

文件判断:

 -e 文件已经存在

 -f 文件是普通文件

 -s 文件大小不为零

 -d 文件是一个目录

 -r 文件对当前用户可以读取

 -w 文件对当前用户可以写入

-x  文件对当前用户可以执行

例:

    #!/bin/sh

    Folder=/home

    [ -r “$folder” ] &&echo can read $folder  # 只有&&前面成立才执行后面语句

    [ -f “$folder” ] || echo this is not file    #只有 || 前面不成立才执行后面语句

  

输出结果:::

 

For 循环:

for循环结构与C语言中有所不同,在bashfor循环的基本结构是:

    for var in [list]  

      do

         #code block

      done

其中 var 是循环控制变量,[list] var 需要遍历的一个集合,do/done 包含了循环体,相当于C语言中的一对大括号。另外如果dofor被写在同一行,必须在do前面加上“;“ for $var in [list] ; do

例一:

 

 

 

输出结果:

for循环7 一次输出 sun-----------sat 

 

 

 

例二:若将星期用引号引住,则只循环一次,因为编译器认为引号中为一个字符

       

输出结果为:::

  

for循环注意::

  在上面例子中,在for所在行变量day是没有加“$“符号的,二在循环体内,echo所在行变量$day时必须加”$“符号的。。。。

while循环

while循环的结构为:

  while[condtion]

   do

     #code block

  done

until循环

until循环的基本结构::

until [condtion]

 do

   #code block

done

 

while until 的区别在于 while是条件为真时执行,until是条件为假时执行。

case语句

bash中的case语句与C语言中的switch语句功能类似,可以用于多项分支控制

 

case “$var” in

 condtion1);;

contion2);;

 

default statements;;

esac

注意是两个双引号

 

 

例::

 

输出结果:::

 

 

 

qcd 功能介绍:

qcd –s  

qcd –e

如果工作目录很长,用cd切换很不方便,则利用qcd –s

qcd -s /home/code/hand/lesson/

  在运行 qcd –e  之后就会直接出现/home/code/hand/lesson/ 然后再选择目录即可

 

 

 

qcd –d  是删除目录

qcd –l  列出所有的目录

qcd –c  是删除所有目录

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值