Linux基础:
1. Linux内核版本:下载linux时,选择偶数的稳定版。
2. Linux发行版本:国内互联网公司常用CenOS(基于RedHat源码进行编译,去掉标识,可免费使用)。
3. Linux好处:开源的、安全性比windows高、并发上可多用户多任务。
4. 推荐使用命令行的交互模式,提升工作效率。
5. root(管理员)用户权限多于个人用户。
6. 常用目录介绍:
/:系统根目录,通常不会在这里存放文件;
/bin:二进制目录,存放许多GNU用户级的工具;
/boot:启动目录,存放启动文件;
/dev:设备目录,linux在这里创建设备节点;
/etc:系统配置文件目录;
/home:用户主目录,linux在这里创建用户目录;
/lib:库目录,存放系统和应用程序的库文件;
/media:媒体目录,存放可移动媒体设备挂载点的地方;
/mnt:挂载目录,另一个存放可移动媒体设备挂载点的地方;
/opt:可选目录,通常用于存放可选的软件包;
/root:管理员根目录;
/sbin:系统二进制目录,存放许多GNU管理员级工具;
/tmp:临时目录,可以在该目录中创建和删除临时工作文件;
/usr:用户安装软件的目录;
/var:可变目录,用于存放经常变化的文件,比如日志文件。
Linux命令:
1、磁盘管理
a) pwd (print work directory) :查看根目录到当前目录的完整路径。
b) ls (list file):展示目录文件;ls -a (all):展示含隐藏文件在内的所有文件;ls -ltr (long time reverse):详细信息,并按时间排序;ls 展示目录文件,可加目录名。
c) cd (change directory):切换工作目录;特殊的,cd ~:切换到home(主)目录;cd -:切换到上一次访问的目录;cd ..:切换到上一级目录;cd .:仍是当前目录。
d) mkdir (make directory) / rmdir (remove directory):创建/删除目录;mkdir -p:递归创建目录。
e) df:显示磁盘分区上可以使用的磁盘空间,df -h显示可读格式;
f) du:显示每个文件和目录的磁盘使用空间,du -h显示更可读的格式。
g) mount/umount:挂载/卸载linux系统外的文件。
2、文件管理
a) cp (copy file):复制文件或目录,cp src dest/dir,若要复制目录及其子文件(夹),则需-r参数;scp命令用于远程文件/目录的复制。
b) mv:文件移动/改名;mv src dir:将source移动到dir;mv src dest:把src改名为dest。
c) touch filename/dirname: 修改文件或目录的时间属性,若文件不存在,则创建一个新文件。
d) rm (remove):删除文件/目录;rm -rf:直接删除文件&目录(好用,但需慎用); -f表示唯读文件的删除无需确认。
e) cat (concatenate):将一个或多个文件中的内容输出到屏幕,或者输出到文件流,-n显示行号;与cat相反,tac是逆序形式打印行。
f) head/tail -n num XXX:查看XXX文件的开头/结尾的num行(num默认10);tail -f logname 实时监控logname的末尾新增情况;tail -n +10 file:显示file中第十行到末尾;head -n -5 file:显示file中除最后5行外的所有行。
g) diff A B:对比A和B文件的异同,进阶用法看diff -help。
h) less/more:浏览文件,支持翻页和搜索,q退出。
i) which filename:查找文件路径。
3、 文档编辑
a) sort:对文本内容以行为单位排序;sort filename:对filename文件内容排序(以第一列的字符进行排序);sort filename -k 2:以第二列内容为标准排序;-r指以相反的顺序排序;-u指排序结果是去重的。
b) uniq: 对文本内容(以行为单位)去重;-c指显示重复出现的次数;当重复的行不相邻则不起作用,所以此时uniq需要与sort搭配使用,如sort filename | uniq。
c) wc (word count):统计指定文件的行数、字数,以及字节数;wc -l filename:统计行数,其他参数 -w统计字数,-c统计字节数。
d) comm:统计两个已排序文件的交集、差集;comm sortedAfile sortedBfile:分3列分别显示A、B两个文件的‘仅在A中出现的行’、‘仅在B中出现的行’、‘在A、B中均出现的行’,在命令后添加参数-1指删除第一列,-2删除第二列,-3删除第三列;交集:comm A B -1 -2;A的差集:comm A B -2 -3;B的差集:comm A B -1 -3。
e) tr:对来自标准输入(stdin)的内容进行字符替换、删除以及重复字符的压缩;格式为 tr [options] set1 set2 :将stdin的字符集从set1一一映射到set2 (set1和set2指两种字符组/类),若set1长度超出set2,set2复制最后一个字符直到与set1相等,若set2大于set1,超出部分忽略;将abcde从小写转大写输出:cat abcde | tr 'a-z' 'A-Z';删除cd2h5中的数字字符:cat cd2h5 | tr -d '0-9';压缩字符串中重复出现的‘c’为单个‘c’:cat abccccd | tr -s 'c。
3、文件压缩
a) tar -zcvf:打包(tar -zcvf xxx.tar.gz yyy 将yyy压缩成xxx压缩包);tar -zxvf:解压tar.gz压缩文件(tar -zxvf xxx.tar.gz将该压缩包解压到当前目录)。(其中,-v或--verbose 显示指令执行过程;-z或--gzip或--ungzip 通过gzip指令处理备份文件;-f<备份文件>或--file=<备份文件> 指定备份文件;-c或--create 建立新的备份文件;-x或--extract或--get 从备份文件中还原文件)。
b) zip/unzip:打包/解压zip文件。
其他命令:“向上键”:低成本翻找最近使用的指令;history:查看过去所有指令;命令 –help:查看帮助。
4、帮助命令man
a) man command:查询命令详细信息,如man ls。
b) man 5 filename:查询配置文件的详细信息,如man 5 passwd。
5、用户和用户组及密码管理useradd、userdel、passwd
a) useradd work:创建用户,work指用户名。
b) userdel work:删除用户。
c) passwd:修改当前用户密码;passwd work:修改其他(work)用户密码(只有root权限的用户可以)。
6、文件与目录权限管理chmod、chown
a) root用户拥有系统中最高权限,慎用root;
b) 权限划分 -rwxrwxrwx-,前三位U user归属人(文件所有者),中三位G group归属组(用户组),后三位O其他人(其他用户);
c) 数字权限:r=4,w=2,x=1,分别指二进制100、010、001(rwx分别指读写执行);
d) chmod:修改权限,如chmod 750 filename;递归修改文件权限:chmod -R 750 dirname(7指user具有rwx权限,5指group有rx权限,0指other没有权限);
e) chown:修改归属;chown user:group filename修改归属人以及归属组;chown -R user:group dirname:递归修改该目录下全部文件。
7、文件修改sed
a) 将filename文件中所有aaa替换为bbb:sed -i ‘s/aaa/bbb/g’ filename,其中s指替换(每行第一次出现的部分),g指全局替换,-i指修改后的替换原文件;
b) 删除文件前3行内容:sed -i 1,3d filename,1代表起始,3指结束行;删除第5行内容:sed -i 5d filename;删除含关键字abcd的行:sed -i '/abcd/d' filename;删除空白行:sed '/^$/d' file;d指删除。
d) 显示filename文件第7到9行:sed -n '7,9p' filename,显示第10行:sed -n '10p' filename,p表示print;显示含关键字abcd的行:sed -n '/abcd/p' filename。
e) 将第2~5行整体替换成abcde:sed -i '2,5c abcde' filename,c表示取代。
f) 在第2行后一行添加abcde:sed -i '2a abcde' filename,a表示新增。
g) 在第二行前一行加abcde:sed -i '2i abcde' filename, i表示插入。
8、文本处理命令awk
a) awk命令结构:awk 'BEGIN{ 执行前语句 } pattern{ 处理每一行执行的语句 } END{ 处理完所有行后执行的语句 }' file,这3部分是可选的;如输出文件的行数:awk 'BEGIN { i=0 } { i++ } END { print i}' filename。
b) 按列输出:
awk '{print $2}' filename:以空格为分隔符输出第二列;
awk '{print $NF}' filename:以空格为分隔符输出最后一列;
awk -F 'a' '{print $2}' filename:以a为分隔符,输出第二列;
awk '$2==abcd {print $1,$4}' filename,以空格为分隔符输出第二列等于abcd的第一、四列;
awk 'NR==10 {print $0}' filename,输出第10行;
awk 'END{print NR}' file,统计文件行数;
其中,NR指当前行号,$0表示整行,NF指当前行字段数,$NF指最后一个字段内容,$(NF-1)指倒数第一个字段内容,$2指第2个字段内容。
其中命令行参数,-F指定输入分隔符,若是多种分隔符,则类似-F '[,.]'表示,OFS指定输出分隔符,分隔符默认均是空白符。
c) 支持正则字符串匹配:
awk ‘$2 ~ /th/ ‘{print $2,$4}’ filename:第二列包含th时,输出第2、4列,~表示匹配模式(不匹配是!~),//双斜杠内部写模式。
9、文本编辑vim
a) 命令模式:打开vim后默认进入的模式,可从任意模式通过Esc键切换为命令模式;
b) 插入模式:类似windows记事本,只能从命令模式,通过(i、a、I、A)等命令进入插入模式;
c) 可视模式:使用光标选取一片区域的文本内容,之后可通过命令来操作,只能从命令模式,通过(ctrl+v,v)等名命令进入可视模式。
命令 | 作用 |
i | 插入到光标前面 |
I | 插入到光标所在行最前面 |
a | 插入到光标后面 |
A | 插入到光标所在行最后面 |
o | 在光标所在行下面新开一行 |
O | 在光标所在行上面新开一行 |
命令 | 作用 |
:w | 保存 |
:wq | 保存退出 |
:x | 保存退出,同ZZ |
:q | 退出(已保存) |
:q! | 不保存强制退出,同ZQ |
命令 | 作用 |
h,j,k,l | 光标移动,h左、j下、k上、l右 |
Ctrl+f | 上一页 |
Ctrl+b | 下一页 |
E,e | 跳到单词的后面 |
B,b | 跳到单词的前面 |
gg | 跳到第一行的开始 |
G | 跳到最后一行的开始,nG是第n行 |
命令 | 作用 |
dd | 剪切光标所在的一行 |
3dd | 剪切含光标所在及往下的3行 |
dw | 删除光标所在单词 |
x | 删除光标后面单词 |
yy | 复制光标所在行 |
3yy | 复制3行 |
p | 粘贴剪切板内容到光标下一行 |
P | 粘贴到上一行 |
:set nu | 显示行号 |
:set nonu | 取消行号显示 |
10、 文件查找find、grep
a) grep --color=auto -n 't[ae]st' filename:在filename中搜索包含tast或test的内容,-n显示匹配行行号,--color=auto着重标记匹配模式,-o只输出匹配模式部分,-c统计匹配模式的行数,-i忽略模式的大小写;
b) grep abc -rl dirname:grep查找dirname中所有包含abc内容的文件,-r递归查找子目录文件,-l只打印匹配的文件名;
c) grep -v abc filename:打印filename中不含abc的行,-v打印不匹配的行;
d) find /home -name filename:从home目录下查找文件名为filename的文件;
e) find / -name filename -type d:从根目录查找文件名为filename的文件并属性为目录的文件;
f) find / -name filename -exec ls -l {} \; :查找文件名为filename的文件,并查找该文件属性。
11、其他命令
a) 清屏:clear;退出当前命令:Ctrl+c;挂起当前进程:Ctrl+z,fg恢复 。
b) echo显示字符串,如echo "12345" ,echo "1234" > filename 将内容定向至文件filename;echo `date`:显示命令执行结果(注意命令用``号括着)。
c) test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试,
数值测试:-eq(等于为真),-ne(不等于为真)、-gt(大于为真)、-ge(大于等于为真)、lt(小于为真)、le(小于等于为真);
字符串测试:=(等于为真)、!=(不等为真)、-z(字符串长度为0为真)、-n(字符串长度不为0为真);
d) seq:输出一串首数(默认1)到尾数之间连续等间隔的数字;用法有3种:seq 尾数,seq 首数 尾数,seq 首数 增量 尾数,其中,可选命令参数有:-f (以指定的printf格式输出该串数字),-s(指定各个数字之间的分割符,默认'\n'),-w(通过数字前添0使得各个数字宽度相同)。
12、 Linux系统管理
1). yum install vim(CentOS);
2). yum install wget -y:-y指跳过安装过程中的确认阶段;
3). ping:检测网络联通性,如,ping www.baidu.com;
4). telnet:检测域名/IP和端口,如telnet www.baidu.com 80;
5). netstat:各种网络相关信息,如网络连接、路由表、接口状态;
6). ifconfig:查看网卡信息;
7). 进程与线程:简单来说进程是一个执行程序,而线程是进程中的一条执行路径;
8). ps (process status):显示当前进程状态;ps -ef:全格式显示所有当前进程信息;ps -ef | grep 进程关键字:根据关键字显示进程;ps -A:列出所有进程;ps -aux:显示所有包含其他使用者的进程。
9). top:监控PID或命令占用的内存、cpu情况等;top -c:显示完整命令。
10). kill pid:杀死进程pid;kill -9 pid:强制杀死进程pid。
11). id:显示用户ID,及用户所属群组ID。
12). date显示/设定时间,date:显示当前时间; data + “%Y-%m-%d”:格式化显示;昨天日期:date -d "1 day ago" +"%Y-%m-%d";2秒前时间:date -d "2 second" +"%Y-%m-%d %H:%M.%S";date -d "+/-1 day" +%Y%m%d:显示后/前一天日期;-d表示按字符串显示时间格式;-s表示设定时间。
13). who:显示当前登录系统的用户;whoami:显示用户名。
14). su (swich user):变更为其他使用者身份,如su root:切换到root用户。
15). sudo:以系统管理者的身份执行指令。
16). exit:退出目前shell。
17). sleep:延迟指定时间(后再执行某一指令);sleep 1s; sleep 3m; sleep 5h;sleep 2d;分别是睡眠1秒、3分钟、5小时、2天。
18). uname:命令用于显示操作系统信息;-a显示全部信息;-m显示处理器类型;-n显示主机名;-r显示内核版本号;-s显示操作系统名称;-v显示操作系统版本及时间。