##linux基本命令学习01
Unix/Linux最主要的应用领域是基础服务器应用,
如DNS服务器(域名系统 )、DHCP服务器(动态主机配置协议)、Web服务器(网站服务器)、FTP服务器(文件传输协议)、防火墙等。
X Window系统不是Unix/Linux操作系统的必须的构成部分,而只是一个可选的应用程序组件。
纯字符界面又叫文本模式。
=============================================================================
-rwxrwxrwx 所有的用户都可读可写可执行
-rwx------ 文件的所属用户可以读写执行,但其他用户都不可读写执行
-rwxrwx— 文件的所属用户和组内用户可以读写执行,但其他用户不可读写执行
---------- 所有的用户都不可读写执行
第一位表示的文件意义:
“-”表示常规文件;“d”表示目录;“c”表示字符设备文件;“b”表示块设备文件;“s”表示管道文件;“l”表示链接文件。
文件存取权限:从左到右每3位为一组,依次代表文件拥有者、同组用户和其他用户的存取权限。
通常文件共有3个权限:“r”表示只读;“w”表示可写;“x”表示可执行;“-”表示未设置。
=============================================================================
linux文件或者目录名称最长可以有265个字符,.代表当前目录,…代表上一级目录,
以.开头的文件为隐藏文件,需要用-a参数才能显示。
-a 显示指定目录下所有子目录与文件,包括隐藏文件。
-l 以长格式显示文件的详细信息。
二者也可以结合使用 ,例如: ls -al
* 代表文件名中所有字符
? 代表文件名中任意一个字符
ls d* 查找以字母d开头的所有的文件
ls a*b 查找以字母a开头,b结尾的所有文件
ls a? 查找a开头,文件名只有2个字母,第二个字符任意的文件名
ls [abc]* 查找a或者b或者c开头,后面任意的文件名
ls [a-f]* 查找从a到f之间开头的任意文件名
ls [1-7]* 查找从1到7之间开头的任意文件名
注意:当“-”处于方括号之外,或“?”和“*”处于方括号内时不用使用转义字符就已失去通配符的作用。如下:
ls [*] 查找以*开头的文件名
ls a-f 查找文件名叫a-f的文件
如果要使通配符作为普通字符使用,可以在其前面加上转义字符\ 如下:
ls \*1 查找*1这个文件名
=============================================================================
重定向命令
> 输出重定向:将某一命令的执行结果重定向到另外一个文件中去
>> 附加输出重定向
< 输入重定向
ls > a.txt 把ls显示的结果存放入文件a.txt中
ls >> a.txt 追加重定向,如果a.txt已经有内容了,不会覆盖已有内容,而是在a.txt后面追加
=============================================================================
more的功能:
显示文件内容,当文件内容太多时,会出现快速滚屏,使得用户无法看清文件的内容,
此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
例如:如果一个目录里面有特别多的文件,现在要把所有的文件名显示出来的话,会出现滚屏,如何解决呢?
答:可以使用一个蠢的方法,把该目录重定向某一个文件里面去,在使用more显示该文件的内容。
但是呢,比较麻烦和啰嗦,我们可以一次性完成,使用 | 管道符即可。
| 管道符:一个命令的输出可以通过管道做为另一个命令的输入
ls | more 把ls显示的结果用分屏来显示,即把ls的输出作为more的输入使用
=============================================================================
cd abc 从当前目录下进入abc子目录
cd … 返回上一级目录,即父目录
cd . 返回当前目录(跟没有操作是一样的)但也是有意义的(随着后面的学习会发现)
cd 后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。
查看当前目录命令
pwd 显示当前路径,使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数
=============================================================================
新建文件
mkdir abc 新建立一个文件夹,名字叫abc
rmdir abc 删除文件夹abc,rmdir只能删除空目录,如果目录里面有文件,那么删除失败
rm a.txt 删除文件a.txt
=============================================================================
ln 源文件 链接文件
ln a.txt a 创建一个链接文件,名字叫a,链接到a.txt,创建的是一个硬链接
ln -s 源文件 链接文件
ln -s a.txt b 创建一个链接文件,名字叫b,链接到a.txt,创建的是一个软链接
硬链接会占用磁盘空间,软链接不会,如果目标文件不存在了,那么硬链接文件还可以访问,但软链接就不行了
=============================================================================
日期相关的命令
cal 查看当前日历
date 显示或设置时间
date '+%y,%m,%d,%H,%M,%S' 年,月,日,时,分,秒
=============================================================================
查看文件的命令cat
cat 该命令可以用来查看或者合并文件内容
cat a.txt 查看文件a.txt的内容,但不会自动分屏
cat a1.txt a2.txt > a3.txt 将a1.txt a2.txt的内容合并为a3.txt
grep
grep hello a.txt 在a.txt中查找字符串hello(指定文件中搜索指定字符内容)
grep printf stdio.h 在stdio.h中查找包含printf的行
grep -v printf stdio.h 在stdio.h中查找不包含printf的行
grep -n printf stdio.h 在stdio.h中查找所有包含printf的行及行号
grep -i printf stdio.h 在stdio.h中查找包含printf的行(忽略大小写式的查找)
grep '^a ' stdio.h 在stdio.h文件中查找以a开头的行
grep ‘a$' stdio.h 在stdio.h文件中查找以a结尾的行
grep '^a.b ' stdio.h 在stdio.h文件中查找以a、任意一个字符和b开头的行
wc
wc -l a1.txt 计算文件a.txt的行数
wc -w a1.txt 计算文件a.txt的字数
wc -c a1.txt 计算文件a.txt的字符数
find
find ./ -name 1.txt 从当前目录开始查找所有的子目录,名字为1.txt
find / -name 1.txt 从根目录开始查找所有的子目录,名字为1.txt
rm
rm -i 1.txt 询问是否删除掉文件1.txt
rm -f 1.txt 强制删除掉文件1.txt,忽略不存在的文件,无需提示
rm -r 1.txt 递归地删除目录下的内容
rm -rf * 强制删除当前目录下所有的文件和子目录
cp [参数] 源文件或目录 目标文件或目录
cp ./2/a.txt ./1/a.txt 拷贝当前目录下2目录下的a.txt到当前目录下的1目录下
linux中mv命令使用详解
mv ./2/a.txt ./1/a.txt 将a.txt从当前目录下2目录下移动到当前目录下1目录下
mv 123.txt 1.txt 把123.txt改名为1.txt(文件改名)
3.命令参数(即选项):
-b:若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
-i :若目标文件(destination) 已经存在时,就会询问是否覆盖!
-u:若目标文件(destination) 已经存在,且 源文件source 比较新,才会更新(update)。
-t :即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
windows下的文件一般都有扩展名,但linux下很多文件没有扩展名,即linux不依靠扩展名来区分文件类型。
windows下所有的文件类型都是通过文件的扩展名实现的。
linux的扩展名只是一个名而已,不代表文件类型。
file 1.exe 该命令得到文件类型
clear linux的清屏
cls windows的清屏
ps命令
ps -a 显示终端上的所有进程,包括其他用户的进程
ps -u 显示进程的详细状态
ps -x 显示没有控制终端的进程
ps -w 显示加宽,以便显示更多的信息
ps -r 只显示正在运行的进程
ps -aux 查看所有的进程,包括前端后台 。注意:参数中的 - 可以有,也可以没有哦
top命令
top命令 该命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。
可以在使用top命令时加上-d <interval>来指定显示信息更新的时间间隔。
思考题:如何把显示的内容显示成我所想要的。
多个命令结合起来用(小技巧)
ls -l | grep '^d' 只把目录显示出来
ls -l | grep '^-' 只把文件显示出来
whoami
该命令用于查看当前系统当前账号的用户名
使用该命令的原因:
由于系统管理员通常需要使用多种身份登录系统,(因为linux是一个多用户系统)
例如通常使用普通用户登录系统,然后再以su命令切换到root身份对系统进行管理。
这时候就可以使用whoami来查看当前用户的身份
who命令
该命令用于查看当前所有登录系统的用户信息
w命令
该命令也可以查看登录当前系统的用户信息。
与who命令相比,w命令的功能更强大,它不但可以显示当前有哪些用户登录到系统,
还可以显示这些用户正在进行的操作,并给出更加详细和科学的统计数据。
tar命令
tar -cvf a.tar a 将目录a打包为文件a.tar,不压缩(注意:其参数前面可以使用“-”,也可以不使用。)
tar -xvf a.tar 将a.tar还原
tar -t a.tar 列出a.tar中包含的文件
压缩命令
gzip a.tar 将a.tar进行压缩,得到a.tar.gz(此压缩比很高的)
gzid -d a.tar.gz 解压缩,得到a.tar
tar -xvf a.tar 将a.tar还原,得到里面的文件
先用tar打包,然后用gzip压缩
先用gzip解压,然后用tar提取文件
命令行情况下如何同时执行多个程序?怎么做呢?(即后台作业方法)
法一:若该程序想要一开始就放到后台去执行,则使用 命令& 例如:vi & 、top & (但注意top & 会被终止掉)
法二:若该程序已经在执行的话,先使用ctrl+z可以将程序调入后台,再用jobs 查看后台运行的程序,
再通过 fg 编号 回到之前的程序
man 在通常使用man命令的时候,不用携带选项,即可直接查询命令帮助手册获得查询命令准确的用法。
重启关机命令
reboot 用于重新启动操作系统
init 6 用于重新启动操作系统
shutdown –r now 立刻重启,但有提示
shutdown –h now 立刻关机,但有提示
init 0 立刻关机,但无提示
init 3 切换到命令行模式
init 5 切换到x windows模式
df/du命令
df命令 用于检测文件系统的某一磁盘空间占用和空余情况
du命令 用于统计某一目录或文件所占磁盘空间的大小
mkfs命令 该命令相当于DOS/Windows系统中的格式化命令,用于创建指定的文件系统
rpm安装命令
用rpm工具安装应用软件(参数组合使用)但不同的linux具有不同的安装卸载软件方法。
rpm -ivh 要安装的安装包文件名
在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,
并且对于不同的系统资源拥有不同的使用权限。
标准账号是操作系统安装时,自动建立的用户启动相应的应用程序,超级用户在向系统添加普通用户的时候,
不能和系统中已有的标准用户同名。
在大多数版本的Unix/Linux中,都不推荐直接使用root账号登录系统。
当系统管理员需要从普通用户切换到超级用户时,可使用su或su -命令,然后输入root账号的密码即可,而不用重新登录。
有一个问题:ubuntu下安装的时候默认是不设置root密码的,但切换到root用户的时候又需要提供root密码,如何解决呢?
答:执行命令设置root密码:sudo passwd root回车 后在输入密码即可设置完毕root用户的密码。
若需要返回原来的普通用户账号时,直接输入exit命令即可。
(注意:Centos和RedHat在安装的时候就已经让你设置root密码了)
如果要进入别的普通用户账号,可在su命令后直接加上其他账号,然后输入密码。
如果su命令后没有携带用户名,系统默认从当用户切换到超级用户,并提示用户输入超级用户口令。
su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户的主目录。
添加用户或者组时,只有root用户才有这个权限。
添加/删除一个组:
groupadd abc 添加一个组,名字叫abc
groupdel abc 删除一个组,
添加一个用户账号:
-d的意思是:指定用户的主目录,什么是用户主目录呢?就是用户第一次登陆的时候默认的目录。
linux的主目录一般都设置在根目录的home目录下,这不是系统的要求,只是一个规则。(很重要)
要求:增加一个用户,用户名叫aabb,指定用户的主目录在/home/aabb,(注意:主目录的目录名和用户名一般是相同的)
-m意思是:如果-d指定的主目录不存在,那么就自动创建这个主目录。例子如下:
useradd -d /home/aabb aabb -m 添加一个用户,用户名叫aabb。
userdel aabb 将aabb用户删除,注意:指定用户的主目录还在哦。
userdel -r aabb 删除aabb用户,同时自动删除用户的主目录。
useradd -d /home/aabb aabb -m -g abc 添加一个用户aabb,主目录在/home/aabb目录,该用户在组abc中。
-g的意思是:指定组的名称
注意:每添加一个用户账号后需要设置密码。
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。
用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。命令如下:
passwd aabb 设置用户aabb的密码
切换用户的命令
su 用户名
su - 用户名
su的时候不加-,只切换用户,但不改变当前目录。
su的时候加-,切换用户,同时将当前目录切换到目标用户的主目录下。
如果用root su到其他用户,那么不需要输入其他用户密码即可进入。
但如果普通用户之间su的话(即:切换)则必须输入密码。
退出登录exit。
如果要su到root下
su root 但也可以省略root,直接su。
su 只切换用户到root,不改变当前目录。
su - 切换用户到root,同时将当前目录修改为root用户的主目录。
useradd -d /home/aabb aabb -m 添加一个用户aabb,主目录在/home/aabb目录,该用户在没有指定组名。
如果创建用户的时候没有指定组名,那么系统默认会创建一个和用户名相同的组名,同时把这个用户放到这个组里面。
示例:
登录 zhujy 用户 -》 登录 aabbcc 用户-》 登录 root 用户
只有一个用户退出登录后才能删除这个用户,一个已经登录的用户是无法删除。
-----------------------------------------------------------------------------
如何知道(或查看)系统的用户和组?
答:用root登录系统,然后进入根目录下的etc目录,查看shadow文件内容:cat shadow 和 cat passwd。
-----------------------------------------------------------------------------
查看用户最后一次进入系统状态命令 last
不管是哪位用户从哪里登录,管理员都可以通过last命令查出,以及是否有人非法登录。
-----------------------------------------------------------------------------
注意:linux下命令“ll”是“ls -l"的别名。别名相当于windows里的快捷方式。 所以"ll"和“ls -l”的功能是相同的。
所以"ll"和"ls"的区别其实是“ls”和"ls -l"的区别。”ls“是显示当前目录下文件,”ls -l“是显示当前目录下文件详细信息。
a.txt
c:\abc\a.txt windows写法(反斜杠)
/abc/a.txt linux写法(斜杠)
cat
相对路径表达方法
cat a.txt 如果不加任何路径说明,默认是当前目录下的文件。
cat ./a.txt 明确的指明,a.txt在当前目录下,这是一种相对路径的写法。
cat ../a.txt 明确的指明,a.txt在上一级目录下,这也是一种相对路径的写法。
cat ./../a.txt 明确的指明,a.txt在上一级目录下,这也是一种相对路径的写法(与上一种等同)。
cat ../2/a.txt a.txt 在上一级目录的2子目录下。
绝对路径,绝对路径总是从根目录开始的。
/home/zhujy/2/a.txt
注意:
普通用户的主目录一般都是在/home/下
root用户的主目录在/目录下
常见的Unix/Linux系统目录如下:
/: Unix/Linux系统的根目录,包含Unix/Linux系统的所有目录和文件。
/etc: 有关系统设备与管理的配置文件。
/sbin: 存放系统启动时所需的运行程序。
/bin: 该目录中含有常用的命令文件。
/usr/local: 存放用户后期安装的应用程序文件。
/root: 超级用户主目录。
/dev: 接口设备文件目录,保存外围设备代号。(Unix/Linux系统把每个设备都映射成一个文件,这就是设备文件。)
/home: 普通用户的宿主目录,通常将其设置在独立的分区。
PC机上最多有4个IDE设备,可能是磁盘,也可能是CD/DVD设备。
(PC机上装的硬盘一般都是IDE硬盘:价格便宜、读写速度慢、不能热插拔)
在Unix/Linux中,对于IDE磁盘,使用“hd”表示,并且在“hd”之后使用小写字母表示磁盘编号。
磁盘编号之后是分区编号,使用阿拉伯数字表示。主分区的编号依次是1~4,扩展分区上的逻辑分区编号从5开始。
SATA和SCSI磁盘共同使用“sd”表示。常用存储设备的名称表示如表所示。
(服务器上装的硬盘一般都是SCSI硬盘)
Unix/Linux文件的命名规则:
(1) 文件名最长可以达到256个字符,可由A~Z、a~z、0~9、.、-、_、等符号组成。
(2) 文件名区分大小写。
(3) 文件没有扩展名的概念。
(4) 使用“/”作为根目录和目录层之间的分隔符。
(5) 支持相对路径和绝对路径。
在Unix/Linux操作系统中也必须区分文件类型,通过文件类型可以判断文件属于可执行文件、文本文件还是数据文件。
在Unix/Linux系统中文件可以没有扩展名。
通常,Unix/Linux系统中常用的文件类型有5种:普通文件、目录文件、设备文件、管道文件和链接文件。
windows中 a.txt,A.TXT是一样的
linux中 a.txt,A.txt是不一样的
A.txt
a.txt
a.Txt
a.tXt
A.Txt
在linux中都不一样
修改文件或目录的访问权限
法一:使用chmod命令和参数的方式:
chmod [参数] 文件或目录名
chmod o+w a.txt 给其他用户添加写的权限
chmod u-r a.txt 给属主解除读的权限
u:属主,即文件或目录的所有者,拥有对文件最大的读写权限。
g:属组,即与文件属组有相同组ID的所有用户。
o:表示其他用户,通常只具有浏览权限。
a:表示以上所以用户。
法二:使用数字的方式:
rwx rwx rwx 对应于 111 111 111
--- --- --- 对应于 000 000 000
000 001 010 011 100 101 110 111
0 1 2 3 4 5 6 7
rw- r-- --- rwx rwx rwx r-x -w- --x
110 100 000
6 4 0 7 7 7 5 2 1
chmod 640 1 chmod 777 1 chmod 521 1
对一个目录来讲,
如果没有r权限,那么就不能用ls命令查看目录的内容了(读权限)
如果没有w权限,那么就不能在目录下删除或者增加文件了(写权限)
如果没有x权限,那么就不能用cd命令来进入这个目录了(执行权限)
修改文件的所有者
使用chown 用户名 文件或目录名
例如:chown root a.txt
修改文件的所有组
chgrp 用户名 文件或目录名
例如:chgrp root a.txt
vi默认是命令模式,
在命令模式下按i或者a进入输入模式。
在输入模式下按esc进入命令模式。
保存:
在命令模式下按 :w 文件名
退出:
在命令模式下按 :q
vi 命令后面没有加文件名时,默认会开启vi,但不会自动打开任何文件,如果在vi中输入了字符,那么就需要执行w命令的时候,后面加文件名。
vi 文件名 如果文件存在,那么就打开这个文件;如果文件不存在,那么就创建这个文件,那么执行w命令的时候,就不需要再写文件名。
:wq 保存同时并退出,不能写成:qw
用vi打开一个文件,修改内容后,如果没有用 :w 保存,直接用 :q 退出的话会提示失败。
如果想不保存退出,那么用 :q!
和很多基于图形的编辑器一样vi也提供撤销功能,对于一个编辑器来说,提供撤销功能是必要的。
用户可以在命令模式下输入“u” 就可以撤销上一次操作。
vi的插入模式
a 光标位置右边插入文字
i 光标位置当前处插入文字
o 光标位置下方开启新行
O 光标位置上方开启新行
I 光标所在行首插入文字
A 光标所在行尾插入文字
退出vi
ZZ 保存退出
:wq 保存退出
:x 保存退出
:w filename 保存到指定文件
:q 退出,如果文件修改但没有保存,会提示无法退出
:q! 退出,不保存
:! 命令暂时退出vi,执行相应命令
vi的删除功能
在vi的输入模式下,用户可以使用Backspace(退格键)来删除光标前面的内容,还可以使用delete键来删除当前的字符。
此外,在vi的命令模式下还提供了几个按键用来删除一个字符或进行整行删除,
x 删除当前光标所在的字符
X 删除光标前一个字符
D 删除光标所在开始到此行尾的字符
dd 删除光标所在的行
dG 删除光标所在开始到文件尾的所有字符
J 合并两行
vi的行定位功能
Ctrl + f 向前卷动一个屏幕
Ctrl + b 向后卷动一个屏幕
G 到文件最后一行行首,G必须为大写
:$ 到文件最后一样行尾
mG 到指定行,m为目标行数,
:set nu 显示行号(这个命令很重要)
:set nonu 显示行号(这个命令很重要)
/内容 查找指定内容
-----------------------------------------------------------------------------
vi的文本查找功能
/字符串 查找指定字符串
n 寻找下一个
N 回到前一个
? 寻找上一个
/^字符串 查找以字符串开始的行
/字符串$ 查找以字符串结尾的行
/a.b 查找字符串a到任意字符b
-----------------------------------------------------------------------------
vi的文本替换功能
r 替换当前光标字符
:r 文件名 在光标当前位置载入另一个文件的内容
:开始行号,截止行号 s /源字符串/目标字符串/g 在指定行号范围内替换字符串(例子如下所示)
:1,$ s /start/end/g 从第一行开始到文件最后,将字符串start全部替换为end
-----------------------------------------------------------------------------
vi的set指令
:set ic 搜寻时忽略大小写
:set noic 搜寻时不忽略大小写
:set nu 显示行号
:set nonu 不显示行号
小练习步骤:
1、进入root,先创建一个用户abc(注意:创建用户后需要设置用户密码)
useradd -d /home/abc abc -m -s /bin/bash -s代表指定一个shell(这个bash shell更舒服更漂亮些)
useradd -d /home/abc abc -m -s /bin/sh -s代表指定一个shell(默认sh shell)
2、退出root,登录到用户abc
3、用vi写一个c语言的hello world (注意:文件名叫a.c 如果是c语言的源代码文件,扩展名必须是.c)
4、编译这个程序(编译c语言的源代码文件)
gcc -o a a.c -o a:意思是指定编译后的程序名为a。即要编译a.c这个源文件,编译后的可执行程序名字叫a
5、运行这个程序
linux默认不会在当前目录下查找可执行程序;
./a 明确的告诉操作系统,a是在当前目录下。
如何设置语法高亮?
SeccureCRT中的终端类型默认是VT100或者Xterm,我们要选择linux。字符集一定要是utf8
如何设置默认vi开启的时候,自动显示行号?
第一步,回到用户的主目录下的方法 cd 什么都不加回车即可。
第二步,回到主目录下,生成一个叫.vimrc的文件,文件名前面必须有个。
第三步,在.vimrc中输入set nu。
第四步,保存退出。
linux系统下Vi编辑器或者Vim编辑器设置显示行号、自动缩进、调整tab键宽度的技巧?
工作中嫌vim 中一个tab键的宽度太大,linux系统默认,没改之前是一个tab键宽度是8个字符,想改成4个字符,
操作如下:(注意:这是在root用户下)
cd ~
vim .vimrc
添加如下几行:(注意:括号中的不是哦,是我添加的注释说明)
set shiftwidth=4 (表示每一级缩进的长度)
set softtabstop=4 (表示在编辑模式的时候按退格键的时候退回缩进的长度)
set nu (显示行号)
set autoindent (自动缩进)
:wq (保存退出)
source .vimrc (使配置文件生效)
**bug纠正**
当在其他用户下,按照上面修改后会发现,每次用vi打开文件后,会出现错误,如下:
Error detected while processing /home/chen/.vimrc:
不影响编辑,但是很别扭,肯定有不对的地方。
这是需要:
在root用户下使用命令 vi /etc/vim/vimrc.tiny 修改文件,将set compatible 设置成set nocompatible。这是因为有时候系统会默认vim兼容vi,所以使用vi的命令。不影响编辑,但是很别扭,肯定有不对的地方。
shell 一个linux的字符界面会有很多种不同的shell,shell是字符界面的人机交互模式
sh是最古老的,也是最基本的unix的shell
如果在创建用户的时候,没有指定shell,那么登录这个用户的时候默认的shell是sh
shell本身也是一个程序,一般在/bin目录下
gcc在linux下是操作系统自带的,因为linux操作系统本身就是用gcc编译的。
windows并不会自带gcc,在windows系统下如何使用gcc呢?
方法一,直接去gcc的官网下载安装版本;
方法二,安装QT的时候QT会带一个gcc的版本,gcc一般在qt的安装目录下。
找到gcc.exe在windows下的安装路径,然后把这个路径放入windows系统环境变量的path里面,在path的最后面加上 ;gcc的安装路径。
如何设置linux系统可以在当前目录查找可执行程序的方法?
1,回到用户的主目录 cd
2,在用户的主目录下,打开文件.profile(在ubuntu系统), .bash_profile(在redhat、centos系统下)
3,在.profile文件的最后,添加一行 export PATH=$PATH:. 注意这里要大小写敏感
4,保存退出
5,执行 source .profile (redhat系统)source .bahs_profile
注意:以上所有的的修改只是针对具体某一个用户的,比如说用户a修改了,但用户b不会生效,比如说root修改了,那么其他用户也不会生效。
ip相關的命令
ifconfig 显示网络参数
ifconfig –a 显示网络配置信息
eth0 网络接口名称
Link encap 链路封装协议
Hwaddr 网络接口的MAC地址
Inet addr IP地址
Bcast 广播地址
Mask 子网掩码
UP 网络接口状态标识,UP已经启用,DOWN已经停用
BROADCAST 广播标识,标识网络接口是否支持广播
RUNNING 传输标识,标识网络接口是否已经开始传输分组数据
MULTICAST 多播标识,标识网络接口是否支持多播
MTU,Metric MTU:最大传输单位,单位:字节。Metric:度量值,用于RIP建立网络路由用
RX bytes 接收数据字节统计
TX bytes 发送数据字节统计
-----------------------------------------------------------------------------
route 网络路由设置
route 可以增加,修改,显示路由信息
-----------------------------------------------------------------------------
netstat 该命令监控网络状态,包括接口设置,IP路由,各种网络协议的统计
-----------------------------------------------------------------------------
ping 测试远程主机连通性
ping通过ICMP协议向远程主机发送ECHO_REQUEST请求,期望主机回复ECHO_REPLY消息
通过ping命令可以检查是否与远程主机建立了TCP/IP连接。
=============================================================================
如何把服务器上的abc.c文件传输到windows下去呢?
1、在CRT上的链接对话框右键打开 选择连接SFTP会话
2、在sftp里面要进入远程的路径和本地的路径,如下:
先用命令pwd 查看远程连接到的linux的目录
cd 1 进入远程连接到的linux的1目录
lcd \test 进入本地window目录
3、get abc.c 从远程目录得到文件abc.c,放入本地目录test
如何把windows下的aaa.c文件传输到linux服务器去呢?
1、在CRT上的链接对话框右键打开 选择连接SFTP会话
2、使用命令 sftp> put aaa.c
3、在CRT下使用 cat aaa.c 查看aaa.c
windows下的http.tar.gz源代码文件的使用方法?
步骤零:在CRT上的链接对话框右键打开 选择连接SFTP会话
步骤一:先将windows的文件上传到linux
put http.tar.gz
步骤二:回到原始命令行界面 解压
gzip -d http.tar.gz (得到.tar文件)
tar -xvf http.tar (得到http目录)
步骤三:进入http目录
cd http
步骤四:编译这个源代码
make
步骤五:切换到root用户
su
步骤六:用root用户启动程序
./myhttp start
当看到如下:
listen 80 success
myhttp begin
代表程序成功启动了(虽然不会写,但是我们会成功部署别人写好的程序啊!)
在windows浏览器打开 http://192.168.40.134/
可以进行搜索哦!
然后在CRT上的链接对话框右键打开 在新窗口克隆
进入到 chen@ubuntu:~/Desktop/haha/01/http$ 目录下,编辑一个a1.c文件(内容为 hello world)
使用 gcc -o a.cgi a1.c 进行编译后
使用 ./a.cgi 运行得出结果
再在windows浏览器输入 http://192.168.40.134/a.cgi 回车 得到在网页显示的hello world
但是呢,这样显示有些丑,我们可以添加些内容
#include <stdio.h>
int main()
{
printf("<html>");
printf("<img src=aaa.jpg>");
printf("<font color=red size=48>");
printf("hello aheng\n");
printf("</font>");
printf("</html>");
return 0;
}
=============================================================================
换行符 ‘\n’ 和 回车符 ‘\r’ 的区别?
换行符就是另起一新行,光标在新行的开头;
回车符就是光标回到一旧行的开头;(即光标目前所在的行为旧行)
换行符'\n' ASCII值为10,换行(newline begin)
回车符'\r' ASCII值为13,回车(return oldline begin
在windows系统下,回车式的换行符号是"\r\n";
linux命令 uname -r 和 uname -a 的解释与演示
1、uname -r : 显示操作系统的发行版号
2、uname -a :显示系统名、节点名称、操作系统的发行版号、内核版本等等。
linux文件颜色的含义
蓝色表示目录;
绿色表示可执行文件;
红色表示压缩文件;
浅蓝色表示链接文件;
灰色表示其它文件;
红色闪烁表示链接的文件有问题了;
黄色表示设备文件,包括block, char, fifo。