广告
返回顶部
首页 > 资讯 > 操作系统 >Linux系统编程常用命令有哪些
  • 548
分享到

Linux系统编程常用命令有哪些

2023-06-28 15:06:02 548人浏览 八月长安
摘要

这篇“linux系统编程常用命令有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux系统编程常用命令有哪些”文章吧

这篇“linux系统编程常用命令有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux系统编程常用命令有哪些”文章吧。

Linux系统编程方法:

如果没有安装GCc和g++编译器的话,可以在终端用命令直接安装,很方便:

sudo apt-get install gcc

sudo apt-get install g++

C语言与C++的编译执行

C语言编译   gcc test.c -o test

C语言执行   ./test

c++编译    g++ test.cpp -o test

C++执行    ./test

以下以C语言为例:

代码用geidt编辑,用gcc编译

1.在主文件夹下新建一个文件夹,取名code

2.在code文件夹下创建一个新文档,取名test.c(如果是C++语言,取名为test.cpp)

3.直接在该文档中写好代码并保存

4.Ctr**l+Alt+T打开终端,进入test.c**所在目录

5.用gcc对test.c进行编译,生成可执行文件test:gcc test.c -o test(如果是C++语言: g++ test.cpp -o test)

6.同样在code目录下,用./test执行代码****

Linux系统编程常用命令有哪些

****

对上图进行解释:

Ctrl+Alt+T打开终端,默认进入主文件夹,通过ls命令,查看主文件夹目录下的内容;

通过cd code进入code文件夹目录;

通过ls命令查看code文件夹目录下的内容;

通过gcc test.c -o test进行编译,并生成可执行文件test

再执行ls命令,可以看到,该目录下多了test这个文件;

通过./test执行test文件;

This is Linux!为执行结果。

Linux下如何实现多文件编程?

假设有三个文件:两个源文件(file1.cpp、file2.cpp)和一个头文件(head.h)

头文件不需要编译,只需要在源文件中包含了这个头文件即可:#include “head.h”

编译多个源文件:g++ -o output file1.cpp file2.cpp

output为可执行文件

Linux系统编程常用命令 :

1)编译应用程序

make -f makefile_5_2 clean
make -f makefile_5_2

2)关于共享目录
在linux虚拟机的/mnt/hgfs下可看到该文件夹

3)cd命令,进入文件夹

cd /mnt/hgfs/

4)复制cp命令

cp  -ri  A/B:******/’ data.txt
hello, world.
abcDEFdefABC
passWord:******
another password:******
上面命令把冒号(:)后面的所有内容替换成6个星号(*),sed s/regexp/replacement/中的/作为一个定界符,任何可以显示的字符都可以,如
sed s;regexp;replacement;
sed s:regexp:replacement:
sed s,regexp,replacement,
……等
$ find /home/owen/test/todelete/ -type d -print |
sed ‘s;/home/owen/test/todelete;/home/owen/test/todel;’ |
sed ‘s/^/mkdir /’ |
sh -x
+ mkdir /home/owen/test/todel/
+ mkdir /home/owen/test/todel/xyz
该命令首先找出/home/owen/test/todelete/这个目录下的所有目录,包括这个目录自身,然后把todelete替换成todel,得到如下结果:
/home/owen/test/todel/
/home/owen/test/todel/xyz
然后在每行前面加上”mkdir “命令创建新的目录。所实现的功能类似cp。

查看系统的密码信息: /etc/passwd
$ more /etc/passwd
owen:x:1000:1000:owen,,,:/home/owen:/bin/bash
每行都是以:分隔的7个字段,分别表示
owen 用户名称
x  加密后的密码
1000  用户ID编号
1000  用户组ID编号
owen,,,  用户姓名,附加其他信息,如联系方式等
/home/owen  用户的根目录
/bin/bash  登录的shell类型

从文本中剪贴部分内容: cut
$ cut -d : -f 1,5 /etc/passwd | grep -E ^m
man:man
mail:mail
messagebus:
mysql:MySQL Server,,,
-d 表示分割符,-f 表示field

连接2个文件,基于字段:join
join quotas.sorted sales.sorted
使用两个文件中第一个字段进行连接,如
quotas.sorted
a b
sales.sorted
a c
连接之后,为a b c
当然可以指定连接的key, -1 2 -2 5, 参考manual

重新编排字段: awk
$ ls -l | awk ‘{ print $8, $5, $1}’ | sort
data.txt 67 -rw-r–r–
finduser 88 -rwxr-xr-x
merge-sales.sh 363 -rwxr-xr-x
note.sh 36 -rwxr-xr-x
nusers 60 -rwxr-xr-x
quotas 58 -rw-r–r–
sales 71 -rw-r–r–
total
这里先列出当前目录下的文件,然后使用awk显示文件名,大小,权限,最后进行排序显示。
awk默认使用空格作为分隔字符。
$ ls -l | awk ‘{ printf “%s %s\t %s\n”, $1, $5, $8}’ | sort
其基本模式如下:

#chapter 4 text process tools

文本排序: sort
$ sort -t : -k 3,3 /etc/passwd
-t指定分隔符,-k指定从哪个字段到哪个字段作为key进行排序

去除重复: uniq
$ sort uniq-data | uniq -c
2 duo
3 tres
1 unus
消除重复,可以控制显示重复的或是未重复的记录

简单的文本格式化命令: fmt
$ more data.txt | fmt -w 50
hello, world.  abcDEFdefABC password:123456
another password:666888

string sort\nbased on lines delimilated by new
line sign
格式化成每行最多50个字符

计算行数、字数和字符数: wc
/usr/share/dict$ more words | grep ^herb | wc -lwc
17      17     165

查看标准输入的前n条记录,或是文件列表中的前n条,或后n条: head, tail
head -n 5 /etc/passwd
sed -e 5q /etc/passwd
显示倒数n条,一般用来查看最近的日志记录
tail -n 5 /etc/passwd

#chapter 5 the magic power of pipe

文字解谜好帮手puzzle-help.sh文件: example
FILES=”
/usr/dict/words
/usr/share/dict/words

pattern=”$1″
egrep -h -i “$pattern” $FILES 2> /dev/null | sort -u -f
使用这个脚本来进行查找具有10个字母的单词,以b开头,第7位不是x就是y:
$ sh puzzle-help.sh ‘^b.{5}[xy].{3}$’ | fmt
beatifying Birdseye’s blarneying Brooklyn’s Bulawayo’s
等价于使用命令:
/usr/share/dict$ more words | egrep -i  ‘^b.{5}[xy].{3}$’| sort
beatifying
Birdseye’s
blarneying
Brooklyn’s
Bulawayo’s

转换或者删除字符:tr
tr [ options ] source-char-list replace-char-list
-c 取source-char-list的反义,即对没有出现在source-char-list中的字符进行转换或删除
-d 删除source-char-list里出现的字符,如删除所有元音字母:
echo hello world | tr -d [aeiou]hll wrld
-s 浓缩重复的字符,如:
echo hello world | tr -s l
helo world
一般会组合来使用,如全部转换成小写字符,所有非字母字符转换成换行符号
echo heLLo WorLd  123 End | tr A-Z a-z | tr -cs A-Za-z ‘\n’
hello
world
end
这里没有包括数字,如果需要包括,则添加A-Za-z0-9就可以了

统计一篇文章中单词出现频率: wf
tr -cs A-Za-z0-9 ‘\n’ |     将非字母字符转换成换行符号,-cs参考第20条笔记
tr A-Z a-z |              全部转换成小写字母
sort |                  排序
uniq -c |             统计频率,结果: 13 the等
sort -k1,1nr -k2 |  首先只取第一个field即数字,按照数字顺序-n逆序-r排序,再对单词以字典顺序排序
sed ${1:-25}q     ${1}获取命令行的第一个参数,如果没有默认为25,后面q表示退出程序

${1:-25}是shell里面的一个参数展开形式,具体如下:
${var:-default-var}
展开方式是:首先查找${var},如果找到,值就为${var},如果没有找到,值就等于default-var

使用(需要chmod +x wf,然后把wf放到$PATH路径下),使用频率最高的:
man awk | wf | pr -c4 -t -w80
292 the             69 are             50 0             40 mawk
169 and             69 string       49 s             40 n
168 is             65 1               48 expr       39 be
155 a               64 if             45 as         38 awk
124 of             52 for             45 or         38 file
118 to             52 with         40 an         38 i
80 in
pr命令,打印格式化,page column for printing
-c4 表示column4,相当于word的分栏操作,这里设置为4栏
-t  表示不显示页头和页尾,如果没有这个,就是一张打印纸那么大
-w80  设置页面宽度,这里是80个字符

最低的呢:
$ man awk | wf 99999 | tail -n 25 | pr -c4 -t -w80
1 typically         1 under          1 values              1 wc
1 u                    1 underscores 1 variations        1 we
1 unaltered         1 unlike        1 variety              1 whidbey
1 unambiguous       1 unnecessary 1 vdiesp              1 writing
1 unbuffered        1 unsafe        1 vertical          1 xaxbxcx
1 unchanged         1 usually        1 via                  1 xhh
1 undefined
我的path
echo $PATH
/home/owen/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

这个程序比较有意思,我们可以算出awk手册里使用了多少个不重复的单词,才1014个,99999这个数没有实际意义,只是很大而已
$ man awk | wf 99999 | wc -l
1014

高频词汇(频率在5次以上,包括5次)个数,尽然是这么得少!
$ man awk | wf 99999 | awk ‘$1 >= 5’ | wc -l
220

学以致用: 标记和自动目录生成
$ more shell笔记.txt | grep -E ‘#’

#chapter 2 shell basic
#chapter 3 search and substitution
#chapter 4 text process tools
#chapter 5 the magic power of pipe

more shell笔记.txt | grep -E ‘^[0-9]+\.’ | sed ‘s/^/@-/’
@-1. 访问脚本从命令行接收到的参数:$n
@-2. 在shell脚本执行时,使用-x打开脚本执行跟踪功能。如: $ sh -x nusers.sh
@-3. 列出系统所支持的所有语言: locale -a
@-4. shell BRE(Basic RE) and ERE(Extended RE)正则表达式简记:
@-5. 向后引用: backreferences
@-6. POSIX字符集: [:alpha:]@-7. ERE(Extended RE)
@-8. 额外的GNU正则表达式运算符: \w
@-9. 进行文本查找替换: sed(steam editor)
@-10. 查看系统的密码信息: /etc/passwd
@-11. 从文本中剪贴部分内容: cut
@-12. 连接2个文件,基于字段:join
@-13. 重新编排字段: awk
@-14. 文本排序: sort
@-15. 去除重复: uniq
@-16. 简单的文本格式化命令: fmt
@-17. 计算行数、字数和字符数: wc
@-18. 查看标准输入的前n条记录,或是文件列表中的前n条,或后n条: head, tail
@-19. 文字解谜好帮手puzzle-help.sh文件: example
@-20. 转换或者删除字符:tr
@-21. 统计一篇文章中单词出现频率: wf
@-22. 学以致用: 标记和自动目录生成

使用sed命令给每条数据添加一个@-前缀,以便与真正的目录混淆。

#chapter 6 variables, repetitions

设置或修改环境变量: export
PATH=$PATH:/home/owen/bin
export PATH
打印环境变量export -p

从shell中删除变量于函数: unset
$ foo=123
$ echo $foo
123
$ unset foo
$ echo $foo
使用unset -f function_name删除函数,默认为-v即删除变量

参数展开: ${varname:-word}
替换运算:
${varname:-word}  如果varname存在且非Null,则返回其值;否则返回word。用途: 如果变量未定义,则使用默认值

${varname:=word}  如果varname存在且非Null,则返回其值;否则设置它的值为word,并返回其值。用途: 如果变量未定义,则设置变量为默认值

${varname:+word}  如果varname存在且非Null,则返回word;否则返回null。用途: 为测试变量的存在。

${varname:?message}  如果varname存在且非Null,则返回其值;否则显示varname:message,并退出当前命令或脚本。用途: 捕捉由于变量未定义所导致的错误
$ echo ${vars:?”undefined, pls check it”}
bash: vars: undefined, pls check it

注意上面的${varname:-word}每个冒号(:)都是可选的,如果没有冒号,条件变为“如果varname存在”,也就是可以为空

更多模式匹配
$ p=/home/jwu/cases/long.file.name
$ echo $p
/home/jwu/cases/long.file.name

${variable#pattern}  如果模式匹配于变量的开头处,则删除匹配的最短部分,返回剩下的部分
$ echo ${p#}
long.file.name

${variable%pattern}  如果模式匹配于变量的结尾处,则删除匹配的最短部分,返回剩下的部分
$ echo ${p%.*}
/home/jwu/cases/long.file

${variable%%pattern}  如果模式匹配于变量的结尾处,则删除匹配的最长部分,返回剩下的部分
$ echo ${p%%.*}
/home/jwu/cases/long

注意,这里使用的pattern,以及shell里其他的地方,如case语句等,不同于前面正则表达式的模式匹配。如上,这里*代表任何一个符号,而.只代表点号本身。

POSIX标准化字符从长度运算符: ${#variable}返回$variable值的长度
$ d=diversification
$ echo $d
diversification
$ echo ${#d}
15

shell特殊变量,访问参数: $#, $@, $*
设置参数: $ set — hello “hi there” greeting
$#  传递到shell脚本或函数的参数总数
$@  传递进来的命令行参数,置于双引号(“”)内,会展开为个别的参数
$ for i in $@
> do echo i is $i
> done
i is hello
i is hi
i is there
i is greeting
注意上面的hi there之间的空格丢失了
$ for i in “$@”
> do echo i is $i
> done
i is hello
i is hi there
i is greeting
加上””会得到每个参数
$*  传递进来的命令行参数,置于双引号(“”)内,会展开为一个单独的参数

shell运算符与C语言类似: + – * /
运算置于$((…))之内,注意是圆括号
具体参考运算表
例:
$((3 && 2))
1
$ echo $((3 > 2))
1
$ echo $((3 > 4))
0
$ echo $(( (3 > 2) || (3 > 4) ))
1
与C及其衍生语言C++, Java, and awk等相同,非0值表示true。

退出状态: $?
$ echo hello
hello
$ echo $?
0
$ e s
e: command not found
$ echo $?
127
POSIX的结束状态
0    命令成功退出
其他状态都是失败退出,如
127  命令找不到

可以在shell脚本中传递一个退出值给它的调用者,如exit 42

判断语句: if-elif-else-fi
if pipeline
then …
elif pipeline
then …
else …
fi

逻辑判断: NOT, AND, OR
NOT  if ! (…)
AND  (…) && (…)
OR   (…) || (…)

test命令: if…
if [ $# -ne 1 ]then
echo Usage: finduser username >&2
exit 1
fi
主要的数字比较有
-eq  equal
-ne  not equal
-lt  less than
-gt  great than
-le  less or equal
-ge  great or equal

#chapter 7 input/output, file, and commands execute

to be continue…

以上就是关于“Linux系统编程常用命令有哪些”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网操作系统频道。

--结束END--

本文标题: Linux系统编程常用命令有哪些

本文链接: https://www.lsjlt.com/news/320260.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux系统编程常用命令有哪些
    这篇“Linux系统编程常用命令有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux系统编程常用命令有哪些”文章吧...
    99+
    2023-06-28
  • Linux系统中常用命令有哪些
    这篇文章将为大家详细讲解有关Linux系统中常用命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Linux 常用命令awk / arch /bc /cp / clock -w / chmod / ...
    99+
    2023-06-06
  • linux系统中oracle常用命令有哪些
    这篇文章主要介绍linux系统中oracle常用命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、...
    99+
    2023-06-28
  • Linux系统中FIO常用命令有哪些
    小编给大家分享一下Linux系统中FIO常用命令有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,他可以通过多线程或进程模拟各...
    99+
    2023-06-28
  • Linux系统中apt常用命令有哪些
    这篇文章给大家分享的是有关Linux系统中apt常用命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。apt命令可以说是Ubuntu系统下最为重要的命令,安装、更新、卸载软件,升级系统内核都离不开apt命令...
    99+
    2023-06-28
  • Linux系统中MongoDB常用命令有哪些
    这篇文章主要为大家展示了“Linux系统中MongoDB常用命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统中MongoDB常用命令有哪些”这篇文章吧。MongoDB 是一...
    99+
    2023-06-28
  • Linux系统下MongoDB常用命令有哪些
    这篇“Linux系统下MongoDB常用命令有哪些”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“Linux系统下MongoDB常用命令有哪些”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家...
    99+
    2023-06-28
  • Linux系统中ftp常用命令有哪些
    这篇文章将为大家详细讲解有关Linux系统中ftp常用命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。FTP即文件传输协议是用于在网络上进行文件传输的一套标准协议,允许用户以文件操作的方式(如文件...
    99+
    2023-06-28
  • linux文件系统常用命令有哪些
    这篇文章主要介绍“linux文件系统常用命令有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux文件系统常用命令有哪些”文章能帮助大家解决问题。linux文件系统常用命令:1、Rcomme...
    99+
    2023-07-04
  • linux系统中的常用命令有哪些
    本篇文章为大家展示了linux系统中的常用命令有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。sagane@sagane-ThinkPad-Edge:~$ mii-tool,网络不通时可用此命令...
    99+
    2023-06-13
  • linux操作系统的常用命令有哪些
    这篇文章主要为大家展示了“linux操作系统的常用命令有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux操作系统的常用命令有哪些”这篇文章吧。查看当前目录的命令A:pwd切换目录的命...
    99+
    2023-06-03
  • Linux系统管理员常用命令有哪些
    这篇文章给大家分享的是有关Linux系统管理员常用命令有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。系统管理员(sysadmins)负责日常维护生产系统和服务。其中一个关键任务就是保证功能性服务能24小时工...
    99+
    2023-06-27
  • Linux系统中常用网络命令有哪些
    小编今天带大家了解Linux系统中常用网络命令有哪些,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux系统中常用网络命令有哪些...
    99+
    2023-06-28
  • Linux系统中常用的ps命令有哪些
    本篇内容介绍了“Linux系统中常用的ps命令有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux作为Unix的衍生操作系统,Li...
    99+
    2023-06-13
  • Linux系统中常用的git命令有哪些
    小编给大家分享一下Linux系统中常用的git命令有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Git是一个开源的分布式版本控制系统,用以有效、高速的处理从...
    99+
    2023-06-28
  • 有哪些Linux系统命令
    本篇内容介绍了“有哪些Linux系统命令”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Linux的命令分为内部命令和外部命令:  内部命...
    99+
    2023-06-13
  • Linux系统中有哪些常用的系统管理命令
    Linux系统中有哪些常用的系统管理命令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。df作用df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。格式df [o...
    99+
    2023-06-10
  • 开发过程中常用的Linux系统命令有哪些
    这篇文章主要介绍了开发过程中常用的Linux系统命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关机/重启/注销常用命令作用shutdown -h now即刻关机sh...
    99+
    2023-06-22
  • linux系统中有哪些常用的监控命令
    今天就跟大家聊聊有关linux系统中有哪些常用的监控命令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。找到最耗CPU的java线程ps命令命令:ps -mp pid -o THREA...
    99+
    2023-06-13
  • Linux系统巡检常用命令分别有哪些
    这篇文章给大家介绍Linux系统巡检常用命令分别有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Linux系统需要定期巡检,以检查服务器软硬件使用情况,相当于对人的体检,确保可以及时发现问题、解决问题,降低损失,常...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作