大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
因为你的csum = { 7,4,1,‘a’ },并不是 { ‘7’,‘4’,‘1’,‘a’ }。字符和数值是有区别的,char c=1;不同于char c=‘1’;
成都创新互联公司长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为饶平企业提供专业的做网站、网站制作,饶平网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。
修改:csum[pos++] = ‘0’+i;
linux命令格式:
说明:command: 命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个
一般是linux命令自带的帮助信息
如:
man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明
该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。
例:man ls ; man 2 printf
man中各个section意义如下:
man是按照手册的章节号的顺序进行搜索的。
man设置了如下的功能键:
在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令
当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来
ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。
Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。
ls常用参数:
Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
如:ls test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
注意: 输出重定向会覆盖原来的内容,输出重定向则会追加到文件的尾部。
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
管道:一个命令的输出可以通过管道做为另一个命令的输入。
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。
clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。
在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感
cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。
使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。
通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。
需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。
可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。
常用参数及含义如下表所示:
Linux链接文件类似于Windows下的快捷方式。
链接文件分为软链接和硬链接。
软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
硬链接:硬链接只能链接普通文件,不能链接目录。
使用格式:
如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式为:
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。
常用选项说明:
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
常用用法:
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
常用选项说明:
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
常用选项说明:
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar使用格式 tar [参数] 打包文件名 文件
tar命令很特殊,其参数前面可以使用“-”,也可以不使用。
常用参数:
tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
gzip使用格式如下:
gzip [选项] 被压缩文件
常用选项:
tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz2。
在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。
压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件
whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。
由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。
who命令用于查看当前所有登录系统的用户信息。
常用选项:
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号。
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
useradd命令的使用格式如下:
useradd [参数] 新建用户账号
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。
方法一:
方法二:
groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组
使用方法:usermod -g 用户组 用户名
新创建的用户,默认不能sudo,需要进行一下操作
-g用来制定这个用户默认的用户组
-G一般配合'-a'来完成向其它组添加
chmod 修改文件权限有两种使用格式:字母法与数字法。
字母法:chmod u/g/o/a +/-/= rwx 文件
cal命令用于查看当前日历,-y显示整年日历
设置时间格式(需要管理员权限):
date [MMDDhhmm[[CC]YY][.ss]] +format
CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。
显示时间格式(date '+%y,%m,%d,%H,%M,%S'):
进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。
ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:
top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。
在top命令执行后,可以按下按键得到对显示的结果进行排序:
kill命令指定进程号的进程,需要配合 ps 使用。有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束.
使用格式:
kill [-signal] pid
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
du命令的使用格式如下: du [选项] 目录或文件名
Linux磁盘与文件系统管理命令
fdisk:磁盘分区工具
partprobe:更新内核的硬盘分区表信息
tune2fs:调整ext2/ext3/ext4文件系统参数
parted:磁盘分区工具
mkfs:创建Linux文件系统
dumpe2fs:导出ext2/ext3/ext4文件系统信息
resize2fs:调整ext2/ext3/ext4文件系统大小
fsck:检查并修复Linux文件系统
dd:转换或复制文件
mount:挂载文件系统
umount:卸载文件系统
df:报告文件系统磁盘空间的使用情况
mkswap:创建交换分区
swapon:激活交换分区
swapoff:关闭交换分区
sync:刷新文件系统缓冲区
前几天在广州参加植物病毒学会议,一边听会一边开着TeamViewer远程连接实验室装有linux系统的工作站跑程序干活。有一天下午发现TeamViewer显示服务器离线,原来是因为施工导致停电。Anyway, 不重要,发微信让小青儿给我重启服务器,结果发现重启不了,大概就是这个界面。
怎么着都进不去图形界面,简而言之,工作站重启不了了。索性不管了,好好听报告,心想回到福州再收拾工作站。回到福州第一件事就是坐下来重启工作站,发现无论怎么折腾都进不去系统。
虽然图形界面进不去,好在还能够在命令行下进行操作。当看到 /bioinfor ,这个存放目录的路径下啥都没有的时候,这可是我所有的数据啊!如果这个盘里的数据没了,各个合作者还不得把我手撕了。想到这里,冷汗差点下来了。
于是开始寻找解决方法。
首先得想办法进入系统,在反复地 sudo reboot 都无法进入系统之后,通过 df -h 也看不到/dev/sda(也就是挂载到/bioinfor路径的磁盘)信息。然后猜测是不是因为磁盘以及分区表之类出现了错误导致不能进入系统。通过 sudo vi /etc/fstab 将除了系统安装盘之外的所有硬盘的挂载信息全部注释掉,再 reboot , 这时候果然可以进入图形界面系统了。但依然看不到 /bioinfor 盘下的数据。能够开机就让我放心了很多。通过 gparted 工具,能够看到/dev/sda硬盘里used space大概是1.7T,还剩下1.9T左右,这就表示我的数据还在。试图通过 sudo umount /dev/sda 先取消挂载,再重新 sudo mount /dev/sda /bioinfor 挂载到/bioinfor路径,结果报错。
报错信息显示:
搜索网页发现,有一个哥们经历了跟我一样的遭遇, 意外断电造成mount挂载硬盘报错 。所以,这次事故是因为意外断电,基本实锤了。
但到底什么是superblock呢?
继续搜索,直到读到一篇技术文章 linux操作系统故障处理,ext4文件系统超级快损坏修复 。本文可以忽略,但这篇技术文章得认真读读。里面讲解了磁头,磁道,柱面,扇区,以及硬盘容量等等概念,以及最重要的inode和block,Superblock(超级块)概念。
既然报错提示Superblock出了问题,那我们就应该从这里入手。linux系统提供了一个磁盘命令 fsck 来尝试对设备进行修复。但可惜,用这个命令的时候,都会提醒你,应该安装最新的 fsck 工具包。
提示如下:
根据这篇文章 E2FSCK: how to handle the “metadata_csum” error by advancing the e2fsck version beyond default installed version 的提示,需要安装1.43X的 e2fsck , 安装方法小结如下。
检验一下是否更新成功:
能够看到已经更新到1.43.5版本。
安装完之后,开始对磁盘进行修复,命令如下:
一般都能修复完毕,然后可以再进行取消挂载或者重新挂载的操作。看到数据都还完好无缺地在电脑上,还处于后怕的我赶紧掏出移动硬盘进行原始数据的备份。
本次debug结束
这篇技术日志对读者可参考性并不高,是因为应用场合实在是少,(试想谁会天天断电呢),但还是有一些体会和感悟: