成都网站建设设计

将想法与焦点和您一起共享

linux简单命令的实现 linux系统简单命令

linux基本命令

Linux 对我们的生活产生了巨大的冲击。至少你的安卓手机使用的就是 Linux 核心。尽管如此,在第一次开始使用 Linux 时你还是会感到难以下手。因为在 Linux 中,通常需要使用终端命令来取代 Windows 系统中的点击启动图标操作。但是不必担心,这里我们会介绍 10 个 Linux 基本命令来帮助你开启 Linux 神秘之旅。

创新互联建站是一家专注于网站设计制作、成都做网站与策划设计,贡山网站建设哪家好?创新互联建站做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:贡山等地区。贡山做网站价格咨询:18982081108

帮助新手走出第一步的 10 个 Linux 基本命令

当我们谈论 Linux 命令时,实质上是在谈论 Linux 系统本身。这短短的 10 个 Linux 基本命令不会让你变成天才或者 Linux 专家,但是能帮助你轻松开始 Linux 之旅。使用这些基本命令会帮助新手们完成 Linux 的日常任务,由于它们的使用频率如此至高,所以我更乐意称他们为 Linux 命令之王!

让我们开始学习这 10 条 Linux 基本命令吧。

1. sudo

这条命令的意思是“以超级用户的身份执行”,是 SuperUserDo 的简写,它是新手将要用到的最重要的一条 Linux 命令。当一条单行命令需要 root 权限的时候,sudo命令就派上用场了。你可以在每一条需要 root 权限的命令前都加上sudo。

$ sudo su

2. ls

跟其他人一样,你肯定也经常想看看目录下都有些什么东西。使用列表命令,终端会把当前工作目录下所有的文件以及文件夹展示给你。比如说,我当前处在 /home 文件夹中,我想看看 /home 文件夹中都有哪些文件和目录。

/home$ ls

在 /home 中执行ls命令将会返回类似下面的内容:

imad lost+found

3. cd

变更目录命令(cd)是终端中总会被用到的主要命令。它是最常用到的 Linux 基本命令之一。此命令使用非常简单,当你打算从当前目录跳转至某个文件夹时,只需要将文件夹键入此命令之后即可。如果你想跳转至上层目录,只需要在此命令之后键入两个点 (..) 就可以了。 举个例子,我现在处在 /home 目录中,我想移动到 /home 目录中的 usr 文件夹下,可以通过以下命令来完成操作。

/home $ cd usr

/home/usr $

4. mkdir

只是可以切换目录还是不够完美。有时候你会想要新建一个文件夹或子文件夹。此时可以使用 mkdir 命令来完成操作。使用方法很简单,只需要把新的文件夹名跟在 mkdir 命令之后就好了。

~$ mkdir folderName

5. cp

拷贝-粘贴copy-and-paste是我们组织文件需要用到的重要命令。使用 cp命令可以帮助你在终端当中完成拷贝-粘贴操作。首先确定你想要拷贝的文件,然后键入打算粘贴此文件的目标位置。

$ cp src des

注意:如果目标目录对新建文件需要 root 权限时,你可以使用 sudo命令来完成文件拷贝操作。

6. rm

rm 命令可以帮助你移除文件甚至目录。如果不希望每删除一个文件都提示确认一次,可以用-f参数来强制执行。也可以使用-r参数来递归的移除文件夹。

$ rm myfile.txt

7. apt-get

这个命令会依据发行版的不同而有所区别。在基于 Debian 的发行版中,我们拥有 Advanced Packaging Tool(APT)包管理工具来安装、移除和升级包。apt-get 命令会帮助你安装需要在 Linux 系统中运行的软件。它是一个功能强大的命令行,可以用来帮助你对软件执行安装、升级和移除操作。

在其他发行版中,例如 Fedora、Centos,都各自不同的包管理工具。Fedora 之前使用的是 yum,不过现在 dnf 成了它默认的包管理工具。

$ sudo apt-get update

$ sudo dnf update

8. grep

当你需要查找一个文件,但是又忘记了它具体的位置和路径时,grep命令会帮助你解决这个难题。你可以提供文件的关键字,使用grep命令来查找到它。

$ grep user /etc/passwd

9. cat

作为一个用户,你应该会经常需要浏览脚本内的文本或者代码。cat命令是 Linux 系统的基本命令之一,它的用途就是将文件的内容展示给你。

$ cat CMakeLists.txt

10. poweroff

最后一个命令是 poweroff。有时你需要直接在终端中执行关机操作。此命令可以完成这个任务。由于关机操作需要 root 权限,所以别忘了在此命令之前添加sudo。

$ sudo poweroff

总结

如我在文章开始所言,这 10 条命令并不会让你立即成为一个 Linux 大拿,但它们会让你在初期快速上手 Linux。以这些命令为基础,给自己设置一个目标,每天学习一到三条命令,这就是此文的目的所在。

【Linux】实现一个简单的shell命令解释器

姓名:罗学元       学号:21181214375     学院:广州研究院

【嵌牛导读】shell命令解释器该包含哪些部分

【嵌牛鼻子】shell命令解释器该包含哪些部分

【嵌牛提问】shell命令解释器该包含哪些部分

我们所做的这个简单的shell命令解释器可以实现简单的常用的基本命令,如ls、pwd、cd、cd - 、cd ~ 等

根据简单命令的定义,它的第一个参数是要执行的命令,后面的参数作为该命令的参数。

要执行的命令有两种情况:

一种是外部命令: 也就是对应着磁盘上的某个程序,例如 pwd、ls等等。对于这种外部命令,我们首先要到指定的路径下找到它,然后再执行它。

另一种是内部命令:内部命令并不对应磁盘上的程序,例如cd等等,它需要shell自己来决定该如何执行。例如对 cd 命令,shell就应该根据它后面的参数改变当前路径。

对于外部命令,需要创建一个子进程来执行它,本质就是fork+exec

#include stdio.h

#include stdlib.h

#include assert.h

#include string.h

#include pwd.h

#include sys/utsname.h

#include sys/types.h

#include unistd.h

#define MAX 10

#define STRLEN 128

#define PATH "/bin/" //系统bin路径位置

char OLDPWD[STRLEN]={0}; //记录上一次的命令,为了cd -这条命令

//================================================================================

//每次敲回车输出当前所在用户信息

//普通用户和root用户的提示符区别

void Printf_Info()

{

char flag='$';

struct passwd *pw=getpwuid(getuid());

assert(pw!=NULL);

//uid为0则为root用户

if(pw-pw_uid==0)

{

flag='#';

}

struct utsname hostname; //主机名

uname(hostname);

char node[STRLEN]={0};

strcpy(node,hostname.nodename); //获取网络上的名称

char* name=strtok(node,".");

//获取绝对路径

char path[STRLEN]={0};

getcwd(path,STRLEN-1);

char*p=path+strlen(path); //p指向绝对路径的末尾

while(*p!='/')

{

p--;

}

//p指向路径末尾往前的第一个‘/’位置处

if(strlen(path)!=1)

{

p++; //++前,p-'/'

}

if(strcmp(path,pw-pw_dir)==0)

{

p="~";

}

printf("\033[;32mMyBash[%s@%s %s]%c\033[0m",pw-pw_name,name,p,flag);

//  \033[47;31mThis is a color test\033[0m  设置打印结果的颜色

fflush(stdout);

}

//================================================================================

void Mycd(char*path)

{

//第一个字符串为cd而第二为空 如:cd 则结束本轮循环

if(path==NULL)

{

exit(0);

}

//cd ~ 回到用户根目录

if(strcmp(path,"~")==0)

{

    struct passwd*pw=getpwuid(getuid());

    path=pw-pw_dir;

}

//cd - 回到上一次的位置

if(strcmp(path,"-")==0) 

{

  //若是第一次输入命令,则cd -命令不存在!

    if(strlen(OLDPWD)==0)

    {

        printf("\033[;31mMyBash:cd:OLDPWD not set\n\033[0m");

        return ;

    }

    //否则把上一次的命令给path

    path=OLDPWD;

}

//getpwd记录当前工作目录的绝对路径

char oldpwd[STRLEN]={0};

getcwd(oldpwd,STRLEN-1);

if(-1==chdir(path))//反之则不是空,则通过chdir系统调用进入到该目录中

{

    char err[128]="\033[;31mMybash: cd \033[0m";

    strcat(err,path);

    perror(err);

}

//每次执行完cd命令后,把工作路径赋给OLDPWD

strcpy(OLDPWD,oldpwd);

}

//================================================================================

//命令分割函数

void Strtok_cmd(char*buff,char*myargv[])

{

char *s=strtok(buff," "); //分割输入的字符串

if(s==NULL) //如果s为空,则进入下一轮循环

{

exit(0);

}

myargv[0]=s; //把分割出来的第一个字符串放在myargv[0]中

int i=1;

while((s=strtok(NULL,""))!=NULL) //把后续分割出来的字符串依次存放在数组中

{

myargv[i++]=s;

}

}

//===============================================================

int main()

{

while(1)

{

char buff[128]={0};

Printf_Info();

//从终端获取命令存入buff中

fgets(buff,128,stdin);

buff[strlen(buff)-1]=0;

char *myargv[MAX]={0};

//分割输入的命令

Strtok_cmd(buff,myargv);

//如果输入exit则退出循环

if(strcmp(myargv[0],"exit")==0)

{

exit(0);

}

//如果分割出来的第一个字符串为cd

else if(strcmp(myargv[0],"cd")==0)

{

Mycd(myargv[1]);

continue;

}

//若是系统调用,直接替换fork+exec

pid_t pid=fork();

assert(pid!=-1);

if(pid==0)

{

char path[256]={0};

if(strncmp(myargv[0],"./",2)!=0 strncmp(myargv[0],"/",1)!=0)

{

//先把路径放入path中

strcpy(path,PATH);

}

//进行命令拼接,路径+名称

strcat(path,myargv[0]);

//替换进程 例如:/bin/ls

execv(path,myargv);

perror("\033[;31mexecv error\033[0m");

}

//处理僵死进程

else

{

wait(NULL);

}

}

}

运行结果如下 :

异常处理如下:

若是第一次运行程序,则不能使用cd - 命令,因为此时还没有历史路径

若进入一个不存在的目录则会报错,没有这个文件或目录

若直接输入一个不存在的无法识别的命令,也会报错。

Linux常用基本命令大全介绍

学习Linux系统,命令是最基础的一部分,有着很重要的地位,所以入门必须掌握好常用命令。下面由我为大家整理了Linux系统常用的基本命令入门篇,希望对大家有帮助!

Linux系统常用的基本命令入门篇一、基础命令

1.Linu x的进 入与退出系统

进入Linux系统:

必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:

1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。

2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。

一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。影响系统的正常运行。

用户登录分两步:第一步,输入用户的登录名,系统根据该登录名识别用户;第二步,输入用户的口令,该口令是用户自己设置的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。

当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:

[root@loclhost/root] #

这时就可以对系统做各种操作了。注意超级用户的提示符是ldquo;#rdquo;,其他用户的提示符是ldquo;$rdquo;。

2.修改口令

为了更好的保护用户帐号的安全,Linux允许用户随时修改自己的口令,修改口令的命令是passwd,它将提示用户输入旧口令和新口令,之后还要求用户再次确认新口令,以避免用户无意中按错键。如果用户忘记了口令,可以向系统管理员申请为自己重新设置一个。

3.虚拟控制台

Linux是一个真正的多用户 操作系统 ,它可以同时接受多个用户登录。Linux还允许一个用户进行多次登录,这是因为Linux和UNIX一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台进行多次登录。虚拟控制台的选择可以通过按下Alt键和一个功能键来实现,通常使用F1-F6例如,用户登录后,按一下Alt-F2键,用户又可以看到"login:"提示符,说明用户看到了第二个虚拟控制台。然后只需按Alt-F1键,就可以回到第一个虚拟控制台。 一个新安装的Linux系统默认允许用户使用Alt-F1到Alt-F6键来访问前六个虚拟控制台。虚拟控制台可使用户同时在多个控制台上工作,真正体现Linux系统多用户的特性。用户可以在某一虚拟控制台上进行的工作尚未结束时,切换到另一虚拟控制台开始另一项工作。

退出系统

不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit命令即可。

4.查看命令帮助信息

man命令

man命令用于查询命令和程序的使用 方法 和参数。

例如:

man ls

将显示ls命令的基本格式和使用方法

Linux系统常用的基本命令入门篇二、关机重启命令

首先,是关机/重启命令,仅在虚拟机时使用,实际工作中用不到

reboot 一般不跟参数使用,输入指令即可重启

shutdown 一般需要跟参数,例:

shutdown -r 延时多少分钟重启,一般使用now

shutdown -r now 立即重启

shutdown -f 强制重启

跟windows一样,linux也存在注销功能

exit

1)halt

halt 可不接参数

halt -f 强制关机

2)poweroff

poweroff 可不接参数使用

poweroff -f 强制关机

3)init 0

4)shutdown 不可单独使用

shutdown -h 分钟数 延时多久关机

shutdown -h now 立即关机

Linux系统常用的基本命令入门篇三、vi编辑

vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。

Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。

vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。

默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用ldquo;escrdquo;键,从命令模式切换到编辑模式使用ldquo;Ardquo;、ldquo;ardquo;、ldquo;Ordquo;、ldquo;ordquo;、ldquo;Irdquo;、ldquo;irdquo;键。

vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号ldquo;:rdquo;开头输入。常用内置命令如下:

1 Ctrl+u:向文件首翻半屏;

2 Ctrl+d:向文件尾翻半屏;

3 Ctrl+f:向文件尾翻一屏;

4 Ctrl+b:向文件首翻一屏;

5 Esc:从编辑模式切换到命令模式;

6 ZZ:命令模式下保存当前文件所做的修改后退出vi;

7 :行号:光标跳转到指定行的行首;

8 :$:光标跳转到最后一行的行首;

9 x或X:删除一个字符,x删除光标后的,而X删除光标前的;

10 D:删除从当前光标到光标所在行尾的全部字符;

11 dd:删除光标行正行内容;

12 ndd:删除当前行及其后n-1行;

13 nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;

14 p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;

15 P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;

16 /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;

17 ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;

18 a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,ldquo;s/rdquo;表示进行替换操作;

19 a:在当前字符后添加文本;

20 A:在行末添加文本;

21 i:在当前字符前插入文本;

22 I:在行首插入文本;

23 o:在当前行后面插入一空行;

24 O:在当前行前面插入一空行;

25 :wq:在命令模式下,执行存盘退出操作;

26 :w:在命令模式下,执行存盘操作;

27 :w!:在命令模式下,执行强制存盘操作;

28 :q:在命令模式下,执行退出vi操作;

29 :q!:在命令模式下,执行强制退出vi操作;

30 :e文件名:在命令模式下,打开并编辑指定名称的文件;

31 :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;

32 :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;

33 :set nu:在命令模式下,用于在最左端显示行号;

34 :set nonu:在命令模式下,用于在最左端不显示行号;

35 :1,3y 复制第一行到第三行

36 :1,3d 删除第一行到第三行

37 :1,3s/str/str_new/g 替换第一行到第三行中的字符串

38 :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符

39 :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行

Linux常用命令一、查询相关

find

按规则查找某个文件或文件夹,包括子目录

find . -name '_sh' -- 以.sh结尾的文件

find . -name '_hannel_ -- 包含channel字符的文件

find . -name 'build_ -- 以build开头的文件

find . -name 'abc??' -- abc后面有两个字符的文件

grep

查找内容包含指定的范本样式的文件,Global Regular Expression Print

grep -n pattern files -- 规则 -n表示显示行号

grep -n 'PostsActivity' AndroidManifest.xmlgrep -n '\d' AndroidManifest.xmlgrep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方

grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并显示行号

ps -e | grep java -- 所有java进程

ps -e | grep -i qq --所有qq进程,不区分大小写

find . -name '_hannel.xml' | xargs grep -n 'aapt' -- 在以channel.xml结尾的文件中查找包含lsquo;aaptrsquo;关键字的地方

ls | grep 'channel' -- 包含channel关键字的文件

which

在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

which zipwhich grep

Linux常用命令二、查看命令

tail

tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]

从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。

tail -f test.log,循环查看文件内容,Ctrl+c来终止

tail -n 5 test.log,显示文件最后5行内容

tail -n +5 test.log,从第5行开始显示文件

more

more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file...]

more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。

more +3 test.log,显示文件中从第3行起的内容

more -5 test.log,设定每屏显示行数

ls -l | more -5,每页显示5个文件信息

more +/day3 test.log,查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出

less

less [options] [file...]

与more命令一样,less命令也用来分屏显示文件的内容。但是二者存在差别:less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。

less test.log,查看文件

ps -ef | less,查看进程信息并通过less分页显示

history | less,查看命令历史使用记录并通过less分页显示

less test1.log test2.log,浏览多个文件,n和p切换文件

watch

watch [options] command

每隔一段时间重复运行一个命令,默认间隔时间是2秒。要运行的命令直接传给shell(注意引用和转义特殊字符)。结果会展示为全屏模式,这样你可以很方便的观察改变

watch -n 60 date,执行date命令每分钟一次,输入^C 退出

watch -d ls -l,查看目录变化

watch -d rsquo;ls -l | fgrep joersquo;,想找joe用户的文件

watch -d 'ls -l|grep scf',监测当前目录中 scf' 的文件的变化

watch -n 10 'cat /proc/loadavg',10秒一次输出系统的平均负载

watch -n 1 -d netstat -ant,每隔一秒高亮显示网络链接数的变化

watch -n 1 -d 'pstree | grep http',每隔一秒高亮显示http链接数的变化

Linux常用命令三、文件相关

vi

vi file

按i键,进入编辑模式

按esc键,进入命令模式

:w 保存文件但不退出vi

:w file 将修改另外保存到file中,不退出vi

:w! 强制保存,不推出vi

:wq 保存文件并退出vi

:wq! 强制保存文件,并退出vi

q: 不保存文件,退出vi

:q! 不保存文件,强制退出vi

:e! 放弃所有修改,从上次保存文件开始再编辑

chmod

change mode,变更文件或目录的读、写、运行权限

chmod [-cfvR] [--help] [--version] mode file...

mode:权限设定字串,格式如下 : [ugoa...][[+-=][rw xX ]...][,...]

u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

chmod也可以用数字来表示权限,语法为:chmod abc file,如chmod 777 file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1

chmod 777 file,等同于 chmod a=rwx file

chmod ug=rwx,o=x file,等同于 chmod 771 file

chmod 4755 filename,可使此程序具有root的权限

ls -l 可以查看列出当前用户的文件权限

zip

zip -r filename.zip filesdir

zip -r test.zip ./_把当前所有文件压缩到test.zip

zip -r test.zip test,把test文件所有文件及目录,要是到test.zip

zip -d test.zip test.txt,删除压缩文件中test.txt文件

zip -m test.zip ./test.txt,向压缩文件中test.zip中添加test.txt文件

zip -r test.zip file1 file2 file3 filesdir,处理多个文件和目录,空格隔开

unzip

unzip zip-file,解压到当前目录

unzip -d dst-dir zip-file,解压到指定的目录,-d后为指定目录

unzip -n zip-file,不覆盖已经存在的文件,-n为不要覆盖原有的文件

unzip -n -d dst-dir zip-file,解压到指定的目录,不覆盖已经原有的文件

unzip -o -d dst-dir zip-file,-o不必先询问用户覆盖原有文件

unzip -l zip-file,仅查看压缩文件内所包含的文件

tar

tar cvf test.tar test,把test下所有文件和目录做备份tar czvf test.tar.gz test,把test下所有文件和目录做备份并进行压缩tar xzvf test.tar.gz,把这个备份文件还原并解压缩tar tvf test.tar | more,查看备份文件的内容,并以分屏方式显示在 显示器 上

tar czvf test.tar.gz test --exclude=test/svn,备份压缩并排除目录

touch

linux基本操作命令

linux基本操作命令:pwd命令、cd命令、ls命令、cat命令、cp命令。

1、pwd命令

使用pwd命令找出您所在的当前工作目录的路径。该命令将返回一个绝对(完整)路径,该路径基本上是所有以/开头的目录的路径。绝对路径的一个示例是/home/username。

2、cd命令

要浏览Linux文件和目录,请使用cd命令。根据您所在的当前工作目录,它需要目录的完整路径或名称。假设您位于/home/username/Documents中,并且想要转到Documents的子目录Photos。

3、ls命令

LS命令用于查看目录的内容。默认情况下,此命令将显示当前工作目录的内容。如果要查看目录的内容,请键入ls,然后键入目录的路径。

4、cat命令

cat(连接的缩写)是Linux中最常用的命令之一。它用于在标准输出(sdout)上列出文件的内容。要运行此命令,请键入cat,然后输入文件名及其扩展名。

5、cp命令

使用cp命令将文件从当前目录复制到另一个目录。例如,命令cpscenery.jpg/home /username/Pictures将在您的Pictures目录中创建一个Scene.jpg副本(来自当前目录)。


分享文章:linux简单命令的实现 linux系统简单命令
URL网址:http://chengdu.cdxwcx.cn/article/dojjiij.html