Linux 基本操作

  这篇博客,是为了记录我学习入门Linux的概要,所以具体的知识就不赘述,网上都有,只列出清单及一些要注意的地方。

 关于根目录和主目录:

 根目录,是指Linux文件系统的顶级目录/;家目录,是指用户目录,在/home下,以用户名作为目录,可以用 ~ 表示。

 /root 如果你是以超级用户的身份登录的,这个就是超级用户的主目录。

 /home 如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该用户的主目录。

 cd /      进入根目录       cd  /tmp              进入根目录下一级子目录tmp
 cd ~/(或cd ~) 进入家目录       cd  ~/c(或cd /home/admap7/c)   进入家目录下一级子目录c

 一、常用的Linux操作命令

     1.查看目录命令 pwd

     2.打开目录命令 cd 

       cd c 或cd c/ 进入c目录

       cd / 是打开根目录,cd ~是打开用户的主目录,如果是root用户则相应地打开/root目录。

     3.查看目录命令 ls     查看的是当前目录下的文件夹或文件

       多个参数是可以组合的,如ls -aF表示显示所有的文件,然后添加一个标志

       可以只显示某个文件夹或文件,如ls -l a.c

       使用"*"可以匹配文件名中的任意字符串,如ls -l *.c。

       使用"?"可以匹配一个字符,如ls 0?.c 表示第一个字符为0,扩展名为.c,文件名有两个字符的文件。

       只显示当前下的目录: ls -F | grep /$    # -F使得ls将文件分类,通过在文件后面加一些标记来实现
                 ls -F | grep /
                ls -l | grep ^d
                ls -d */

                ls -ld */

      显示其他目录下的文件或文件夹:ls 完整路径(如果是当前目录子目录,则和cd命令的相对路径一样,直接子目录就可以了)  eg: ls /home/adnap7/c   因而可以在家目录下访问根目录,就像家目录下cd可以进入根目录一样

    4.建立文件命令 touch

       如果需要建立的文件已存在,touch命令可以使文件的最后访问时间变成当前时间。

       touch同ls可在自己目录下跨目录或在其他目录下建立文件。     touch bb/b.txt 跨目录建立文件

    5.建立与删除文件夹命令 mkdirrmdir

       建立目录同ls不一定是在当前目录下,可以在任意一个目录中建立目录,即可在自己目录下跨目录或在其他目录下建立目录。mkdir可以建立多级目录下的目录,但是其父目录必须存在,如果不存在会失败。这时参数-p可以帮忙建立不存在的目录,如mkdir -p mydir1/mydir2,表示在目录mydir1中建立目录mydir2。如果mydir1不存在,则-p会同时建立目录mydir1。

       删除目录同ls可以在自己目录下跨目录或在其他目录下删除目录。mkdir可以删除多级目录下的目录,但是空目录的父目录为空时不会删除。这时可以借助-p命令,如rmdir -p mydir1/mydir2,表示删除目录mydir1中的目录mydir2,在mydir1为空时,会同时删除mydir1和mydir2。rmdir用于删除一个空目录(所以得删光目录下文件才能删目录)

    6.文件复制命令 cp

       使用cp命令复制文件时,cp a(文件)  b(文件),如果b不存在则会创建b并复制;如果b存在则会覆盖目标文件而不给出提示,所以复制时最好使用-i参数。cp -r c/ d/,将目录c中的所有文件和目录复制到目录d中,如果目录d不存在,则建立这个目录。

       cp d/01.c . 表示将目录d中的文件01.c复制到当前目录中

       复制多个文件,如cp *.c c/

   7.文件移动或更名命令 mv

      mv 文件a 文件b 是更名命令;mv 文件a 目录c 是移动命令

      移动多个文件,如mv *.c c/

   8.删除文件与目录命令 rm

      rm 可以删除文件;如果要删除目录,则需rm -r 目录c(rm -r是删除目录和其内容,linux会一步一步指引删文件、删目录)

      rm同ls可以在自己目录下跨目录或在其他目录下删除。

   9.创建链接命令 ln

   10.查看文件信息命令 wc

   11.文件查看命令 cat

      可以显示多个文件的内容,如cat a.c b.c d.c

      将(一个或多个)输出结果定向到一个文件中,如cat a.c b.c c.c >d.c。如果d.c存在,则覆盖式输入;如果不存在,则生成并输入

   12.查看文件视图命令 head 与 tail

   13.文件权限设置命令chmod

      一般格式:chmod (-c/f/v/R) (用户组)+/-/=权限(+/-/=权限)( (用户组)+/-/=权限(+/-/=权限))  文件a

   14.查找文件命令 find

      支持"*"与"?"等通配符,如 find / *.c

   15.man 系统帮助命令

二、文本编辑器VIM的使用

   1.VIM的三种工作模式及切换方法如下图所示:

  2.保存与打开文件命令(在命令模式下):

      VIM中保存文件命令是 :w  ,如 :w    :w /home/adnap7/01.c

      打开文件的命令是 :r

      退出命令 :q  ,未保存就退出会提示你使用 :q! ,可以不保存就退出

      保存并退出 :wq

  3.常用操作

    插入、删除、取消、保存、退出、查找、替换

    插入命令:

i  在光标前插入
I  在当前行首插入
a  在当前光标后插入
A  在当前行尾插入  
o  在当前行之下新开一行
O  在当前行之上新开一行

 

三. 编译与调试

 

  1.1 gcc编译器

    使用gcc编译c或c++程序,也支持多种源程序扩展名

    格式:gcc 1.c    (.c和.C才能直接编译,其他文件还需指定编译语言)

      生成的a.out 还需添加可执行权限:chmod +x a.out ,然后 ./a.out 执行

  1.2 查看gcc的参数

    gcc --help 查看

  1.3 设置输出的文件

    默认情况下所有文件的编译生成文件都是a.out

   命令gcc filename1 -o filename2 可以设置输出的目标文件,eg: gcc  a.c  -o  do

   也可以输出文件到其他目录,               eg: gcc  a.c  -o  /tmp/do

 2. gdb调试程序

四. Shell编程

  shell即是命令语言,也是程序设计语言。

      shell程序可以用简单的代码通过各种系统命令实现强大的功能,在系统设置、服务管理方面有着重要的应用。

  1.bash(shell的一种)的使用

   1.1 bash的内部命令与外部命令软件功能

   1.2 命令补齐功能

      内部命令有exit,export,kill;外部命令是系统的

      开头字母+Tab键

   1.3 命令通配符

    *:匹配一个或多个字符,包括空字符串

    ?: 匹配一个字符,如?abc

   [...]: 匹配括号里列出的任何单字符

   1.4 使用命令的历史记录

    history (n)

   1.5 命令别名

    alias 别名='原来的命令'

    unalias 别名          取消别名

2. Shell程序(是一系列的Linux程序卸载一个文件中)的基本结构

#!/bin/bash
#hello      #后是shell程序的注释
echo 'hello Linux'
echo 'this is a shell file.'

   shell程序保存后,需添加可执行权限,如chmod +x  a.sh;然后./a.sh (shell是一个普通的文本,需添加可执行权限才能执行

3. Shell中的变量

   Shell中的变量是无数据类型的;对一个变量赋值就定义了变量;变量赋值后,在变量前加上$就可访问变量的值(但是反复赋值时不需要加上$);为变量赋的值是没有空格的字符串可以不加引号,有空格的字符串(这其实已经是多个字符串了)则需加引号

     3.1 局部变量(只在当前进程和程序中有效的变量)

          一般写在shell程序中

     3.2 环境变量

          3.2.1 查看环境变量

                    export

          3.2.2 访问环境变量

                    在环境变量前加$,如echo $环境变量

          3.2.3 定义环境变量

                    如export  变量名(一般大写)=1234                     (定义或修改环境变量,=号两侧不能有空格)

        3.3 位置变量

            $1到$9       一般写在shell程序中,等待执行shell程序时在bash中传值,如./13.4.sh 2 4

4  Shell 运算符

    4.1 变量赋值

           使用= ,在bash和shell中都可使用   例如a =123

            shell的变量是动态语言,可以赋不同类型的值(像python)

    4.2  算术运算符(+  -  *  /  **  %  +=  -=  *=  /=  %=)

            可以在bash和shell程序中都使用

           注意:echo 1+2 的结果是1+2。 因为在shell script中变量类型默认为“字符串”,所以若不指定变量类型,1+2是一个“字符串”而不是“计算式”。所以数学计算必须用数学方法表示出来(=赋值例外)

           办法是以下都只适用于整数:1.用let指示数学运算(let表达式内变量不用加$;let必须是完整的算术表达式,即有等号两边)    如 let b=1+2,echo  $b

                      2.使用expr(运算符左右都有空格运算符左右都有空格,如果没有空格表示是字符串连接;不支持幂乘运算;使用乘号时,必须用反斜线\屏蔽其特定含义;expr 可以只有等号右边的计算)       如echo `expr 1 + 2`

                      3.使用$[] 表示数学运算,将数学运算写到中括号中($() 与 ``等效)     如echo $[1+2]

5. 输入(从用户输入或文件读取)和输出(显示到屏幕或保存到文件)

  5.1 echo 命令输出

    echo 后面是没有空格的字符串的话,加不加引号都可以;否则需要加上引号,表示这是一个字符串(变量)

    echo $a       将结果输出到终端

    echo $a >file   将结果保存到文件file中,如果没有文件将会新建一个文件;如果文件已存在,会覆盖以前的文件

    echo $a >>file   将结果追加到文件file中(是在file中换行追加)

   echo输出的内容可以有格式控制字符\c \t \n ,但是echo要加上-e选项:  echo -e 内容   如echo -e "hello\nBeijing"会显示换行

  5.2 read 命令读取信息

    如果只读入一个变量,则会把键盘上输入的所有信息赋值给这个变量。按"Enter"结束输入

    如果输入多个变量,则要用空格将输入的变量隔开。如果输入变量的个数多于需要读取变量的个数,将会把剩余的变量都赋值给最后一个变量。

   如果要从文件中读取数据,在读取语句后添加<filename  (从文件中读取数据时好像只读取第一行的数据;就算需要读取的变量有多个,也是读取第一行)

6. 引号

  没有空格的字符串的话,加不加引号都可以;否则需要加上引号,表示这是一个字符串(变量)  

  双引号和单引号用法相似(引号里不能直接使用$、引号、\、`这些特殊符号)

  反引号(`)用于执行引号中的系统命令,然后将命令的结果返回,可以将结果赋值给一个变量

  反斜线用于对特殊字符(& * + ^ $ ` " | ?)进行转义,因为Shell会认为这些字符代表着相应的运算,无法直接输出这些字符或赋值

7.测试语句(对变量大小、字符串、文件属性等内容进行判断)

 7.1 文件状态测试

   示例:

test -d  ~/c
echo $?

$?保存上一个命令的结果,对于test命令的测试结果,返回0表示测试成功,返回1表示测试失败。所以测试命令本身的值是boolean型的,可以作为流程控制结构的判断条件($?也可以)。

参数:-d -f -L -x -s -w -u -r

 7.2 数值测试

    两种形式:

test 第一个操作数 数值比较符 第二个操作数

[  第一个操作数 数值比较符 第二个操作数  ]

    注意:[ 后面一定要有空格

    数值符有:-eq -le -gt -ne -ge -lt 

 7.3 字符串测试

test 字符串比较符 字符串

test  字符串1 字符串比较符  字符串2

[ 字符串比较符 字符串 ]

[ 字符串1 字符串比较符  字符串2 ]

    字符串比较符有:=      !=      -z     -n

 7.4 逻辑测试

    示例:

[ -w a.txt -a -x a.txt
echo $?

三种逻辑测试:    a      -o      !

8. 流程控制结构

    8.1 if语句

           几种格式:

if 条件
then  命令1
fi

if 条件
then 命令1
else 命令2
fi


if 条件1
then 命令1
elif 条件2
then 命令2
else  命令3
fi

if 条件1;then 命令1
elif 条件2;then 命令2
else 命令3

     8.2 for 语句

            几种格式:

for 变量名 in 列表
do
命令1
命令2...
done


for 变量名            (当省略后面的in关键字时,将接受输入命令时的参数作为循环变量集,eg: ./a.sh  a  s  d  f )
do
命令1
命令2...
done

 

    8.3 until 循环

 

until 条件
do
命令1
...
done

    8.4 while 循环

while 条件
do
命令1
...
done

 

 

 

 

     

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值