Repository navigation
Linux
AnneBlog edited this page Feb 19, 2017
·
2 revisions
[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
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
读(r=4) 写(w=2) 可执行(x=1)
owner, group, other
添加用户组 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
创建文件 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>
创建目录 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
定时任务 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
查看端口 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
安装 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 软件包
命令行方式
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(数组中是否存在某键值)
命令格式
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
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 完全匹配输出
#0 执行脚本的名字
#1, #2, #3 命令行或函数的第一个参数,第二参数,第三个参数
$# 命令行或函数的参数总数
$@和@* 枚举出脚本的参数值
$? 判断上一条命令是否执行成功
$(cmd) 执行命令 拓展$((cmd))
[ condtion ] 条件判断 升级版[[ condition ]]
${var} 变量取值