linux
哪里有作文大全api?
一、哪里有作文大全api?
作文大全api:聚合数据。
大量精选APig作文,包含关于APig作文写作素材,APig作文写作技巧,以APig为话题的作文
二、linux内核api函数都有哪些?
1.atomic_read与atomic_set函数是原子变量的操作,就是原子读和原子设置的作用.2.原子操作,就是执行操作的时候,其数值不会被其它线程或者中断所影响3.原子操作是linux内核中一种同步的方式
三、Linux下如何调用WPS的Api?
1、打开wps、txt
String str[] ={"/bin/sh","-c","wps "+path};
Runtime.getRuntime().exec(str);
四、Linux 命令大全有哪些内容?
大家好,我是杂烩君。
本次给大家分享一个实用的万能解压命令。
Linux下,压缩包的格式有很多种,在命令行下进行解压,解压不同的压缩包,需要执行不同的命令及参数,我们往往记不住那么多命令。我们可以写一个万能的解压命令,来替代这些繁多的解压命令,这样我们只需要记住一条命令就可以了。
下面分享具体的步骤:
1、在用户目录创建一个.autoex.sh脚本
脚本的内容如:
#copy from https://ynome.wordpress.com/2013/04/14/linux-%E9%80%9A%E7%94%A8%E8%A7%A3%E5%8E%8B/
ex () {
if [[ -z “$1” ]] ; then
print -P “usage: \e[1;36mex\e[1;0m < filename >”
print -P ” Extract the file specified based on the extension”
elif [[ -f $1 ]] ; then
case $1 in
*.tar) tar xvf $1 ;;
*.tbz2) tar xvf $1 ;;
*.tgz) tar xvf $1 ;;
*.tar.bz2) tar xvf $1 ;;
*.tar.gz) tar xvf $1 ;;
*.tar.xz) tar xvf $1 ;;
*.tar.Z) tar xvf $1 ;;
*.bz2) bunzip2v $1 ;;
*.rar) rar x $1 ;;
*.gz) gunzip $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.xz) xz -d $1 ;;
*.lzo) lzo -dv $1 ;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via extract()" ;;
esac
else
echo “‘$1’ is not a valid file”
fi
}
# *.tar) tar xvf $1 ;;
# *.tbz2) tar xvjf $1 ;;
# *.tgz) tar xvzf $1 ;;
# *.tar.bz2) tar xjvf $1 ;;
# *.tar.gz) tar xvzf $1 ;;
# *.tar.xz) tar Jxf $1 ;;
# *.tar.Z) tar xvZf $1 ;;
脚本来源:https://github.com/zqb-all/git-dot-files/blob/master/.autoex.sh
2、修改.bashrc文件
增加如下内容:
if [ -f ~/.autoex.sh ]; then
. ~/.autoex.sh
fi
修改完成之后,执行如下命令使之生效:
source ~/.bashrc
3、解压测试
解压命令为:
ex file
(1)解压.zip后缀压缩文件
(2)解压.tar.xz后缀压缩文件
(3)解压.7z后缀压缩文件
因为这个命令能满足大多数常见情况解压的使用所以我们称之为万能命令,但是并未可以满足所有情况,我们可以根据实际使用情况修改完善.autoex.sh来完善这个万能解压命令ex。
以上就是本次的分享,如果觉得文章有帮助,麻烦帮忙转发,谢谢!
分享一个我创建的实用开源项目汇总仓库:
zhengnianli/EmbedSummary五、linux操作命令大全?
Linux操作命令大全:
显示机器的处理器架构,显示机器的处理器架构,显示正在使用的内核版本,显示硬件系统部件,罗列一个磁盘的架构特性。
在磁盘上执行测试性读取操作,显示CPU info的信息,显示中断,校验内存使用,显示哪些swap被使用,显示内核的版本,显示网络适配器及统计,显示已加载的文件系统。
还有罗列 PCI 设备,显示 USB 设备,显示系统日期,显示日历表,设置日期和时间,将时间修改保存,关机 (系统的关机、重启以及登出 ),关闭系统及按预定时间关闭系统,取消按预定时间关闭系统,重启及注销。
六、linux命令大全详解?
在Linux系统中,提供了一套非常完备的命令,利用这些命令,我们可以更高效地完成所有的操作任务。
采用命令的方式进行操作的好处是,具有比图形化操作更加快捷高效的特点。但是命令方式不够直观,需要我们熟练记忆命令的用法、格式以及选项和参数等内容。只有我们通过不断地使用,才能运用自如。
一、Shell命令的格式
Shell命令是由命令和多个选项以及参数组成的命令行,各部分之间用空格分隔。重要的是,Shell命令是严格区分大小写的,所以,在使用Shell命令时一定要特别注意。
命令的一般格式如下:
命令名 [选项]...[参数]...
说明(小白请注意):
”[ ]"符号是为了表示一个部分,在编写命令时,不能带上这个符号。比如使用ls [选项] [文件名或目录名]用法时,这样写ls [-s] [hello.txt]是错的,正确写法应该是ls -s hello.txt
同时,“[ ]"符号里面的内容为可选(可写可不写)比如:ls [选项] [文件名或目录名],可以直接使用ls,也可以带上选项ls -s
二、基本命令
1、目录操作命令
命令名:ls
功能:列出当前目录下所有内容
格式:ls [选项] [文件名或目录名]
选项及作用:
| 选项 | 作用 |
| -s | 显示每个文件的大小 |
| -S | 按文件大小排序 |
| -a | 显示目录中全部文件(包括隐藏文件)|
| -l | 使用长列表格式,显示文件详细信息 |
| -t | 按文件修改的时间排序 |
| -F | 显示文件类型描述符 |
命令名:cd
功能:切换用户所在目录
格式:cd [路径名或特殊符号]
特殊符号及作用:
| 特殊符号 | 作用 |
| / | 从当前目录跳转到根目录 |
| . | 前往当前目录 |
| ..| 前往上一级目录 |
| - | 前一目录,即进入当前目录之前操作的目录 |
| ~ | 回到当前用户的宿主目录 |
命令名:pwd
功能:显示当前目录的绝对路径
格式:pwd
命令名:mkdir
功能:创建一个新的目录
格式:mkdir [选项] 目录名
选项及作用:
| 选项 | 作用 |
| -m 权限 | 对新建目录设置存取权限,权限有744、755等 |
| -p | 一次性创建多级目录(以递归形式创建) |
命令名:rmdir
功能:删除一个空目录
格式:rmdir [-p] 目录名(-p代表递归删除各级目录)
2、文件操作命令
命令名:touch
功能:创建一个空文件
格式:touch 文件名
命令名:cat
功能:显示某文件的内容
格式:cat [选项] [文件名]...
选项及作用:
| 选项 | 作用 |
| -a | 显示所有字符(换行符、制表符、其它非打印字符) |
| -n | 对文件中所有的行进行编号并显示行号 |
| -b | 除了空行不编号,文件中其它行都进行编号并显示行号 |
| -s | 将连续的空行压缩为一个空行 |
cat命令其它格式:
cat 文件名 | ls 表示按页显示文件内容
cat 文件名1;cat 文件名2 表示显示多个文件内容
cat 此命令没有任何参数,即cat单独使用。在开始执行时,光标停留在下一行,等待键盘输入,当用户输入一行后,按下回车,就会显示一行相同的内容。当用户结束输入时,按下Ctrl+D键退出,回到命令提示符下。
cat > 新文件名 ”>“这个大于号是重导向符号。代表把键盘输入的信息重导向输入到新文件中。内容输入结束后,同样也是按Ctrl+D键退出新文件的制作。
cat 文件名1 文件名2 > 文件名3 该用法实现了把文件1和文件2的内容合并输入到文件3中。文件3中的内容是按文件1和文件2的顺序排列的。
cat 文件名2 >> 文件名1 该用法实现了把文件2的全部内容追加到文件1的末尾。
命令名:cp
功能:进行文件的复制
格式:cp [选项] 源文件 目标路径
选项及作用:
| 选项 | 作用 |
| -i | 以安全询问方式进行源文件的复制 |
说明:该命令实现了把源文件复制到目标路径中,文件名不变。如果为目标路径下的文件名,则以文件的重命名方式实现文件的复制。目标路径可以是相对路径,也可以是绝对路径。
命令名:rm
功能:删除指定的文件
格式:rm [选项] 文件名或目录名
选项及作用:
| 选项 | 作用 |
| -i | 以安全询问方式进行删除文件 |
| -r | 递归处理,将指定目录下的所有文件及子目录一并处理 |
| -f | 强制删除文件或目录 |
| -v | 显示指令执行过程 |
命令名:mv
功能:移动指定的文件
格式:mv 文件名 路径名
命令名:chmod
功能:修改文件的权限和属性
格式: chmod [<文件使用者><操作符号<权限类型>] 文件名1 文件名2...
注:[<文件使用者><操作符号><权限类型>] 作为一个部分,中间不加空格。
文件使用者有( u、g、o、a) 4种类型,在使用时,可以采用其中的任何一个,也可以组合使用。
u:表示user(文件主),就是文件或目录的所有者
g:表示group(组群),文件主所在组群的用户
o:表示other,其他用户
a:表示all,所有用户
操作符号有3种类型,分别是 +、-、=。
+:表示增加权限
-:表示删除或取消权限
=:表示赋予给定的权限给文件使用者,并取消其他权限(如果有的话)
权限类型有3种基本类型,分别是r、w、x,这些类型可以组合使用。
r:代表可读权限
w:代表可写权限
x:代表可执行权限
选项及作用:
| 选项 | 作用 |
| a+rw | 为所有用户增加可读、可写的权限 |
| g+w | 为组群用户可写权限 |
| a-rwx | 取消所有用户可读、可写、可执行权限 |
| o-rwx | 取消其他用户可读、可写、可执行权限 |
| a+rw | 为所有用户增加读、写的权限 |
| ug+r| 为所有者和组群用户增加读权限 |
| g=rx | 只允许组群用户可读、可执行,并删除其他权限 |
| 自定义 | 可以根据实际需要进行组合 |
chmod命令的其他格式
格式如下:
chmod [mode] 文件名
mode是指 3个 0~7 范围的八进制数值,分别代表user、group、other 的权限。
其实,我们也可以用数字来表示权限:
0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限。
举例:
chmod a=rwx filename
chmod 777 filename
对以上的两个例子分析:
a=rwx表示允许所有用户可读、可写、可执行。
777指三个八进制数值,前面提到了,分别代表的是user、group、other 的权限,即第一个数字”7“指允许user的可读、可写、可执行,第二个数字”7“指允许group的可读、可写、可执行,第三个数字”7“指允许other的可读、可写、可执行。
所以,这两个例子效果是一样的。
懵逼了,”7“怎么就指可读、可写、可执行了呢?
rwx权限=4+2+1=7(可读、可写、可执行)
rw权限=4+2=6(可读、可写)
rx权限=4+1=5(可读、可执行)
再举个例子:
chmod ug=rwx,o=x filename
chmod 771 filename
这两个效果也是相同的。
3、文件处理命令
命令名:grep
功能:在指定的文件中查找指定的字符串
格式:grep [选项] 关键字 文件名
选项及作用:
| 选项 | 作用 |
| -i | 不区分大小写 |
命令名:head
功能:查看文件开头部分的内容
格式:head [数字选项] 文件名
数字选项及作用:
| 数字选项 | 作用 |
| -3 | 显示文件前3行的内容 |
| -5 | 显示文件前5行的内容 |
| -n | 显示文件前n行的内容 |
说明:如果不指定数字选项,即使用命令grep 文件名,则默认只显示文件前10行。
命令名:tail
功能:查看文件结尾部分的内容
格式:tail [数字选项] 文件名
数字选项及作用:
| 数字选项 | 作用 |
| -3 | 显示文件末尾3行的内容 |
| -5 | 显示文件末尾5行的内容 |
| -n | 显示文件末尾n行的内容 |
说明:如果不指定数字选项,即使用命令tail 文件名,则默认只显示文件末尾10行的内容。
命令名:wc
功能:统计文件的行数、单词数、字符数。
格式:wc [选项] 文件名
选项及作用:
| 选项 | 作用 |
| -l | 显示文件的行数 |
| -w | 显示文件的单词数 |
| -m | 显示文件的字符数 |
命令名:sort
功能:对文件内容或查询结果进行排序
格式:sort [选项] 文件名
选项及作用:
| 选项 | 作用 |
| -f | 忽略大小写 |
| -r | 反向排序 |
| -t | 指定分隔符 |
| -i | 只考虑可以打印的字符,忽略任何非显示字符 |
命令名:find
功能:查找文件或目录
格式:find 文件名或目录名
命令名:which
功能:按PATH变量所规定的路径进行查找相应的命令,并显示该命令的绝对路径。
格式:which 命令名
4、压缩备份命令
命令名:bzip2
功能:压缩文件
格式:bzip2 文件名1 [文件名2]...
说明:使用该命令对文件进行压缩后,压缩前的原始文件消失,系统会生成一个新的压缩文件,压缩文件的后缀为.bz2。而且,使用该命令压缩的文件,必须用bunzip2来进行解压操作。
命令名:bunzip2
功能:解压文件
格式:bunzip2 文件名1 [文件名2]...
命令名:gzip
功能:压缩或解压文件
格式:gzip [选项] 文件名
选项及作用:
| 选项 | 作用 |
| -d | 解压操作 |
| -n | 指定压缩级别,n的范围是1~9 |
命令名:unzip
功能:解压以.zip为后缀的压缩文件
格式:unzip [选项] 文件名.zip
选项及作用:
| 选项 | 作用 |
| -d | 将文件解压到指定目录中 |
| -n | 不覆盖原来已存在的文件 |
| -v | 查看文件目录列表但不解压 |
| -o | 已默认方式覆盖已存在的文件 |
举例: unzip -n filename.zip -d /home/ubuntu将文件filename.zip解压到/home/ubuntu目录中。
命令名:zcat和bzcat
功能:这两个都是用来查看压缩文件内容的,压缩文件不用解压也能查看。
格式:zcat 文件名或bzcat 文件名
命令名:tar
功能:对文件或目录进行打包或解包操作
格式:tar [选项] [备份包的文件名] [要打包或解包的文件或目录]
选项及作用:
| 选项 | 作用 |
| -c | 创建新的打包文件 |
| -t | 查看打包文件里的文件目录 |
| -f | 使用文件或设备 |
| -v | 显示打包压缩或解包压缩后的文件的详细清单 |
| -x | 抽取.tar文件的内容 |
| -z | 打包后直接用gzip命令进行压缩或解压文件 |
| -j | 打包后直接用bzip2命令进行压缩或解压文件 |
5、磁盘操作命令
命令名:df
功能:查看当前硬盘的分区信息
格式:df [选项]
选项及作用:
| 选项 | 作用 |
| -a | 显示每个文件系统和各分区的磁盘使用情况 |
| -i | 显示i节点的使用量 |
| -k | 以千字节(KB)的方式显示分区大小和挂上来的文件分区大小 |
| -h | 以兆字节(MB)的方式显示分区大小和挂上来的文件分区大小 |
| -t | 列出某个文件系统的所有分区磁盘空间使用量 |
命令名:du
功能:查看当前目录下所有文件及目录信息
格式:du [选项]
选项及作用:
| 选项 | 作用 |
| -a | 显示所有文件及目录的大小 |
| -h | 以兆字节(MB)或吉字节(GB)为单位显示文件或目录的大小 |
| -b | 以字节(B)为单位显示文件或目录的大小 |
| -s | 列出各文件大小的总和 |
命令名:fsck
功能:对硬盘进行检测
格式:fsck 分区名
6、关机重启命令
命令名:shutdown
功能:安全关机
格式:shutdown [选项] [时间] [警告信息]
选项及作用:
| 选项 | 作用 |
| -h | 将系统服务停掉后再安全关机 |
| -t | 在规定的时间后关机 |
| -k | 没有真正关机,只是发出警告信息 |
| -r | 将系统服务停掉后再安全重启 |
举例:
shutdown -h +5让系统在5分钟后关机 shutdown -h 21:00让系统在21:00准时关机
shutdown -r +3 "system will be reboot after 3 minuter."让系统在3分钟后重启,并提示用户系统将在3分钟后重新启动
命令名:halt
功能:关机
格式:halt [选项]
说明:该命令单独使用,相当于 shutdown -h命令
选项及作用:
| 选项 | 作用 |
| -f | 强行关机 |
命令名:poweroff
功能:关机
格式:poweroff
命令名:reboot
功能:重启系统
格式:reboot
7、用户操作命令
命令名:sudo
功能:以超级管理员的身份执行某种操作
格式:sudo 命令
说明:在使用一些命令时,会出现cannot lock相关提示,这时我们就需要在对应的命令前加个sudo命令就可以正常执行命令。
举例:使用userdel [-r] 用户名命令对用户进行删除操作,可能会出现提示userdel:cannot lock /etc/passwd; try again later.这时候我们使用sudo userdel [-r] 用户名命令就可以正常执行删除用户命令了。
提示:一般在对用户进行管理操作时(如:添加用户、修改密码等),都会用到sudo命令。
命令名:passwd
功能:修改用户密码
格式:passwd 用户名
命令名:su
功能:切换用户
格式:su 用户名
命令名:useradd
功能:创建新用户
格式:useradd 新用户名
命令名:userdel
功能:删除用户
格式:userdel [-r] 用户名
说明:可以通过参数-r删除用户的主目录及其文件,也可以不使用参数-r
8、网络通信命令
命令名:ifconfig
功能:查看IP地址等信息
格式:ifconfig
命令名:ping
功能:测试主机网路是否畅通
格式:ping [选项] 主机名或IP地址
选项及作用:
| 选项 | 作用 |
| -f | 极限检测 |
| -v | 显示命令的执行过程 |
| -q | 不显示命令的执行过程,只显示结果 |
9、其他常用命令
命令名:echo
功能:显示命令行中的字符串
格式:echo [选项] [字符串]
选项及作用:
| 选项 | 作用 |
| -n | 输出字符串后,光标不换行 |
命令名:more
功能:对文件内容或查询结果分屏显示
格式:more [选项] 文件名
选项及作用:
| 选项 | 作用 |
| -p | 清屏,不滚屏 |
| -s | 把连续的空行压缩为一个空行 |
| +n | 从第n行开始显示 |
命令名:less
功能:对文件内容或查询结果分屏显示
格式:less [选项] 文件名
命令名:man
功能:显示命令的格式和详细用法
格式:man 命令名
说明:该命令是一个非常实用的命令,他可以显示系统手册页中的内容,当你需要了解某个命令的详细信息和用法时,可以使用man命令来实现。
命令名:help
功能:专门用于显示内建命令的格式用法
格式:help 命令名
七、Linux 常用命令大全是什么?
[root@localhost ~]# 命令 [选项] [参数]
[ ] 代表可选项
选项是调整命令的功能的,参数是命令的操作对象,如果省略参数,是因为有默认参数。
man
linux中使用 man 命令来获取帮助(单词manual的缩写)
~ 当前用户的家目录,root用户的家目录为/root
hostname 系统的简写主机名
cd 切换目录
cd - 进入上次所在目录
. 当前目录
.. 上一级目录
cd .. 返回上一级目录
cd ../.. 返回上上级目录
ls 显示目录下的内容
ls -a 列出目录下所有文件,包括 .开头的隐藏文件
ls -d 显示目录信息,而不是目录下的文件
ls -l 列出文件的详细信息:
第一列:权限
第二列:引用计数,该目录下有多少一级子目录
第三列:所有者
第四列:所属组
第五列:大小(默认字节,ls -lh,人性化显示文件大小)
第六列:文件修改时间
第七列:文件名
mkdir 123 创建目录
mkdir -p 234/345/456 递归建立所需目录
rm -rf 123 强行删除目录或文件(一定要注意!!!,如果没装防删除软件,删除后将无法恢复)
echo 传递给echo的参数被打印到标准输出中,用于显示消息或输出其他命令的结果
echo Hello World! >> abc 命令重定向,把输出结果追加到abc中
创建空文件:
touch 创建空文件或修改文件的时间戳
touch test.txt
stat 查看文件的详细信息,Linux不记录创建时间
最近一次访问时间
最近一次数据修改时间
最近一次状态修改时间
cat 查看文件内容(单词concatenate的缩写)
cat -n 显示行号
编辑文件:
vi test.txt
vi编辑器:
输入i,进入编辑模式,输入内容,esc,进入命令模式 :wq保存。
查看文件:
cat 从第一行开始显示
tac 从最后一行开始显示
more 一页一页的显示
less 可以往前翻页
head 只看头几行,例如:head -n 20 test.txt 看文件test.txt前20行的内容
tail 只看尾巴几行,例如:tail -n 30 test.txt 看文件最后30行的内容
history 查看历史命令执行记录
tail -f test.log 实时刷新log
tail -500f test.log 实时刷新最新500条log
tar -cvf 压缩文件
tar -xvf 解压tar后缀文件
tar -zxvf 解压tar.gz后缀文件
ps -A 查看所有进程
ps -ef|grep java 查看Java进程
top 显示进程信息
top ,按1 监控每个逻辑CPU的状况
top ,按b 高亮显示当前运行进程
第一行:load average: 1.17,1.07,1.02
系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4 就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)
第二行:
Tasks: 115 total 系统中的进程总数
1 running 正在运行的进程数
114 sleeping 睡眠的进程数
0 stopped 正在停止的进程数
0 zombie 僵尸进程数。如果不是 0,则需要手工检查僵尸进程
wget 下载文件的工具
wget -b http://51.istester.com/isTester.png 后台形式下载isTester.png文件
find /root/istester/ -name test.txt
在/root/istester/目录及其子目录下面查找名字为test.txt的文件
find .-name "*.ini"
在当前目录及其子目录中查找任何扩展名为"ini"的文件
find / -name test.txt 在根目录开始查找test.txt文件
查看当前服务器ip:
ifconfig
查看当前服务器硬盘空间:
df -h
***free -h:以适于人类可读方式显示内存信息
查看目录istester/所占有的空间
du -sh istester
清空当前终端屏幕:
clear
查看某个端口是否被占用:
netstat -anp| grep 82 查看82端口的使用情况
netstat -nultp 查看当前所有已经使用的端口情况
举例:
后端停止命令:./stop.sh
后端启动命令:./start.sh
查看进程:ps -ef|grep java
杀进程:killall -9 java
举例:
前端nginx重启
启动命令:cd /usr/localinx/sbin/
./start
重启 ./start -s reload
# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l
# 查询系统CPU的物理核数:
cat /proc/cpuinfo | grep "cpu cores" | uniq
八、哪个有Linux命令大全,请共享下吧?
Linux是一种强大的操作系统,使用它可以大大提高工作效率。以下是一些常用的Linux命令:
- 文件和目录操作命令:
- ls:列出指定目录的内容
- cd:更改当前工作目录
- pwd:显示当前工作目录的路径
- mkdir:创建新目录
- rmdir:删除空目录
- cp:复制文件和目录
- mv:移动文件和目录,也可以用于重命名文件和目录
- rm:删除文件和目录
- 文件查找和处理命令:
- find:在文件系统中查找指定的文件
- grep:搜索文本内容
- sed:使用替换规则编辑文本内容
- awk:搜索和处理文本内容
- 压缩和解压缩命令:
- tar:打包文件
- gzip:使用Gzip压缩文件
- bzip2:使用Bzip2压缩文件
- unzip:解压缩Zip文件
- 系统管理命令:
- ps:显示当前进程的状态
- top:显示系统资源的使用情况
- systemctl:管理系统服务和守护进程
- ssh:通过安全的Shell会话连接到远程系统
- ifconfig:配置网络接口
- 网络命令:
- ping:测试网络连接
- netstat:显示网络连接的状态
- traceroute:追踪数据包在互联网上的路径
这里只是列出了一些常用的Linux命令,实际上Linux拥有大量命令和功能。建议你花点时间学习常用的Linux命令,这将有助于提高你的工作效率。
嵌入式开发需要掌握哪些知识,才能转内核开发?个人建议参加零声教育的培训,学习效率会高很多,有目的性的参加培训,缩短周期,快速成型才是时代所需。Linux内核源码学习
九、linux下的api数量那么少,如何编写图形界面?
Linux编写图形界面的话,目前比较流行的就是GTK+、Qt和wxWidgets,前一个基于C语言开发,后两个基于C++开发,下面我分别简单介绍一下,感兴趣的朋友可以尝试一下:
01
GTK+
这是一个免费、开源、跨平台的GUI开发工具包,基于C语言开发而来,著名的GNOME桌面就是采用这个工具开发,自带了大量组件和容器,可以轻松布局开发任意Linux桌面程序,如果你本身只熟悉C语言的话,可以使用一下这个工具包,非常不错,简单易学,非常容易上手,而且官方自带了丰富的Demo示例,都有源码可供参考和学习:
02
Qt
这是一个免费、开源、跨平台的应用程序开发框架,基于C++开发而来,著名的Linux KDE桌面就采用这个框架开发,自带了可视化设计界面,包含了大量组件和容器,只需简单拖拽、编辑属性,就可快速创建一个GUI程序,官方资料丰富,社区文档全面,对于Linux桌面开发来说,非常不错,值得使用和学习:
03
wxWidgets
这也是一个非常著名的跨平台界面开发库,免费、开源,基于C++开发而来,与Qt仿平台外观不同,wxWidgets使用平台库创建图形接口,不需要在代码上添加额外的层,因此更高效,社区文档丰富,资料教程全面,不管是私用还是商用,都完全免费,如果你本身只熟悉C++,需要做Linux界面开发的话,那么wxWidgets就是一个非常不错的选择:
当然,除了以上3种工具或框架,还有许多其他编程语言也可开发Linux GUI程序,像Java的Swing,Python的Tkinter等都非常不错,根据实际项目需求,选择合适的一种就行,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。
十、谁能给我一份linux系统的命令大全?
前言
你好,我是悦创。我用 VuePress 搭建博客,又实现了 GitHub 和 Gitee Pages 的自动部署,但我最终还是决定自己建站,而在建站的过程中,必不可少会用到 Linux 命令,所以此篇写一份基本够用的 Linux 命令,会涵盖博客搭建系列文章用到的各种命令,方便查询和学习使用。首发:https://bornforthis.cn/blog/vuepress/02.html
0. Owner、Group、Others、Root
Linux 系统是一种多用户系统,它将文件访问者身份分为三种:
文件所有者(Owner)
当创建一个用户的时候,Linux 会为该用户创建一个主目录,路径为 /home/<username>
,我们可以使用 cd ~
,快捷进入主目录。如果你想放一个私密文件,就可以放在自己的主目录里,然后设置只能自己查看。
群组(Group)
每个用户都有一个用户组,方便多人操作的时候,为一群人分配权限。当创建用户的时候,会自动创建一个与它同名的用户组。
如果一个用户同时属于多个组,用户需要在用户组之间切换,才能具有其他用户组的权限。
其他人(Others)
既不是文件所有者又不是文件所属群组成员的用户,就是其他人。
超级用户(Root)
Root 用户是一类特殊的用户,该用户可以访问所有文件。
1. adduser 添加用户 和 passwd 更改密码
# 添加一个名为 git 的用户
adduser git
# 设置 git 用户的密码
passwd git
但是由于创建的用户权限较低,有的时候我们需要为用户提权,此时我们可以这样做:
# 会打开 sudoers 配置文件
sudo visudo
注意同样是编辑 sudoers
配置文件,使用这个命令会比使用 sudo vim /etc/ sudoers
更安全, 除了对语法有校验,并且还会在多用户编辑的时候锁住文件。
打开 sudoers
配置文件后,我们添加这样一行配置:
# Allow git to run any commands anywhere
git ALL=(ALL:ALL) ALL
简单解释下这句话 git ALL=(ALL:ALL) ALL
:
- git 表示规则应用的用户名
- 第一个
ALL
表示规则应用于所有 hosts - 第二个
ALL
表示规则应用于所有 users - 第三个
ALL
表示规则应用于所有 groups - 第四个
ALL
表示规则应用于所有 commands
我们保存退出后,git
用户就会获得 root 权限。
2. ls 列出文件和目录
ls
列出文件和目录
[root@iZ2ze learn-typescript.git]# ls
branches config description HEAD hooks index info objects refs
ls -la
由-a
显示所有文件和目录(包括隐藏)和-l
显示详细列表组成:
[root@iZ2ze learn-typescript.git]# ls -la
总用量 20
drwxrwxr-x 7 git git 132 12月 15 12:33 .
drwx------ 3 git git 127 12月 15 14:51 ..
drwxrwxr-x 2 git git 6 12月 15 12:21 branches
-rw-rw-r-- 1 git git 66 12月 15 12:21 config
-rw-rw-r-- 1 git git 73 12月 15 12:21 description
-rw-rw-r-- 1 git git 23 12月 15 12:21 HEAD
drwxrwxr-x 2 git git 4096 12月 15 13:10 hooks
-rw-rw-r-- 1 git git 217 12月 15 12:33 index
drwxrwxr-x 2 git git 21 12月 15 12:21 info
drwxrwxr-x 10 git git 90 12月 15 12:33 objects
drwxrwxr-x 4 git git 31 12月 15 12:21 refs
每一行都有 7 列,我们以 branches
为例讲解每列的含义:
drwxrwxr-x | 2 | git | git | 6 | 12月 15 12:21 | branches |
---|---|---|---|---|---|---|
文件类型和权限信息 | 链接数或者一级子目录数 | 所有者 | 所属组 | 文件大小,单位字节 | 最后修改时间 | 文件名 |
重点看第 1 列的内容,以 drwxrwxr-x
为例,这里一共 10 位,第 1 位表示文件类型,其中 -
表示普通文件,d
表示目录文件。
第 2 到第 4 位,表示所有者权限,其中 r
表示读权限,w
表示写权限,x
表示可执行权限, -
表示无权限,第 2 到 5 位为 rwx
,表示所有者可读可写可执行。
第 5 到第 7 位,表示组用户权限,这里也是 rwx
。
第 8 到第 10 位,表示其他用户权限,这里是 r-x
,表示有可读可执行权限,无写入权限。
这里再额外补充一点:
像 root
用户创建文件夹的默认权限为 rwxr-xr-x
:
[root@iZ2ze www]# mkdir test
[root@iZ2ze www]# ls -l
drwxr-xr-x 2 root root 6 12月 17 23:53 test
而创建文件的默认权限是 rw-r--r--
,注意创建文件默认会去掉 x
权限:
[root@iZ2ze www]# touch index.html
[root@iZ2ze www]# ls -l
-rw-r--r-- 1 root root 0 12月 17 23:54 index.html
这就是为什么我们有的时候需要在创建文件后,又加上执行权限。
3. chown 更改文件属主,也可以同时更改文件属组
「chown (change owner)」 语法:
# -R:递归更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
将 index.html
的所有者更改为 git
:
[root@iZ2ze www]# chown git index.html
[root@iZ2ze www]# ls -
-rw-r--r-- 1 git root 0 12月 17 23:54 index.html
将 index.html
的所有者和群组都改为 git
:
[root@iZ2ze www]# chown git:git index.html
[root@iZ2ze www]# ls -l
-rw-r--r-- 1 git git 0 12月 17 23:54 index.html
4. chmod 更改文件权限
权限除了用 r
w
x
这种方式表示,也可以用数字表示,数组与字母的对应关系为:
- r:4
- w:2
- x:1
之所有如此对应关系,主要还是为了方便推导,比如我们希望一个文件可读可写,那我们可以方便的设置权限为 6(4 + 2),同样,如果我们知道一个权限为 3,我们也可以推导出权限为可写可执行,因为只有 2 + 1 才可能等于 3。
我们看下 「chmod (change mode)」 的具体语法:
# -R:递归更改文件属组
chmod [-R] xyz 文件或目录
其中 xyz 分别表示 Owner、Group、Others 的权限,如果我们这样设置一个文件的权限:
chmod 750 index.html
我们可以得知,Owner 的权限为 7,为可读可写可执行,Group 的权限为 5,为可读可执行,Others 的权限为 0,表示不可读写不可执行。对应字母为:rwxr-x---
。
除了这种数字的方式,还有一种使用符号类型改变权限的方式:
在这种方式里,我们将三种身份 Owner
、Group
、Others
,分别简写为 u(User)
、g
、o
,用 a
表示所有身份,再使用 +
-
=
表示加入、去除、设定一个权限,r
w
x
则继续表示读,写,执行权限,举个例子:
chmod u+x,g-x,o-x index.html
意思就是 Owner
加上执行权限,Group
和 Others
去除执行权限。
当然我们也可以直接设定权限
chmod u=rwx,g=rx,o=r index.html
此时文件的权限就相当于 -rwxr-xr--
。
此外,我们还可以省略不写 ugoa
这类身份内容,直接写:
chmod +x index.html
此时相当于使用了 a
,会给所有身份添加执行权限。
5. su 切换身份
# 切换为 git 用户
su git
6. whoami 显示用户名
# whoami
root
7. pwd 显示当前目录
[git@iZ2ze www]$ pwd
/home/www
9. cd 切换工作目录
# 进入 /home/www/
cd /home/www
# 进入自己的主目录
cd ~
# 进入当前目录的上上两层 :
cd ../..
10. mkdir 创建目录
mkdir
创建目录:
mkdir new_folder
mkdir -p
递归创建目录:
mkdir -p one/two/three
11. touch 创建文件
用于修改文件或者目录的时间属性,当文件不存在,系统会创建空白文件
touch new_file
12. echo 打印输出
echo 是 Shell 命令,用于打印输出:
# 显示转义字符
echo "\"test content\""
创建或覆盖文件内容为 "test content":
echo "test content" > index.html
如果是想追加内容,就用 >>
:
[root@iZ2ze www]# echo "test content" > index.html
[root@iZ2ze www]# cat index.html
test content
[root@iZ2ze www]# echo "test content" >> index.html
[root@iZ2ze www]# cat index.html
test content
test content
13. cat 连接文件并打印输出
查看文件内容:
cat ~/.ssh/id_rsa.pub
清空 index.html 内容:
cat /dev/null > index.html
把 index.html 的内容写入 second.html:
cat index.html > second.html
把 index.html 的内容追加写入 second.html:
cat index.html >> second.html
把 index.html 和 second.html 追加写入 third.html:
cat index.html second.html >> third.html
14. cp 复制文件或目录
将目录 website/ 下的所有文件复制到新目录 static 下:
# -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
cp –r website/ static
15. mv 移动并重命名
文件改名:
mv index.html index2.html
隐藏文件:
# 文件名上加上 .
mv index.html .index.html
移动文件:
# 仅仅移动
mv /home/www/index.html /home/static/
# 移动又重命名
mv /home/www/index.html /home/static/index2.html
批量移动:
mv /home/www/website/* /home/www/static
16. rm 删除一个文件或者目录
# 系统会询问
rm file
# -f 表示直接删除
# -r 表示目录下的所有文件删除
# 删除当前目录下的所有文件及目录
rm -r *
# 跑路
rm -rf /*
17. vi/vim
Linux 内建 vi 文书编辑器,Vim 是从 vi 发展出来的一个文本编辑器。
基本上 vi/vim 共分为三种模式,分别是「命令模式(Command mode)」,「输入模式(Insert mode」)和「底线命令模式(Last line mode)」。我们边操作边介绍这三种模式: 我们执行 vim index.html
,如果没有该文件,则会创建文件:
vim index.html
此时界面为:
此时是「命令模式」,在命令模式下,输入的任何字符都会被视为命令,接下来几个常用的命令:
- i 切换到输入模式。
- x 删除当前光标所在处的字符。
- : 切换到底线命令模式。
我们按下 i
,便会进入「输入模式」:
输入模式下,左下角有 -- INSERT --
标志:
此时我们可以进行各种输入,当输入完毕后,按下 ESC 回到命令模式:
此时左下角的 INSERT已经消失不见了,如果我们要保存退出,我们先输入 :
,进入「底线命令模式」:
在底线命令模式中,常见的命令有:
- w 保存文件
- q 退出程序
我们输入 wq
,表示保存并退出,此时我们就会发现并创建了一个 HTML 文件。
18. ssh 远程连接工具
注意 ssh 监听是 22 端口。
其基本语法为:
ssh [OPTIONS] [-p PORT] [USER@]HOSTNAME [COMMAND]
监听端口示例:
ssh -p 300 git@8.8.8.8
打开调试模式:
# -v 冗详模式,打印关于运行情况的调试信息
ssh -v git@8.8.8.8
系列文章
系列文章目录地址:https://github.com/BornforthisHJB/BornforthisHJB.github.io
如果有错误或者不严谨的地方,请务必给予指正,十分感谢。如果喜欢或者 有所启发,欢迎 star,对作者也是一种鼓励。
欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!
公众号:AI悦创【二维码】
AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Linux 教学」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...