Linux - AnneBlog/bugMaster GitHub Wiki

1. source.list

[debian]  
vim /etc/apt/source.list
deb http://mirrors.163.com/debian/ jessie main  
deb-src http://mirrors.163.com/debian/ jessie main  
deb http://security.debian.org/ jessie/updates main contrib  
deb-src http://security.debian.org/ jessie/updates main contrib  
# jessie-updates, previously known as 'volatile'  
deb http://mirrors.163.com/debian/ jessie-updates main contrib  
deb-src http://mirrors.163.com/debian/ jessie-updates main contrib  

2. 添加sudo

step1  
su  
enter_your_passwd  
yum -y install sudo  
step2  
chmod +w /etc/sudoers  
vim /etc/sudoers  
user_name    ALL=(ALL)    ALL  
chmod -w /etc/sudoers  

3. 权限的数字表示

读(r=4) 写(w=2) 可执行(x=1)  
owner, group, other  

4. 用户管理

添加用户组              groupadd [-options] group_name   
修改用户组              groupmod [-options] group_name     
删除用户组              groupdel group_name    
用户组修改密码       gpasswd [-options] group_name    

添加用户                 useradd [-options] user_name   
修改用户                 usermod [-options] user_name   
删除用户                 userdel user_name   
用户密码修改          passwd [-options] user_name   
用户追加到另个组    usermod -a G group_name   

文件权限更改           chmod -options mode file_names   
文件用户组和所有属性更改      chown -options owner:group file_name  

5. 文件管理

创建文件      touch file_name    
拷贝文件      cp old_file new_file    
删除文件      rm [-rf] file_name    
分割文件     split -l|-d|-b file_name split_prefix    
合并文件      cat file_name1 file_name2 > file_name    
文件归档     tar -czvf file_name.tar.gz file_name    
查看文件前n行      head -n file_name    
查看文件后n行      tail -n file_name    
分屏查看文件       more|less file_name    
终端显示文件内容     cat file_name    
比较文件差异       vimdiff file_name1 file_name2    
查看文件行数       wc -l file_name    
修改文件权限       chmod +|-|x file_name    
文件查找     find path -type type_pattern  

                  locate file_name
文件挂载     mount [-t vfstype] [-o options] device dir   文件卸载     umount -l <device|mount_point>

6. 目录管理

创建目录           mkdir dir_name    
                  mkdir -p dir_name    
删除空目录       rmdir dir_name    
删除目录          rm -rf dir_name    
打印目录树       tree dir_name      
切换目录          cd path|~|..|-  
打印目录          pwd    
目录清单          ls [- options] path_name    
目录重新命名   mv old_dir new_dir    
拷贝目录所有   cp -r old_folder folder_path  
查看目录所有文件大小     du -sh dir_name   

7. 进程管理

定时任务            crontab -e(min hour day month week commands)   
任务后台执行     command &   
查看进程            ps aux|grep process_name ps -ef|grep process_name   
杀死进程            kill [-9] pid killall -r process_pattern   
服务状态            service process_name status|start|stop|restart   
任务关闭终端仍运行    nohup commands >out.o 2>err.o &   
周期执行指定指令      watch -n seconds -d command   
进程树状图           pstree -a|-p   
定点执行任务         at [-options] args  

8. 网络管理

查看端口      netstat -anp|grep port netstat -antup   
文件传输      wget [-options] args  
                   curl [-options] args   
                   axel [options] url1 [url2[, url3]]   
                   lftp [-options] args   
远程登录                 telnet host_name port ssh [-options] args [commands]   
邮件收发                 mail [-options] args   
防火墙配置              iptables [-options] args   
流量包头捕获           tcpdump [-options] args   
域名分析                  host www.baidu.com   
网络联通性              ping|fping|hping www.baidu.com   
追踪信息包全路径    traceroute [-options] www.baidu.com    
域名查找                  nslookup www.baidu.com dig www.baidu.com   
追踪路由信息           tracepath www.baidu.com   
端口扫描                  namp [-options] args   
节点间文件复制        scp [-options] args  

9.软件管理

安装      rpm -ivh software    
查看      rpm -q software  
查看已安装的软件包 rpm -qa | grep soft_ware    
卸载      rpm -e software    
强行卸载   rpm -e --nodeps software   
升级      rpm -Uvh software    
查询软件包配置文件    rpm -qc conf_file    
                   rpm -qcp conf_file      
查询任何一个文件隶属的软件包  rpm -qf  file_name  
查询软件包信息       rpm -qi package    
                   rpm -qip package    
查询软件包安装了哪些文件 rpm -ql package    
                   rpm -qlp package  
 
安装       yum install package    
检测升级    yum check-update package    
升级       yum update package    
软件包查询  yum list package    
查询yum源上所有的包:yum list | more    
查找yum源上指定的包:yum list | grep sudo    
软件包信息  yum info package      
卸载       yum remove       
软件包帮助  yum -help 软件包 / man yum 软件包    

10. awk命令  

命令行方式      
awk [-F field-separator] 'commands' input-file(s)    
shell脚本方式    
awk -f awk-script-file input-file(s)    

awk工作原理    
awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file    

awk编程    
条件语句    
if (expression) {    
    statement      
}      

if (expression) {      
     statement1;      
} else {    
    statement2;    
}    

if (expression) {    
statement1;    
} else if (expression1) {    
statement2;    
} else {    
statement3;    
}    
循环语句    
while(expression){    
    statement;     
}  

do{    
    statement;    
}while(expression)    

for(init;condent;modify){    
    statement;    
}      

内置变量    
ARGC 命令行参数个数    
ARGV 命令行参数排列    
ENVIRON 支持队列中系统环境变量的使用    
FILENAME awk浏览的文件名        
FNR 浏览文件的记录数      
FS 设置输入域分隔符,等价于命令行 -F选项    
NF 浏览记录的域的个数    
NR 已读的记录数    
OFS 输出域分隔符    
ORS 输出记录分隔符    
RS 控制记录分隔符    

awk运算符    
算数运算符:+、-、*、/、%(求余)、++、--、**(幂运算)、^(幂运算)    
赋值运算符:=、+=、-=、*=、/=、%=、……=、**=    
关系运算符:<、<=,>,>=,!=,==    
逻辑运算符:||、&&、!    
正则运算符:~(匹配)、~!(不匹配)    
杂项运算符:$(字段引用)、空格(字符串连接符)、?:(c条件表达式)、in(数组中是否存在某键值)  

11. sed命令  

命令格式    
sed [options] 'command' file(s)    
sed [options] -f scriptfile file(s)    

删除操作  
命令格式:sed 'start,endd' file_name    
例子:  
sed '2d' file_name 删除file_name文件的第二行    
sed '2,$d' file_name 删除file_name文件的第二行到末尾所有行    
sed '$d' file_name 删除file_name文件的最后一行    
sed '/test/'d file_name 删除file_name文件所有包含test的行    

替换操作    
命令格式:sed 's/old_string/new_string/g/p' file_name    
例子:     
sed 's/a/b/g' file 在整行范围内把a替换为b    
sed -n 's/^a/b/p' file (-n)选项和p标志表示只打印替换的行    
sed 's/^abc/&func/' file 所有以abc开头的行都会变成abcfunc    
sed -n 's/\(abc\)func/\1rs/p' file abc被标记为1,所有abcfunc会被替换成abcrs,且打印出来    
sed -n '/test/,/check/p' example 删除test或check所在的行,并输出终端    
sed -n '5,/^abc/p' file 打印从第五行开始到第一个包含以test开始的行之间的所有行    

读取文件    
命令格式:sed 'pattern/r file_name_1' file_name_2    
例子:    
sed '/ab/r file_1' file_2 在包含"ab"后面添加文件file_1的内容,并显示在终端  

写入文件    
命令格式:sed 'pattern/w file_name_1' file_name_2    
例子:  
sed '/ab/w file_1' file_2 将file_2包含"ab"行写入file_1(首先清空文件,然后再写入)  

追加文件    
命令格式:命令格式:sed 'pattern/a file_name_1' file_name_2    
例子:    
sed '/fun/a file_1' file_2 将file_2包含"fun"行追加file_1(首先清空文件,然后再写入)  
注:直接在源文件修改,如sed -i '1,2d' file_name  

多点编辑    
命令格式: sed -e 'commands_1' -e 'commands_2' file_name    
例子:    
sed -e '1,3d' -e 's/abc/def/g' test.txt 删除1-3行,然后全局替换abc为def     

12. grep命令  

grep -c pattern file 显示文件中包含搜索内容行数    
grep -n pattern flie 列出所有的匹配行,并添加行的序列数      
grep -v pattern file 显示文件中不包含所搜索内容    
grep -i pattern file 不区分大小写搜索内容的匹配行    
grep -l pattern * 列出所有包含pattern内容的文件的名    
grep -r pattern 对当前目录和所有的子目录进行搜索    
grep -w pattern file 精确搜索    
grep -x pattern file 完全匹配输出    

13. shell特殊字符    

#0 执行脚本的名字  
#1, #2, #3 命令行或函数的第一个参数,第二参数,第三个参数    
$# 命令行或函数的参数总数    
$@和@* 枚举出脚本的参数值    
$? 判断上一条命令是否执行成功    
$(cmd) 执行命令 拓展$((cmd))  
[ condtion ] 条件判断 升级版[[ condition ]]    
${var} 变量取值   

14.

⚠️ **GitHub.com Fallback** ⚠️