1. 在命令行模式下执行命令
输入命令按下enter键就会开始执行,如果输入的命令很长,可以使用反斜杠来转义enter符号,使命令连续到下一行。
在linux环境中大小写是不同的
1.显示日期和事件的命令:date
如果想要输出特定格式的日期和事件需要带上参数
例如:date +%Y/%m/%d
date +%H:%M
2.显示日历的命令:cal
cal的基本能语法:cal [[month] year]
可以显示某年的日历:例如,cal 2009
可以显示某年某月的日历:例如,cal 9 2009
3.计算器命令:bc
输入bc命令就进入bc这个软件的工作环境,就可以像在windows中一样进行加减乘除,
+加法,-减法,*乘法,/除法,^指数,%余数。
bc默认是输出整数的,如果要输出全部小数,就必须执行scale=number,其中number就是小数点后的位数。
要离开bc,需要输入quit才能离开bc软件环境。
1.tab键:用于补全命令或者补全文件
2.ctrl+c:用于中断目前正在运行的命令
3.ctrl+d:表示键盘输入结束,也可以用来代替exit的输入。
在命令行中直接按下两次tab键,可以看到总共有多少个命令可以供当前用户使用。
可以使用man 命令名来查看命令的具体用法。
其中man是manual的缩写。
数据同步写入磁盘中:在关机前可以使用命令sync将内存中尚未被更新的数据就会被写入硬盘中。
关机命令:shutdown、reboot、halt、poweroff
系统执行等级:
run level 0:关机
run level 3:纯命令行模式
run level 5:含有图形界面模式
run level 6:重启
可以使用init命令来切换各种模式,例如想要关机的话,也可以使用init 0。
Linux文件属性
ls -al 列出所有的文件,-al表示列出所有的文件详细的权限和属性。
例如
[1] [2] [3] [4] [5] [6] [7]
[权限] [连接] [所有者][用户组][文件容量] [修改日期] [文件名]
drwxr-x--- 4 root root 4096 Sep 8 14:06 .gconfd
-rwxr-xr-x 1 root root 1024 Jan 3 11:01 install.log
1.第一列文件的类型与权限
第一列由10个字符组成:
第一个字符代表这个文件是目录、文件或者链接文件等
其中d表示目录,
-表示是文件
l表示是连接文件
接下来的字符中,以三个字符为一组,均是rwx的组合,其中r表示可读,w表示可写,x表示可执行。如果没有相应的权限就用-表示。
这三组分别表示的权限是:
第一组为”文件所有者的权限“
第二组为”同用户组的权限“
第三组为”其他非本用户组的权限“
2.第二列表示有多少个文件名连接到此节点上
3.第三列表示这个文件或目录的所有者账号
4.第四列表示这个文件所属的用户组
5.第五列表示这个文件的大小,默认单位为B
6.第六列表示这个文件的创建日期或这个文件的修改日期。
7.第七列表示这个文件名
改变文件属性和权限:
chgrp(change group):改变文件的所属用户组
chown(change owner):改变文件所有者
chmod:改变权限,权限的设置有两种方式,使用数字或者符号来进行权限的更改。
数字类型改变权限:
使用数字分别代表各个权限,其中:
r:4
w:2
x:1
owner、group、others三种身份各自有自己的rwx权限,三个权限的分数需要累加。例如
owner = rwx = 4 + 2 + 1=7
group = rwx = 4 + 2 + 1 = 7
others = --- = 0 + 0 + 0 = 0
那么这个文件的权限数字就是770
符号类型改变权限:
使用u,g,o分别代表user、group、others三种身份的权限,a表示所有身份
例如:
一个文件的权限为:-rwxr-xr-x
user:有可读、可写、可执行的权限
group:有可读、可执行的权限
others:有可读、可执行的权限
可以使用命令 chmod u=rwx,go=rx install.log
给install.log文件的所有用户增加写权限
chmod a+w install.log
给install.log文件的所有用户去掉可执行权限
chmod a-x install.log
Linux下文件没有所谓的扩展名,一个linux文件能不能被执行,与文件名没有一点关系,而是权限中有x,就代表这个文件可以被执行。
通常会以适当的扩展名来表示文件是什么种类的。例如, .sh表示脚本或批处理文件, .Z、 .tar、 .tar.gz、 .zip、 .tgz都表示压缩文件。
FHS(Filesystem Hierarchy Standard)标准用于让用户能够了解到已安装的软件通常放置在哪个目录下。FHS根据文件系统使用的频繁与否和是否允许用户随意改动,而将目录定义成四种交互作用的形态。分别如下:
可分享的 不可分享的
不变的:/usr(软件放置处)、/opt(第三方软件) /etc(配置文件)、/boot(开机与内核文件)
可变动的: /var/mail(用户邮件信箱) /var/run(程序相关)、/var/lock(程序相关)
/var/spool/news(新闻组) /var/lock(程序相关)
可分享的:可以分享给其他系统挂载使用的目录,所以包括可执行文件与用户的邮件等数据,是能够分享给网络上的其他主机挂载用的目录。
不可分享的:自己机器上运行的设备文件或者程序有关的socket文件等,不适合分享给其他主机。
不变的:数据不经常变动。
可变动的:数据经常变动
根目录(/):是整个系统最重要的目录,不仅所有其他目录是由根目录衍生出来的,而且根目录与开机、还原、系统修复等操作有关。根目录所在的分区越小越好,并且应用程序所安装的软件最好不要与根目录在同一个分区。
开机过程中仅有根目录会被挂载,其他的分区会在开机完成之后才会持续进行挂载,因此根目录下与开机过程有关的目录就不能够与根目录放到不同的分区去。有如下这些目录:
/etc:配置文件
/bin:重要执行文件
/dev:所需要的设备文件
/lib:执行文件所需的函数库与内核所需的模块
/sbin:重要的系统执行文件
/usr(UNIX software resource)unix操作系统软件资源,所有系统默认的软件都会放置在该目录下,因此这个目录有点类似与windows下的“C:Windows”和“C:Program files”。
/var 放置一些缓存、登录文件以及某些软件运行所产生的文件。
相对路径和绝对路径:
绝对路径:由根目录/开始写起的文件名或目录名称。
相对路径:相对于当前路径
.:或者./表示当前路径
..:或者../表示上层目录
几个特殊的目录
. 代表此层目录
.. 代表上层目录
~ 代表“目前用户身份”所在的主文件夹
~account 代表account这个用户的主文件夹
几个常见的处理目录的命令
cd:切换目录
刚登录时会回到自己的主文件夹,主文件夹有一个代表符号就是~,cd ~会回到个人的主文件夹中,仅输入cd和输入cd ~相同。
pwd:显示当前目录
pwd [-p] 其中-p表示显示当前路径,而不是使用连接路径。加上-p可以让我们取得正确的目录名称。
mkdir:创建一个新目录
mkdir [-mp] 目录名称,其中m参数表示配置文件夹的权限。p参数表示递归创建所需要的所有目录
rmdir:删除一个空目录
rmdir [-p] 目录名,其中p参数表示连同上层空的目录一起删除。要删除的目录中必定不能存在其他的目录或文件。
执行文件路径的变量:$PATH
例如查看文件属性的命令是ls,而ls完整的文件名是/bin/ls,为什么我们可以在任何地方执行ls这个命令呢,这是因为环境变量PATH的帮助。当我们输入ls的时候,系统会依照PATH的设置去每个PATH定义的目录中查找文件名为ls的可执行文件,如果在PATH定义的目录中含有多个文件名为ls的可执行文件,那么先查询到的同名命令先被执行。
默认情况下,如果用户创建文件,则默认没有可执行权限(x),只有r、w这两个选项,即默认权限是-rw-rw-rw(666)
默认情况下,如果用户创建目录,则默认所有权限均开放,即为drwx-rwx-rwx(777)
unmask的分数是指“该默认值需要拿掉的权限”,例如上面的022表示用户没有被拿掉任何权限,用户组和其他被拿掉了写的权限。
如何使用unmask修改新建文件的默认权限,直接在unmask后面加上分数就好了
比如:
···
unmask 002 就表示用户和用户组的读写权限不被拿掉,其他会被拿掉写的权限
···
2.与用户或用户组名有关的参数
-uid n 其中n表示数字,即用户的ID,也称为UID
-gid n 其中n表示数字,即用户组名的ID,也称为GID
-user name 其中name为用户的账号名称
-group name 其中name为用户组名
-nonuser 表示寻找文件的所有者不存在在/etc/passwd中的文件
-nongroup 表示寻找文件的所有用户组不存在于/etc/group中的文件
例如:
3.与文件权限及名称有关的参数
-name filename 查找文件名为filename的文件
-size [+-] SIZE 查找比size大(+)或小(-)的文件
-type TYPE表示查找文件类型为TYPE的文件
-perm mode表示查找文件权限刚好等于mode的文件
-perm -mode表示查找文件权限必须全部包括mode的权限的文件
例如 查找文件权限为-rwxr--r--的文件,即权限744,那么文件权限为-rwxr-xr-x(755)的文件也会被列出来,因为-rwxr-xr-x的属性包括了-rwxr--r--的属性
-perm +mode表示查找文件权限包含任一mode的权限的文件,例如查找-rwxr-xr-x,但是另一个文件属性包括-rw-------的文件也会被列出来,因为它有-rw属性存在
4.其他可进行的操作
-exec command :其中command表示其他命令,-exec表示接其他命令来处理查询的结果
-print 表示将结果打印在屏幕上
vi和vim的区别是vim是vi的高级版本
为什么要学vim
1.所有的linux like 系统都会内置vi文本编辑器,而其他的文本编辑器不一定有
2.很多软件的编辑接口都会主动调用vi
3.vim有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便设计
vi的使用:
vi有三种模式:一般模式、编辑模式、命令行模式
一般模式:使用vi打开一个文件的时候就进入了一般模式,在这个模式中可以按左右键移动光标,可以删除字符或删除整行,也可以复制粘贴你的文件数据。但是不可以编辑文件。
编辑模式:在一般模式下按下“i 、I、o、O、a、A、r、R”等任何一个字母才会进入编辑模式,按esc退出编辑模式
命令行模式:在一般模式下,输入“:、/、?”就进入了,命令行模式,在这个模式下可以进行读取、保存文件,离开vi等操作。
编辑牧师和命令行模式之间是不可以切换的。
一般模式切换到命令行模式可用的按钮
:w 表示将编辑的内容写入到硬盘中
:w! 表示如果文件属性为 只读时,强制写入该文件
:q表示离开vi
:q!表示如果文件有修改过,不保存强制退出,
:wq表示保存后离开
vim的用法和vi完全一样
管道命令仅会处理standard out,对于standard error output会予以忽略
管道命令必须要能够接收来自前一个命令的数据成为standard input继续处理才行
选取命令:cut,grep
1.cut -d ‘分隔符’ -f field
cut -c 字符范围
-d表示分隔符
-f表示与-d分隔符一起使用,表示取分割后的第几段
-c表示以字符为单位取出固定字符区间
以“行”为单位进行处理的选取
例如:
2.grep
grep [-acinv] [--color=auto] '查找的字符串' filename
其中
-a表示将binary文件以text文件的放肆查找数据
-c表示计算找到“查找字符串”的次数
-i表示忽略大小写的不同
-n表示输出行号
-v表示反向选择,即显示出没有‘查找字符串’内容的那一行。
--color=auto表示将找到的关键字部分加上颜色
例如:
首先学习一下grep命令的一些高级参数
grep [-A] [-B] [--color=auto] ‘搜索字符串’ filename
其中:
-A :后面可加数字,表示after的意思,除了列出该行外,后续的n行也列出来。
-B :后面可加数字,表示before的意思,除了列出该行外,前面的n行也列出来。
--color=auto表示将选取的数据添加颜色
grep是一个很常用的命令,grep在数据中查找一个字符串时,是以整行为单位来进行数据的选取的。假如一个文件有10行,其中有两行具有你查找的字符串,则将那两行显示在屏幕上,其他的丢弃。
例如
1.查找特定的字符
2.利用中括号[]来查找集合字符
[]里面不论有几个字符,它都只代表某“一个”字符
3.行首与行尾字符^$
^ 出现在[]之外表示定位在首行,^ 出现在[]中表示方向选择
4.任意一个字符.与重复字符*
.(小数点):代表一定有一个任意字符
*(星号):代表重复前一个字符0到无穷次的意思
例如:
5.限定连续RE字符范围{}
因为符号{}在shell中是有特殊意义的,因此必须要使用转义字符来让它失去特殊意义才行。
例如
^word 表示待查找的字符word在首行
word$ 表示待查找的字符在结尾
.(小数点)表示一定有一个任意字符的字符
表示转义字符,将特殊符号的特殊意义去掉
*表示重复零个或无穷多个前一个字符
[list]表示从字符集合list中找出想太选取的一个字符
[n1-n2]表示从字符集中查找想要选取的字符范围
[^n1-n2]表示从字符集中查找不要的字符串或范围
{n,m}表示连续n到m个前一个字符,若为{n}表示连续n个前一个字符,{n,}表示连续n个以上前一个字符。
sed命令可以将数据进行替换、删除、新增、选取特定行等
sed [-nefr] [动作]
其中
-n表示使用安静模式,在一般sed用法中,所有来自STDIN的数据一般都会被列出在屏幕上,但如果加上-n参数后,则只有经过sed特殊命令处理的那一行才会被列出来。
-e表示直接在命令行模式上进行sed的动作编辑
-f表示直接将sed的动作写在一个文件内
-r表示sed的动作支持的是扩展型的正则表达式,默认是基础型的正则表达式
-i表示直接修改读取的内容,而不是由屏幕输出
动作说明:
[n1[,n2]] function
n1,n2:不一定会存在,一般代表选择进行动作的行
function 有下面的参数
a表示新增,a后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行)
c表示替换,c的后面可以接字符串,这些字符串可以替换n1,n2之间的行
d表示删除
i表示插入,i后买呢可以接字符串,而这些字符串会在新的一行出现(目前的上一行)
p表示打印,将某个选择的数据打印出来,通常会和参数-n一起运行
s表示替换,可以直接进行替换工作,sed ‘s/要被替换的字符串/新的字符串/g'
例如
awk是非常棒的数据处理工具。
awk '条件类型1{动作1} 条件类型2{动作2} 条件类型3{动作3}....' filename
awk主要是处理每一行的字段内的数据,而默认的字段的分隔符是空格键或[tab]键。
例如
awk内置变量有:
例如:
awk的逻辑运算符
例如:
我们发现上面会输出第一行奇怪的数据,是因为当读入第一行的时候,变量之间还是以空格键进行分隔的,所有,我们虽然定义了FS=":",但是却在第二行后开始生效,我们可以利用BEGIN这个关键字。
使用awk进行计算统计
例如
格式输出中,在printf的格式设置中,务必加上
,才能进行分行
在awk中变量可以直接使用,不用加上$符号
crontab进行工作调度
crontab [-u username] [-l | -e | -r]
-u表示只有root才能进行这个任务
-e表示编辑crontab的工作内容
-l表示查阅crontab的工作内容
-r表示删除crontab的所有工作内容
例如
其中由6个字段组成
分别表示的意义是:
分钟 小时 日期 月份 周 命令
0-59 0-23 1-31 1-12 0-7 命令
其中周的0和7都表示星期日
表示任意时刻
,(逗号)表示分隔时段的意思,例如0 3,6 * * * commond,表示在3和6时执行
-(减号)表示一段时间范围,例如20 8-12 * * * commond,表示8到12时之间每小时的20分执行。
/n(斜线)表示每隔n单位间隔的意思,例如 /5 * * * * commond,表示每隔5分钟执行一次。
执行crontab -e这个crontab其实是/usr/bin/crontab这个执行文件。
scp -r 源文件路径 root@ip:目标文件路径
2. 在windows命令行中如何运行c程序的文本
1、打开命令行界面:键盘win + r ,输入cmd,回车。即可打开命令行。
3. linux命令行如何运行程序
要充分理解本文,必须具备Windows 环境下桌面应用程序的工作经验,我认为读者对如何使用 Linux 桌面有一个基本的了解。使用一个运行的 Linux 计算来机探讨本文的概念和示例是很有帮助的。
有时候第一次在 Linux 上运行一个应用程序需要一点额外工作。有些应用程序,比如服务器服务,可能无法安装为服务,因此您需要从命令行启动这些应用程序。对于启动这些应用程序的用户帐户而言,需要在应用程序文件中设置执行许可标志 (x)。
Linux 在内核空间或用户空间运行进程。用户空间 是操作系统的区域,应用程序通常在此运行。简单地说,每个用户帐户有其自己的用户空间,应用程序在这个领域内运行。
默认情况下,只有 root 用户有权访问内核空间。root 用户 是 Linux 中的超级用户,相当于 Windows 中的管理员帐户。在 root 用户帐户下运行应用程序可能会引起安全风险,是不可取的。
很多服务器服务需要 root 权限启动服务。然而,服务启动后,root 帐户通常会将其移至服务帐户。严格地说,Linux 中的服务帐户 才是标准的用户帐户。主要区别是服务帐户仅用于运行一个服务,而不是为任何实际登录的用户准备的。
您可以使用 chmod 命令在一个文件中设置执行权限。在 Linux 中,umask 设置通常用来防止下载的文件被执行,也有充分的理由相信,因为它有助于维护 Linux 计算机的安全性。
大多数 Linux 发行版具有一个值为 022 的 umask 设置,这意味着,默认情况下一个新文件权限设置为 644。权限的数字表示形式采用读 (4)、写 (2)、执行 (1) 的格式。因此,默认权限为 644 的应用程序下载意味着文件所有者有读写权限,而组用户和其他用户只有读权限。
例如,为每个人赋予一个文件的执行权限,使用 chmod a+x 命令。a 表示所有人,加号 (+) 表示添加,而 x 表示执行。同样地,如果应用程序是一个服务器服务,您应该确保只有授权帐户才有权执行此服务。
如果一个应用程序能够在标准用户帐户权限下运行,但只有特定组中的用户才需要使用它,您可以将该组所有者权限设置为可执行,然后将这些用户添加到该组中。
更具体地说,您可以在一个可执行文件中设置访问控制列表 (ACL) 权限,赋予特定用户或组权限来运行该应用程序。使用 setfacl 实用工具设置 ACL 权限。
对于这些需要以 root 用户启动进程的应用程序,比如服务器服务,您有几个选择。总结了允许用户执行需要 root 权限的服务器服务的各种选项。
作为 root 用户 不推荐用于服务器服务。当用户已经知道 root 密码而且应用程序泄露不是首要关注问题时,可用于应用程序。
SetUID 由于安全问题,不推荐使用。SetUID 允许标准用户以另一个用户方式,比如 root 用户,执行一个文件。
sudo 很常用,并且被认为是一个很好的实践。sudo 授予一个用户或组成员权限以执行可能额外需要 root 权限的文件。该用户不需要知道 root 密码。
带有文件权限的标准用户帐户 在一个文件上为用户所有者、组所有者或其他人(所有人)设置执行权限。这是授予那些不需要 root 权限来执行应用程序的用户的常用方法。
带有 ACL 权限的标准用户帐户 使用较少,但是如果您不想授予一个用户 sudo 访问或者更改文件的权限,这也是一个可行的解决方案。在一个文件上使用 setfacl 命令,您可以授予一个特定用户或用户组执行该文件的权力。
在管理 Linux 服务器时,从命令行运行应用程序是一项基本的任务。很多应用程序使用 shell 脚本(类似于 Windows 批处理文件 .bat)来启动应用程序并执行其他任务,比如设置变量以及为其他用户分配进程。例如,应用程序可能需要一个 java™ Virtual Machine (JVM) 来执行。那样的话,shell 脚本可以设置适当的环境变量,然后执行 Java 命令来运行 Java Archive (JAR) 或类文件。这同样适用于使用 Perl、python、甚至 C# 的应用程序。(当然,C# 编译的应用程序可以在 Linux 上运行)
从命令行或者 shell 提示符执行应用程序的一个常用方法是使用 ./ 命令。如果您在 Linux 中使用句号 (.) 和正斜杠 (/),就意味着告诉环境您想要以可执行文件运行该文件。例如,运行一个名为 myapp 的可执行文件,您可以使用 ./myapp 命令。同样地,您可以在文件名之前加上语言环境,比如:
sh php python perl java
但更多情况下,套装应用程序使用 shell 脚本,以 #! 符号设置环境变量提供该语言的运行时可执行路径,比如 #!/usr/bin/python。您也应该熟悉这种方法。
清单 1 使用 catalina.sh 默认脚本通过 ./ 方法启动 Apache Tomcat 应用程序服务器。然后,使用 sh 方法启动服务器。因为默认端口是 8080,标准用户不需要对其进行特别修改就可以启动该服务。
4. 怎样用CMD运行EXE文件,命令是什么
1、打开Windows上的“开始”菜单。单击桌面左下角的“开始”按钮打开“开始”菜单。
5. 电脑如何进入命令行窗口,并执行命令
在win系统下进入命令提示符的方式是在开始的输入框中输入“cmd”,然后按“enter”进入。cd为进入的命令。
具体步骤如下:
步骤一:在pc端主界面中点击“开始”菜单栏,输入“cmd”,按“enter”进入命令提示符界面。
6. 如何在linux命令行中执行应用程序
具体步骤如下:
1、首先我们在命令行运行程序需要借助jdk的环境依赖,打开jdk包。