Linux编程基础知识进阶篇(指令)

Linux编程基础知识进阶篇(指令),第1张

linux常用的语言就是shell和python,首先我们得先了解语言的概念

<<-EOF

EOF

编写一个简单的bash档如下:

我们可以看到用./执行bash档时,没有进入到/home目录下,这种我们称为 在子shell中执行 ,其不影响当前shell的状况(有时候执行成功没有效果的原因)。但是无论是. 执行还是source执行我们都成功进入了home路径下,这我们称之为 在当前shell执行

su nologinshell 不加载用户的shell

su - loginshell 加载用户的shell

可以很明显的看出来,当用不加载用户的shell加载用户时,是不会具有当前加载用户的权限的,很像windows中的游客模式

history历史记录缓存

~/.bash_history退出后写入缓存

~/.bash_logout退出后执行

在这一层,顺带按图索骥,理解一下linux系统开机的历程。红字:系统层开机/切换用户历程;蓝字:用户层开机/切换用户历程;黄字:用户层关机历程。

曾经玩过一个游戏:在用户指令关机时,会有一辆小火车开过,所以我们可以把调用小火车开过的程式调用写在?

1、命令文件的自动补齐shift

2、命令的历史记忆功能:上下键、!number 执行第多少条命令、

!string 找到最近以string开头的命令、!&上一个命令最后的参数、

!! 执行上一个命令、^R 搜索历史命令

3、别名功能:alias查看别名、unalias取消别名、(命名前加\斜线跳过别名)

alias xx=’xx’ 定义临时别名、vim ~/.bashrc定义永久别名

4.快捷键:^D退出、^A 光标移动到命令最前、^E光标移动到命令最后、

^L 清屏、^U 往前的删掉、^K往后的删掉、^Y撤销、^M 回车

^S 锁屏、^Q 解除锁屏

5.前后台作业控制:&后台不保留、nohup 后台保留、screen

&& ||(命令返回值echo &?)

*任意多个字符

?任意一个字符

[]匹配括号内任意一个字符

()在子shell中执行

{}集合

\转义字符

注意点:echo -e “a\tb”

$? 前一条命令的执行成功与否

$1 传入的第一个参数 $2 $3 位置变量

没有使用环境变量的必要性

练习内容:读取用户指定文档的ip连通性

bc计算器

假设我们定义了一个变量为:

记忆的方法为:

利用${ } 还可针对不同的变数状态赋值(没设定、空值、非空值):

标准用法,当然是用makefile

把下面的内容存入一个文件,名字为 makefile, 这个makefile与 .c 文件放在一起,注意 gcc那行前面不是空格,必须是 tab

hello : helloworld.c

gcc -o hello -lpthread -lminigui -ljpeg -lpng -lz

以后要编译的时候直接用命令 make 即可。 并且,如果你的 helloworld.c 没有改变了话,gcc是不会被执行的。

makefile很好很强大,我上面的例子,是最弱智,最原始的用法,只为方便楼主初学,建议你去找本书学一下吧,做软件的必学

学习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编辑器后自动进入命令模式。从编辑模式切换到命令模式使用&ldquoesc&rdquo键,从命令模式切换到编辑模式使用&ldquoA&rdquo、&ldquoa&rdquo、&ldquoO&rdquo、&ldquoo&rdquo、&ldquoI&rdquo、&ldquoi&rdquo键。

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字符串。其中,&ldquos/&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结尾的文件中查找包含&lsquoaapt&rsquo关键字的地方

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 &rsquols -l | fgrep joe&rsquo,想找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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7272722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存