扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、显示日期的指令: date
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、虚拟主机、营销软件、网站建设、龙城网站维护、网站推广。
2、显示日历的指令:cal
3、简单好用的计算器:bc
怎么10/100会变成0呢?这是因为bc预设仅输出整数,如果要输出小数点下位数,那么就必须要执行 scale=number ,那个number就是小数点位数,例如:
4、重要的几个热键[Tab],[ctrl]-c, [ctrl]-d
[Tab]按键---具有『命令补全』不『档案补齐』的功能
[Ctrl]-c按键---让当前的程序『停掉』
[Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit
5、man
退出用q,
man -f man
6、数据同步写入磁盘: sync
输入sync,那举在内存中尚未被更新的数据,就会被写入硬盘中;所以,这个挃令在系统关机戒重新启劢乀前, 径重要喔!最好多执行几次!
7、惯用的关机指令:shutdown
此外,需要注意的是,时间参数请务必加入指令中,否则shutdown会自动跳到 run-level 1 (就是单人维护的登入情况),这样就伤脑筋了!底下提供几个时间参数的例子吧:
重启,关机: reboot, halt,poweroff
8、切换执行等级: init
Linux共有七种执行等级:
--run level 0 :关机
--run level 3 :纯文本模式
--run level 5 :含有图形接口模式
--run level 6 :重新启动
使用init这个指令来切换各模式:
如果你想要关机的话,除了上述的shutdown -h now以及poweroff之外,你也可以使用如下的指令来关机:
9、改变文件的所属群组:chgrp
10、改变文件拥有者:chown
他还可以顸便直接修改群组的名称
11、改变文件的权限:chmod
权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。
--数字类型改变档案权限:
--符号类型改变档案权限:
12、查看版本信息等
13、变换目录:cd
14、显示当前所在目录:pwd
15、建立新目录:mkdir
不建议常用-p这个选项,因为担心如果你打错字,那么目录名称就回变得乱七八糟的
16、删除『空』的目录:rmdir
17、档案与目录的显示:ls
18、复制档案或目录:cp
19、移除档案或目录:rm
20、移动档案与目录,或更名:mv
21、取得路径的文件名与目录名:basename,dirname
22、由第一行开始显示档案内容:cat
23、从最后一行开始显示:tac(可以看出 tac 是 cat 的倒着写)
24、显示的时候,顺道输出行号:nl
25、一页一页的显示档案内容:more
26、与 more 类似,但是比 more 更好的是,他可以往前翻页:less
27、只看头几行:head
28、只看尾几行:tail
29、以二进制的放置读取档案内容:od
30、修改档案时间或新建档案:touch
31、档案预设权限:umask
32、配置文件档案隐藏属性:chattr
33、显示档案隐藏属性:lsattr
34、观察文件类型:file
35、寻找【执行挡】:which
36、寻找特定档案:whereis
37、寻找特定档案:locate
38、寻找特定档案:find
39、压缩文件和读取压缩文件:gzip,zcat
40、压缩文件和读取压缩文件:bzip2,bzcat
41、压缩文件和读取压缩文件:tar
ps:IP.GZIP.TAR有啥区别?那个压缩的程度大?
tar是打包,不是压缩,只是把一堆文件打成一个文件而已GZIP用在HTTP协议上是一种用来改进WEB应用程序性能的技术,将网页内容压缩后再传输。
zip就不用说了,主流的压缩格式。
zip最新的压缩算法还是很好的,建议还是用zip格式化,全平台通用。
tar没有怎样压缩,压缩率100%,主要是永远打包,
zip压缩率看文件类型,jpg就没怎么压缩率,但bmp很高
gzip一般比zip高
复制代码
zip
zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.
unzip
unzip -o -d /home/sunny myfile.zip
把myfile.zip文件解压到 /home/sunny/
-o:不提示的情况下覆盖文件;
-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下
zip 命令:
# zip test.zip test.txt
它会将 test.txt 文件压缩为 test.zip ,当然也可以指定压缩包的目录,例如 /root/test.zip
# unzip test.zip
它会默认将文件解压到当前目录,如果要解压到指定目录,可以加上 -d 选项
# unzip test.zip -d /root/
把你写的程序(可执行文件)放到 /usr/bin/ 下。
或者将你的可执行文件的路径加到PATH环境变量里。
比如, 你写了一个"lssystem"命令(程序), 用来打印系统信息。
这样你把lssystem这个可执行文件拷贝到系统路径下 /usr/bin/
这样就可以直接使用了。
注意一点, linux 命令就是程序的可执行文件。
你是想问在shell(比如说bash)下如何定义一个函数cuts吗?
如果是bash,那么就直接在shell 下输入以下内容
function cuts () {
echo "Hello world"
}
然后就可以在当前终端下调用cuts了,比如
$ cuts
Hello world
如果你是想在某个脚本中调用函数cuts,那么只要把上面那段代码加入脚本中,也就可以用了,比如
#!/bin/bash
function cuts ()
{
echo "Hello world"
}
....
cuts
....
1、linux分区
--在linux里面所有的设备、任何东西,在linux看来都是文件。
--文件在它看来,有两种形式:
第一种是字符型(键盘输入、打印机);
第二种是二进制型(硬盘、光驱、U盘)
--linux中所有硬件
--手动分区
--A、至少有两个分区
/ 根分区
SWAP 交换分区(物理内存大小的两倍)
--B、个人桌面分区
/
/boot 128MB is enough
/usr
SWAP
/tmp(用于光盘刻录)
2、linux目录说明
--/dev/xxyN
--xx (分区所在设备类型:hd--IDE硬盘 sd--SCSI硬盘)
--y (标明分区所在设备
例如:/dev/hda 第一个IDE硬盘 或 /dev/hdb 第二个IDE硬盘 或 /dev/sdb 第二个SCSI硬盘)
--N (数字代表分区:1-4--主分区或扩展分区;逻辑分区从5开始!
例如:/dev/hda3 第一个IDE硬盘上的第三个主分区或扩展分区
/dev/sdb6 第二个SCSI硬盘上的第二个逻辑分区)
3、linux目录结构
/ 根目录,最高级别
/bin 系统基本命令存放目录(/usr/bin)
/boot linux的内核及引导系统程序文件存放目录(如:vmlinuz、initrd.img)
一般情况下,GRUB或LILO系统引导管理也位于这个目录
/dev 设备文件存储目录,如声卡、光驱...
/ect 存放系统设置文件(如用户账号密码、服务器配置文件等)
/home 普通用户家目录,默认存放目录
/lib 库文件存放目录
/lost+found 在ext2或ext3文件系统中,当系统以外崩溃或机器意外关机,而产生一些文件碎片放在这里。
当系统启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。
有事喜用发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或者移文件到原来的位置上。
/media 即插即用型存储设备的挂载点自动在这个目录下创建。
如USB盘系统自动挂在后,会在这个目录下产生一个目录;
类似cdrom的目录
/mnt 存放挂载存储设备的挂载目录,如cdrom等目录
/opt 表示可选的意思,有些软件包也会被安装在此,也就是自定义软件包,
比如OpenOffice,或者一些我们自己编译的软件包,也可安装此处。
/proc 操作系统运行时,进程(正在运行的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在此。
/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统
/root linux超级权限用户root的家目录
/sbin 大多是涉及系统管理的命令的存放,只有超级权限用户root才可执行命令存放,普通用户无权限执行此目录下的命令
与 /usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目录相似
(sbin,只有root权限才能执行)
/tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。
/var/tmp目录和此目录相似
/usr 系统存放程序的目录,如命令、帮助文件等。这个目录下有很多的文件和目录。
大部分Linux发行版提供的软件包都安装在此,涉及服务器的配置文件就安装在/ect中。
/usr/share/fonts 字体目录
/usr/share/man 或 /usr/share/doc 帮助目录
/usr/bin 或 /usr/local/bin 或 /usr/X11R6/bin 普通用户可执行文件目录
/usr/sbin 或 /usr/local/sbin 或 /usr/X11R6/sbin 超级权限用户root可执行命令存放目录
/usr/include 程序头文件存放目录
/var (vary)此目录经常变动
/var/log 用来存放系统日志
/var/www 用来定义Apache服务器站点存放
/var/lib 用来存放一些库文件,如MySQL的,以及MySQL数据库的存放地。
4、基本命令
--查看帮助 *** --help *** --?
--查看详细帮助 man ***
--登录 login
--退出窗口 exit
--关机 shutdown
--重启 reboot
--初始化 init (run level -/etc/inittab),0-6看第六部分的g
--进入根目录 cd /
--回上层目录 cd ..
--相对路径 cd dev
--绝对路径 cd /dev
--查用户名 whoami
--查当前目录 pwd
--列出当前目录内容 ls
-l(树详细显示目录内容)
-m(横列显示目录内容,是屏幕长度显示)
-a(列出全部文件,包括隐藏文件)
-S(以文档大小排序)
--创建目录 mkdir dname
--删除目录 rmdir dname
rm -r *** -(递归删除该目录下所有内容,询问每个准备删除的文件)
rm -rf ***-(强制删除该目录下所有内容,不询问)
--创建空白文件 touch ***
(ps:从技术的角度来讲,linux的文件后缀名没有任何意义)
--复制 cp
cp -r **1 **2 (复制1到2中)
--移动 mv
mv -t **1 **2 (把2移动到1中)
--编辑文本 vi [文件名]
--查看文本 cat 由第一行开始显示文本内容
tac 从最后一行显示,可以看出 tac 是 cat 的倒着写
more 一页一页的显示文档内容
less 与 more 类似,可以往前翻页
head 只看头几行
-N(数字,可根据行数显示)
tail 只看后几行
-N(数字,可根据行数显示)
nl 显示的时候,顺序输出行号
od 以二进制位的方式读取档案内容
--查找文本 find [路径][查找类型][搜索文件名]
如查找rc.local find /etc -name *.local
--查找命令信息及其位置 whereis 命令
如 whereis ls
--查看环境变量 echo $SHELL
如 echo $PATH (分大小写:分隔符是:,windows是echo %path%;)
--链接 ln
如 ln joe.txt a (硬链接,如同复制一个新文件,joe.txt删除后,a还存在)
a是链接的名称,a和joe.txt同步,然后a的内容和joe.txt一样
joe.txt改变,a也跟着变
如 ln -s joe.txt b (软链接,如同创建一个快捷方式,joe.txt删除后,b不存在)
--wc 统计指定文本文件的行数、字数、字符数
--grep(很常用) 在指定的文本文件中查找指定的字符串
grep 字符串 文件名
--col 见管道..
--------------------
----信息显示命令----
--------------------
--date 显示和设置日期
--stat 显示指定文件的相关信息
--who、w 显示在线登录用户
--whoami 显示用户自己的身份
--id 显示当前用户的id信息
--hostname 显示主机名称
--uname 显示操作系统信息
--dmesg 显示系统启动信息
--du 显示指定的文件(目录)已使用的磁盘空间
--df 显示文件系统磁盘空间的使用情况
--free 显示当前内存和交换空间的使用情况
--fdisk -l 显示磁盘信息
--locale 显示当前语言环境
5、挂载点(mount 设备目录 挂载目录)
--访问设备 (那设备当成一个文件,和另外一个文件夹进行绑定)
--例如挂载光驱:步骤 [cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接访问光驱内容
--卸载挂载设备(umount /dev/cdrom)--注意必须先退出挂载目录,否则出现"device is busy"错误.
6、startup-shutdown(linux启动流程)
--A、boot sequence(important) linux启动过程
a. load bios(hardware information)
b. read MBR's config to find out the OS
(MBR--Master Boot Record,硬盘第一个物理扇区,柱面0、磁头0、扇区1,包含主引导程序和硬盘分区表)
c. load the kernel of the OS
(加载为kernel核心的OS)
d. init process starts...
(启动linux第一个进程init)
e. execute /etc/rc.d/sysinit
(执行系统最重要的配置文件,后台启用进程)
(rc.d--run command)
f. start other modules(stc/modules.conf)
(开启各种模块,如内存管理模块、硬盘管理模块)
g. execute the run level scripts
(系统启动是分层次的,根据情况执行,每个层次之间没关系)
0 - 系统停机状态
1 - 单用户工作状态 root
2 - 多用户状态(没有NFS)
3 - 多用户状态(有NFS)
NFS - Network File System 网络文件系统,联网系统
4 - 系统未使用,留给用户
5 - 图形界面
6 - 系统正常关闭并重新启动
如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多个文件夹,保存着各个层次执行的进程文件
h. execute /etc/rc.d/rc.local (重要)
(保存其它进程脚本,如tomcat自动启动,要修改此配置文件)
i. execute /bin/login
(登录界面)
j. shell started...
7、vi 文本编辑器
--两种模式:命令模式 编辑模式
--vi [文件名]
(切换到编辑模式)
a append-光标后添加
i insert-光标前插入
o open-另起一行编辑
esc (切换回命令模式)
:w 存盘
:wq 存盘退出
:q 退出
:q! 不存盘退出
dd 删除其中一行
dw 删除一个单词
(sudo gedit 文本 常用linux下的文本编辑器,比vi好用)
8、用户设置
--切换用户(switch user) su username
小技巧:直接exit切换
--添加用户 useradd username [-g] [组名](分配到某个用户组)
(创建后会自动在/home目录下创建该新用户的文件夹,如/home/username)
--设置密码 passwd username
--cd /etc
--查看用户信息 more password
如新增的用户信息:username:x:500:500::/home/username:/bin/bash
第一个数字,代表用户组,当添加用户没有指定用户组时,系统会创建一个和用户ID一样的组ID;
第二个数字:用户ID号;
用户的目录是/home/username;
用户的SHELL是/bin/bash
(命令---SHELL[解释命令]---kenrel内核)
SHELL有多种类型,如csh、bash(常用)、bsh、ksh、sh(最原始)
--添加用户组 groupadd groupname
--查看用户组信息 more group
--删除用户组 groupdel groupname
--修改用户 usermod [-g] [组名] [用户名]
--删除用户 userdel username
然后把/home的文件夹删除了 rm -rf 文件夹
9、权限file privilege
--linux把文件的权限分成四种:r:read w:write x:execute -:none
如:-rw-r--r--
lrwxrwxrwx
drwxr-xr-x
drwxr-xr-x
第一个数字'-'代表文件,其余是文件夹,后9位分为3组,每组有四种权限设置rwx-
第一位表示文件所有者
第二位表示和所有者在同一用户组的用户
第三位表示不在同一用户组的用户权限
--设置权限 (随意应用,灵活组合!)
1、普通用法
--添加权限 [chmod +x 文件]
如:-rw-r--r-- --- -rwxr-xr-x
--删除权限 [chmod -x 文件]
如:-rwxr-xr-x --- -rw-r--r--
--给自己添加权限 [chmod ?+x 文件]
如此类推,组--g,其他人--o
如:chmod u+x -rw-r--r-- --- -rwxr--r--
chmod g+x -rw-r--r-- --- -rw-r-xr--
chmod o+x -rw-r--r-- --- -rw-r--r-x
2、专业用法 chmod 755/777
--原理,八进制转二进制
如755,111 101 101, rwx r-x r-x
777,111 111 111, rwx rwx rwx
--修改所有者权限 chown (change owner)
如:chown 原来文件 file1 的所有者是 root,改成joe的
chown joe file1
10、管道(把上一个命令执行的结果交给下一个命令)
--使用方法:
命令1|命令2|命令3......|命令n
--使用举例
--$ls -Rl /etc | more
(如 ls -Rl /etc (在控制台模式下,无法返回前面过去的信息),因此需要管道执行该查询,实现分页的工作, ls -Rl /etc | more)
--$cat /etc/passwd | wc
(显示文件结果,再数数有多少行)
--$cat /etc/passwd | grep lrj
(显示文件结果,再查找包含lrj的行)
--#dmesg | grep eth0
(显示系统启动的信息,再查找包含eth0的行--真正含义,检查网卡执行信息是否正常)
--$man bash | col -b bash.txt
语法:col [-bfx][-l缓冲区列数]
补充说明:在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符""和"",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。
参数:
-b 过滤掉所有的控制字符,包括RLF和HRLF。
-f 滤除RLF字符,但允许将HRLF字符呈现出来。
-x 以多个空格字符来表示跳格字符。
-l缓冲区列数 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小。
--$ls -l | grep "^d"
(用正则表达式筛选出目录列表中 头字母为'd' 的内容--目录)(^是正则表达式开头部分)
--$ls -l * | grep "^-" | wc -l
(列出目录列表中 头字符为'-'的内容--文件,并统计显示的行数wc -l)
11、其他命令
--wall(warning all) 通知所有人
a.命令替换
如 wall `date`、 cd 'pwd'、mkbootdisk $(uname -r)
b.重定向
重定向输出:
如 ls cmd.txt ,把文件写到cmd.txt,不输出在控制台
ls cmd.txt ,把文件追加写到cmd.txt
重定向输入:
如 wall cmd.txt,把文本内容发给所有人
12、修改系统的默认系统级别
常用3和5
3 - 多用户状态(有NFS)
NFS - Network File System 网络文件系统,联网系统
5 - 图形界面
PS.设置用户权限: sudo chmod 777 目录
4表示读,2表示写,1表示执行.
第一位表示文件所有者,第二位表示和所有者在同一用户组的用户,第三位表示不在同一用户组的用户权限.
755表示文件所有者可读写,执行.
第二位5表示与所有者在同一用户组的可读,可执行,不可写.
第三位5表示其它组可读,可执行,不可写. 转载于Joewalker在本人空间也有详细说明
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流