linux知识汇总
1. 利用Ctrl+Alt+F1到Ctrl+Alt+F6在6个虚拟控制台之间切换,利用Ctrl+Alt+F7切换回图形界面。
2. 使用who命令来判断谁在系统上及其登录方式。id命令用来显示用户信息和组信息。
3. cal命令列出当前月的日历。
4. ps命令用来列出在系统上运行的进程。没有参数的ps命令显示单个终端上其他的所有进程。ps aux命令显示所有正在系统中运行的进程。
5. 在一个不可读的bash提示下,输入reset命令然后Enter可以把终端恢复到正常状态。Ctrl+U用来擦除当前的行,用处是密码输入错误,删除错误,重新输入。
6. 终端的文件名匹配:*,匹配零个或多个字符;?,匹配一个字符;[…],匹配在给出的列表或范围内的任意一个字符;[^…],匹配在给出的列表或范围外的任意一个字符。(注意和正则表达式区分)
7. file命令可以显示文件类型。
8. tail命令用来显示文件的后10行,其有个选项-f:保持文件处于打开状态,不断显示新添加的行,可用于实时监控系统日志文件。
9. finger命令可以用来“调查”用户,不仅查看用户是否登录,而且查看他们是否读取了邮件、最后登录时间等。选项-l显示详细的格式输出。
10. chmod的访问级别为ugoa(用户,组,其他,全部),ls命令列出的权限按照用户,组和其他用户顺序排列读写权限。
11. 在linux系统中,所有与某个文件相关的额外信息都保存在一个叫inode的结构中,但是文件名保存在名为dentry的结构中。dentry含有文件名并关联inode,inode含有文件元数据并指向数据区。可以用stat命令查看文件inode信息。
12. 对同一个文件创建多个硬链接,该文件有一个inode,但是有多个dentry。当对一个文件创建一个软链接时,软链接其实是一个新文件,同时带有其新创建的inode,该链接不是一个常规文件,而是一个符合链接。符合链接并不保存实际的数据,而是保存另一个文件的名称。如果需要同时操作一个文件,硬链接较好,如果只是别名软链接较好。命令为:ln –s exist_file link_file。
13. mkfs命令族用于创建文件系统,该命令族在/sbin目录下。
14. df命令可以查看分区的空间使用状态。使用mount命令查看挂载点和挂载新的文件系统。
15. locate命令根据提供的模式查找文件,它依靠每天更新的数据库文件来查找,所以速度比find快,但是不能查找最近一天更新的文件或最近删除的文件。
16. find命令构成:find <起始目录> <搜索条件> <动作>
17. tar zcvf file.tar.gz file,利用gzip压缩文件;tar zxvf file.tar.gz –C dir,利用gzip解压缩文件到目录dir;tar jcvf file.tar.bz2 file,利用bzip2压缩文件;tar jxvf file.tar.bz2 –C dir,利用bzip2解压文件到目录dir。
18. 将命令括在括号里允许用户在子shell中运行命令,这时不会产生副作用。
19. 变量$?用来保存以前执行的命令的返回值。0表示正常结束,1到255表示出错。
20. 命令行替换。大括号替换:把一个单纯展开为多个单词,一次一个,循环替换“大括号中”的元素({c,b,r}at替换为cat bat rat)。变量替换:$name和${name}将被替换为shell变量或者环境变量的值。算术替换:计算$((…))表达式的值,然后返回结果。命令替换:`…`或$(…),让用户在子shell中运行任意的命令,并把结果合并在命令行中。
21. 命令行引号。双引号:想按照字面意思处理大多数标点,或者把字合并为单个标记,但是仍能使用变量替换、命令替换或历史替换。单引号:想按照字面意思处理所有的标点,包括变量替换和命令替换(不执行替换)。反引号:不用来引用,而是用来进行引号内的命令输出替换。
22. 登录shell执行脚本。启动时,登录shell首先获得文件/etc/profile,该文件会初始化PATH、USER等环境变量。/etc/profile接着获得与模版/etc/profile.d/*.sh相匹配的所有文件。接着,shell在用户主目录下寻找~/.bash_profile文件,这个文件默认只是把$HOME/bin添加到用户PATH值。最后,寻找~/.bashrc文件。
23. 非登录shell(交互式)执行脚本。非登录shell查找的唯一文件是~/.bashrc,该文件默认寻找/etc/bashrc文件。通用文件/etc/bashrc设置用户默认的umask和定义PS1变量。登录shell会设置profile和bashrc文件,非登录shell会设置bashrc文件。
24. >和2>分别用来重定向标准输入和标准错误。合并标准输出和标准错误:1)2>&1,旧方法,必须放在命令行最后;2)>&,新方法,直接用该符号替换之前的>。
25. grep命令。grep <参数> pattern [filename]。
26. xargs命令读取标准输入,并将所识别的文字作为附加参数添加到命令行中。也可以读取管道数据。
27. 在正则表达式中,用.和[]来匹配单个字符;用+、*和?来指定重复的项;用^和$来指定一行的开始和结束;用(、)和|来指定可选的组;用\<和\>表示字首和字尾,通常一起使用。正则表达式应该放在单引号中。
28. tr命令可以转换数据流中的字符。转换的意思是:可以用一个字符代替另一个字符、删除字符或者压缩字符(将一组重复字符合并成一个)。tr命令不使用文件名作为参数,只对标准输入进行操作,并保留命令行参数来指定转换形式。tr SET1 SET2:用在SET2中的补充字符替代在SET1中的对应字符,可以实现文本大小写的转换。-d会删除所有指定字符,-s可以将一组连续的相同字符压缩,可以用来对cut的数据进行格式化。
29. kill命令用来向其他进程发送自定义信号。信号值15(请求进程终止)是kill命令的默认信息,可以忽略。信号值9是迫使进程终止,不能被进程忽略,会强制关掉进程。
30. jobs命令会列出所有的后台作业。可以用fg命令把后台作业置于前台。fg命令用作业号作为参数(jobs获得),如果没有提供任何作业号,将在前台运行当前作业。
31. 用Ctrl+Z可以挂起前台作业,挂起在后台的作业可以用bg命令重新启动。参数也是作业号,重启之后还是在后台执行。取消一个后台作业可以用kill %N来完成。
32. at命令用来向atd守护进程提交需要在特定时间运行的作业。用运行的命令可以作为脚本提交(-f指定),也可以通过标准输入直接输入。命令格式为:echo “command”|at 2:00 am。可以用atq查看提交的作业,用atrm取消atd守护进程队列里的作业。batch命令向atd守护进程提交作业,在系统不繁忙的时候运行。
33. crontab命令用来设置定时执行的任务。cron命令由六个字段组成,前五个字段用来指定何时运行命令,剩余的第六个字段指定要运行的命令。前五个字段为:minute,hour,day of month, month, day of week。每一个字段如果用星号代替表示每分钟/小时等等,如果用数字代替表示每小时过n分钟/每天过n小时等等,如果用*/n表示每隔n分钟/每隔n小时等等。crontab -e命令用来修改定时命令。
34. 查看ip用ifconfig,查看默认网关用route,查看域名服务器cat /etc/resolv.conf.可以利用traceroute命令追踪从本地到某个域名的路径。host命令会查询域名对应的ip地址。
35. links命令可以在命令行打开一个网页。curl和wget可以下载网页和各种网络资源。