嵌入式学习1——Linux系统的环境的基础操作

时间:2021-04-05 18:37:41
    Linux是一种开源的操作系统,受到了许多开发者的欢迎。Linux系统环境完全由C程序编译而成,因此在Linux中开发、调试C程序有着得天独厚的优势。建议在Windows下安装VMware,在其内部安装界面友好的Ubuntu操作系统,并且进行开发环境vim的配置。以上内容可以参考相关的文章,这里不作为重点。
     在Linux操作系统中全部的命令都可以在Terminal(命令行)环境下进行(打开终端:ctrl + alt + t)。
 
linux@ubuntu:~$ 
 其中:
 “linux”代表当前用户的用户名;
 “@”为分隔符;
 “ubuntu”为主机名;
 “~”表示home家目录(每次打开Terminal必然处在家目录下,类似于windows下的文件夹);
 “$”为shell命令提示符。
 
     下面看一些Linux C语言里常用的命令:
 1、pwd:显示当前用户所在的路径。
 
linux@ubuntu:~$ pwd
/home/linux
linux@ubuntu:~$ 

     其中:
 第一个“/”表示根目录,根目录也是Linux的起始目录;
 第二个“/”表示分隔符。在这里引申出一个概念:绝对路径和相对路径。绝对路径是以根目录开始的路径,也就是以“/”开始的路径。而相对路径定义为不是以“/”开始的路径。
 
 2、(1)ls:(list)列出当前路径下的内容。
 
linux@ubuntu:~$ ls
core     Documents  examples.desktop  Pictures  Templates  vimconfig
Desktop  Downloads  Music             Public    Videos     vimconfig.tar.bz2

 (2)ls 路径名:列出指定路径下的内容。(比如:列出Documents文件目录下的全部内容)
linux@ubuntu:~$ ls Documents/
4  5  6  7  a.out  core  Cprograme  Shuzu.c

 (3)ls -a :(ALL)列出当前路径下所有内容,包括隐藏文件(隐藏文件在Linux中以.开头)。
linux@ubuntu:~$ ls -a
.                   .compiz-1  examples.desktop  .ICEauthority     Public         vimconfig.tar.bz2
..                  .config    .fontconfig       .local            .pulse         .viminfo
.apport-ignore.xml  core       .gconf            .mission-control  .pulse-cookie  .vim_mru_files
.bakvim             .dbus      .gksu.lock        .mozilla          Templates      .vimrc
.bash_history       Desktop    .gnome2           Music             .thumbnails    .Xauthority
.bash_logout        .dmrc      .gstreamer-0.10   .pam_environment  Videos         .xinput.d
.bashrc             Documents  .gtk-bookmarks    Pictures          .vim           .xsession-errors
.cache              Downloads  .gvfs             .profile          vimconfig      .xsession-errors.old

     这里单独的“.”表示home目录,而“..”表示上一级目录,以.开头的文件在(1)中并没有显示,但是在这里全部显示出来了。
 (4)ls -l:(list)以列表的方式显示当前路径下的内容。
linux@ubuntu:~$ ls -l
total 4344
-rw------- 1 linux linux 23531520  6月 25  2015 core
drwxr-xr-x 2 linux linux     4096  4月  3 08:32 Desktop
drwxr-xr-x 7 linux linux     4096  4月 12 10:38 Documents
drwxr-xr-x 2 linux linux     4096  6月 25  2015 Downloads
-rw-r--r-- 1 linux linux     8445  6月 25  2015 examples.desktop
drwxr-xr-x 2 linux linux     4096  4月 11 17:23 Music
drwxr-xr-x 2 linux linux     4096  6月 25  2015 Pictures
drwxr-xr-x 2 linux linux     4096  6月 25  2015 Public
drwxr-xr-x 2 linux linux     4096  6月 25  2015 Templates
drwxr-xr-x 2 linux linux     4096  6月 25  2015 Videos
drwxr-xr-x 3 linux linux     4096  7月 15  2013 vimconfig
-rwxrw-rw- 1 linux linux   799978  7月  2  2014 vimconfig.tar.bz2
linux@ubuntu:~$ 

     我们依次来看一下这里所有内容分别表示什么:
     “d”代表“文件目录”,而“—”代表文件;
     第一个“rwx”表示当前用户(u)的操作权限,“r”(READ)表示读权限,“w”(WHITE)表示写入权限,“x”(EXECUTE)表示可执行权限,“-”表示没有对应的权限;
     同理,第二个“rwx”表示当前用户组(g)所拥有的权限,第三个“rwx”表示其他用户(o)的权限;(*当前用户组可以是你的开发团队中的其他成员,而其他用户可以是你所服务的客户)
     “4096”为系统默认文件的大小(如果文件大小超过4096,则显示实际大小,文件大小的最小单位为4096);
     “Apr 2 17:30”表示最后一次修改文件的时间,也叫时间戳;
     “Desktop”即文件或文件目录的名称。

 3、man 手册的使用(类似于linux_ C的使用说明)
 (1)man 1 需要搜索的命令:可以获得该命令的命名、形式、描述等信息。(比如:搜索pwd)
 
linux@ubuntu:~$ man 1 pwd//回车后会跳转至如下界面,按q即可退出
PWD(1)                                            User Commands                                           PWD(1)
NAME
       pwd - print name of current/working directory
SYNOPSIS
       pwd [OPTION]...
DESCRIPTION
       Print the full filename of the current working directory.
       -L, --logical
              use PWD from environment, even if it contains symlinks
(2)man 2 系统调用:不经常用。
(3)man 3 需要搜索的库函数:可以查看C程序中库函数的相关描述。(比如:搜索stdio)
linux@ubuntu:~$ man 3 stdio//回车后会跳转至如下界面,按q即可退出
STDIO(3)                                    Linux Programmer's Manual                                   STDIO(3)
NAME
       stdio - standard input/output library functions
SYNOPSIS
       #include <stdio.h>
       FILE *stdin;
       FILE *stdout;
       FILE *stderr;
DESCRIPTION
       The standard I/O library provides a simple and efficient buffered stream I/O interface.  Input and output
       is mapped into logical data streams and the physical I/O characteristics are  concealed.   The  functions
       and macros are listed below; more information is available from the individual man pages.

 4、(1)cd:切换路径(默认cd切换回/home/linux目录)
 
linux@ubuntu:~$ cd
linux@ubuntu:~$ pwd
/home/linux

 (2)cd 路径:切换到指定路径。(比如:切换到Documents目录)
linux@ubuntu:~$ cd Documents/
linux@ubuntu:~/Documents$ pwd
/home/linux/Documents

 (3)cd ..:回到上一层目录,类似的可以查看前文说过的在ls -a命令下的相关内容。
 
 (4)cd -:回到上一次的工作目录,类似于Windows下的路径撤销命令。
 5、mkdir 文件夹名:新建文件目录(文件夹)。
    touch 文件名:新建普通文件。这里如果文件不存在,就执行“创建新的文件”,如果文件存在就执行"刷新时间戳"。
linux@ubuntu:~/Documents$ mkdir aquarices
linux@ubuntu:~/Documents$ ls
4  5  6  7  a.out  aquarices  core  Cprograme  Shuzu.c
linux@ubuntu:~/Documents$ cd aquarices
linux@ubuntu:~/Documents/aquarices$ touch 1.c
linux@ubuntu:~/Documents/aquarices$ ls
1.c
linux@ubuntu:~/Documents/aquarices$ 
   
     上面的命令执行了在/Documents文件目录下创建了aquarices文件目录并查看,然后进入aquarices文件目录下创建了1.c文件并查看,以上几个命令做到一个综合的应用,可以基本上脱离鼠标对Linux操作系统进行切换操作。
     下面看一些针对文件本身的操作:
 
 6、rm 文件名:删除文件。
    rm -r 文件目录名:删除目录文件。
 可以将前文创建文件的全部删除。
linux@ubuntu:~/Documents/aquarices$ rm 1.c
linux@ubuntu:~/Documents/aquarices$ ls
linux@ubuntu:~/Documents/aquarices$ cd ..
linux@ubuntu:~/Documents$ rm -r aquarices/
linux@ubuntu:~/Documents$ ls
4  5  6  7  a.out  core  Cprograme  Shuzu.c
    7、cp 路径1/文件1(想要拷贝的文件) 路径2/文件2(拷贝之后的文件):复制粘贴,文件2可以选择重命名,如果是目录文件需要加选项参数-r。
    mv 路径1/文件1(想要剪切的文件) 路径2/文件2(剪切后文件的状态):剪切,可以选择重命名,如果是目录文件不需要加-r。
    *备注:可以看到在Linux中复制和剪切都伴随着粘贴操作,这和Windows是很大的不同。
以上。