1、linux命令形式:
命令 [参数] [路径文件]......................“[]”表示可选。
例如:rm -f /tmp/oldboy.log
2、创建目录/data————mkdir
方法一:mkdir /data
方法二:cd /
mkdir data
3、查看目录/data————ls
ls -ld /data #以长格式方面查看目录(可以查到目录的操作权限、大小、创建时间等信息)
4、在/data目录下创建文件oldboy.txt————touch或vi
方法一:cd /data
touch oldboy.txt
方法二:touch /data/oldboy.txt
注意:
Windows中的目录分隔:E:\虚拟机\CentOS 7 and GUI 反斜杠
linux中的目录分隔:/data/oldboy.txt 斜杠
5、为oldboy.txt增加内容“I am studying linux.”————vi或echo >
方法一:vi /data/oldboy.txt
方法二:cd /data
vi oldboy.txt
方法三:echo "I am studying linux." > oldboy.txt
echo "I am studby windows." >> oldboy.txt———#追加内容到文件中
用vi或vim编辑文件/脚本时,首先进入命令行模式,按“a”或“i”命令切换到输入模式,完成后按“Esc”进入命令行模式,然后按“:”+“wq”保存退出;如命令为“:wq!”、“:q!”后加上“!”有强制性的意思(在文档内可以用命令:set nu显示行号)。
echo 内容 > 文件:把要输出的内容重定向到文件中去,注意原文件的内容会被覆盖。
echo 内容 >> 文件:把要输出的内容追加到文件中去,原文件的内容不会被覆盖。
6、查看或输入文件内容:————cat
方法一:cat /data/oldboy.txt
方法二:cd /data
cat oldboy.txt
特殊命令将o到o的内容追加到文件oldboy.txt中:
cat >> oldboy.txt << o
> 1
> 2
> 3
> 4
> 5
> o
7、符号命令:
“;” 同一行分隔多个命令。
“/” 根目录或路径分隔符。
“>” 标准输入重定向(数据向箭头的方面流动,会覆盖原文件数据)。
“>>” 输入追加重定向(数据向箭头的方面流动,在原文件尾部追加上数据)。
“<” 标准输出重定向(数据向箭头的方面流动,会覆盖原文件数据)。
“<<” 输出追加重定向(数据向箭头的方面流动,在原文件尾部追加上数据)。
“..” 与cd结合退到上一级目录。
“.” 与cd结合退到当前目录。
“~” 代表登陆帐号的家目录。
“|” 管道符,将前一命令运行结果交后一命令处理(前后不需要加空格)。
“{}” 与echo结合使用时,用作打印序列。
8、把o.txt文件复制到/tmp中————cp ;cp -a或-r用于复制目录
cp o.txt /tmp/
cp /data/o.txt /tmp/
重要参数:
-a:相当于pdr,一般复制目录会用;
-p:连同属性一起复制过去;
-r:递归,用于目录复制。
9、查询当前路径————pwd
10、查询登陆帐号————whoami(与windows一样)
11、把/data移动到/root中————mv
mv /data /root/
重要参数:
-i:如果文件或目录已存在,询问是否覆盖;
-f:强制执行,不会询问;
-u:对比,如目标比源新,才会移动。
12、进入root目录的data目录下,删除oldboy.txt文件————rm/rmdir(删除空目录)
cd /root/data/
rm oldboy.txt
rm -f o.txt
rmdir data
重要参数:
-f:强制删除文件,不会访问是否删除。
-fr:强制删除文件和目录,不会访问是否删除。
13、已知文件test.txt内容:
test
liyao
oldboy
请给出打印test.txt内容时,不包含oldboy字符串的命令————grep -v/head/tail
##先建立文件写好内容:
cat >test.txt << EOF
> test
> liyao
> oldboy
> EOF
##过滤掉包含‘oldboy’字符的行:
grep -v oldboy test.txt
##显示文件前头两行:
head -2 test.txt
##显示文件尾部两行:
tail -2 test.txt
##取内容,排除包含‘oldboy’字符的行:
sed /oldboy/d test.txt
sed /^oldboy/d test.txt
sed '/oldboy/d' test.txt
sed "/oldboy/d" test.txt
##列过滤,排除包含‘oldboy’字符的列:
awk /[^oldboy]/ test.txt
重点:grep、sed、awk是三大核心命令;都有过滤字符串功能,grep最擅长,awk处理列擅长,sed擅长删除、修改、替换和添加。
14、用一条命令完成创建/oldboy/test目录创建————mkdir -p(参数p是递归创建)
mkdir -p /oldboy/test
mkdir /oldboy /oldboy/test
15、查看命令用法及参数————man/--help
man mkdir
mkdir --help
注:“linux 命令名”在baidu中查找相关文档帮助;如排错建议在google中查找。
16、常用快捷键
Tab键:命令或路径补全功能(linux中最常用的快捷键);
Ctrl+c:终止当前命令或程序;
Ctrl+d:退出当前用户环境,相当于命令:exit,logout;
Ctrl+a:切换到命令行开头;
Ctrl+e:切换到命令行结尾;
Ctrl+u:清除输入命令;
Ctrl+r:查找输入过的命令;
“!” 后面加上history中的命令行号,可以起度执行该命令的作用;如加上命令开头字母即执行该命令;
“!!” 重复执行的最近一次命令。
17、把/tmp目录下的o.txt,复制到/mnt目录下覆盖o.txt,要求系统不能提示(root权限)
方法一:\cp /tmp/o.txt /mnt
方法二:/bin/cp /tmp/o.txt /mnt
18、查看系统命令存放路径————which、locate、find
which cp #一般都会存放在/bin中。
locate cp #尽量不建议,会建立数据库(通常会用updatadb要加载查找)
find / -type f -name “cp”或find / -name “cp”
19、系统别名永久存放位置————/.bashrc
cat ~/.bashrc
20、别名显示与设置————alias
21、取消别名————unalias
22、查找与删除(高级应用)————先find后rm
find / -type f -name "test.txt" -exec rm -f {} \.
find / -type f -name "test.txt"|xargs rm -f
find / -type f -name "*.log" -mtime +5|xargs rm -f #查找到5天前的日志并删除
参数:
-type (f、d) 按类型查找,一般是文件或目录;
-name ”” 按名字查找,一般会用””引起来;
-mtime +或- 按修改时间查找,一般用于删除日志类文件。
23、只查看ett.txt文件(100行)第20至第30行内容————head |tail、sed、awk
seq 100 > ett.txt #向文件内加入100行序号
head -30 ett.txt|tail -11
sed -n 20,30p ett.txt
awk '{if (NR>19&&NR<31) printf $0}' ett.txt
24、将所有ett.txt文件中的oldboylinux修改为oldboywindows,并查看结果——find |sed、find | cat、find | ls
find / -type f -name 'ett.txt'|xargs sed -i s#oldboylinux#oldboywindows#g 批量修改
find / -type f -name 'ett.txt'|xargs cat #批量查看修改后的内容
find / -type f -name 'ett.txt'|xargs ls #批量查看文件所在目录
25、查看目录结构————tree
26、接在“|”管道符后,将前面的结果交出后一命令处理————xargs(常与find、ls结合)
27、打印输出数字序列————seq、echo {1..5}