Linux命令 150个 常用的也就80个。
linux命令操作语法格式图:
命令_参数_路径文件
rm -f /tmp/t.log
提示:
a.命令的参数可选
b.不同的命令路径和文件可选
命令 --help 命令的简单帮助
man ==命令的帮助
help ==命令的帮助(bash的内置命令)
ls ==list 查看目录列表
参数:-l(long长格式)、-d(directory目录)
例子:
mkdir ==make directory 作用是创建目录,
例如: mkdir /data
例如:mkdir -p /tmp/data/new
说明:-p (递归创建目录)
cd ==change directory 作用是切换路径,例如:cd /
touch ==摸一下,作用是创建文件,例如:touch oldboy.txt
vi ==编辑器,相当于笔记本,有编辑功能,但较弱。
vim ==复杂编辑器,相当于,emeditor,editplus,notepad+
echo ==打印输出内容,配合“>或>>”可以为文件覆盖及追加内容
echo "oldboy oldgirl">oldboy.txt
cat ==查看文件内容
特殊用法:增加多行内容
cat >>/data/oldboy.txt<
I am studing linux.
EOF
EOF要成对出现,EOF可以被任意成对内容替换。
cp ==copy复制命令ctrl+c,例如cp oldboy.txt /tmp/
-r:递归,用于复制目录; -p:保持属性
-a:相当于 -pdr
cp='cp -i' -i需要确认
mv ==移动目录或文件,例如:mv /data /root/
pwd ==print work directory 查看当前用户所在的路径
rm ==remove 删除文件或者目录 -f强制,-r删除目录
生产环境尽量不要使用rm,如果非要用,一定要先cp等备份。
替代方法:
mv移动到一个临时目录。回收站。
find***** ==查找
命令格式:find (目录) -type 按文件类型查找,-name 按照名字查找,查找的内容最好用双引号括起来
例如:find /tmp/ -type f -name "oldboy.txt" -exec rm -f {} \;
说明:-type f (文件类型) -name(按名字超找,查找的内容用双引号扩起来) -exec(处理查找的结果) rm -f(前面找到的内容处理删除){}(查找的内容)\;(转义,不代表任何意思)
例如:find /tmp/ -type f -name "*.txt"|xargs rm -f
说明:|(代表管道:把前一个命令结果的输出交给后一个命令继续处理) xargs()
例如:find /tmp/ -type f ! -name "oldboy.txt"|xargs rm -f
说明:!(取反)
参数:-a(and并且)、-o(or或者)
例如:find -type f -name test.txt|xargs sed -i
's#younggirl#oldboy#g'
head ==头部,取文件的前N行,默认前10行
例如:head -n 3 /etc/passwd
说明:取前三行-n 3,简写就是-3
tail ==尾巴,取文件的最后N行,默认最后10行
例如:tail -n 3 /etc/passwd
说明:取最后三行-n 3,简写就是-3
例如: head -30 test.txt |tail -10
说明:取文件21行到30行内容
awk *****==一门语言,过滤内容(擅长取列),linux三剑客,老大。
命令格式:awk '{print $1}' 文件
说明:$1第一列,$2第二列... $NF最后一列,$(NF-1)最后第二列
例如:awk -F ":" '{print $1 "=" $2}' /etc/passwd
说明:-F(指定分隔符为":") "="(第一列和第二列直接用“=”分割)
例如:awk '{if(NR<31&&NR>19) print $1"\n"}' test.txt
例如:awk '{if (NR>20&&NR<26) print ¥0}' /etc/passwd
说明:NR代表行号,&&代表并且,\N代表回车换行,$0代表整行。
grep *****==过滤器(擅长过滤),把想要的或者不想要的分离开。linux三剑客,老三
参数:-v排除不需要的,-i不区分大小写,-E过滤多个字符串,-o输出精准匹配的字符而不是默认的整行
例如:grep "oldboy" test.txt
例如:grep -v "oldboy" test.txt
grep -B 除了显示匹配的一行之外,并显示该行之前的num行
grep -A 除了显示匹配的一行之外,并显示该行之后的num行
grep -C 除了显示匹配的一行之外,并显示该行之前后各num行
例如:grep 25 -C 5 test.txt
sed *****==过滤(擅长取行):sed -n '/过滤的内容/处理的命令' 文件。linux三剑
客,老二
-n 取消sed的默认输出
-i 改变文件内容*****
处理的命令:p print打印,d delete删除
例如:sed '/oldboy/d' test.txt
例如:sed -n '/oldboy/p' test.txt
sed取行
例如:sed -n '20,30p' test.txt
说明:sed取行,20到30行
sed替换*****(应用极为广泛)
例如:sed -i 's#oldboy#oldgirl#g' test.txt
说明:s常说的查找并替换,用一个字符串替换成另一个、g(global)与s联合使用时,表示对当前全局匹配替换(与下一个g意义不同),参数:-i修改文件内容, #是分隔符,可以用/@等替换
yum ==linux里包管理器
例如:yum install tree -y (下载tree包,然后调用rpm命令安装tree包。如果需
要依赖包,帮你下载帮你提前安装。)
rpm == -ivh(安装、显示输出、人类可读)
例如:rmp -ivh 包名.rpm(提前下载好)
最大问题,依赖问题不好解决:a---b---c---d
例如:rpm -qa tree <==-q query -a all
tree ==显示目录树结构
alias ==查看以及定义别名(外号、小名)
例如:alias oldboy='echo "I am oldboy linux"'
例如:alias rm='echo "rm can not be used,pls use mv"'
别名生效的位置,真对root用户:grep alias /root/.bashrc
所有用户生效:/etc/bashrc或/etc/profile定义
生效source /etc/profiles
别名的作用:
1)通过给危险命令加一些保护参数,防止人为误操作。
2)把很多复杂的字符串或者命令变成一个简单的字符串或者命令。
unalias ==取消别名
seq ==sequence序列 -s指定序列的分隔符
history ==打印用户操作的历史记录
hostname==查看主机名(uname -n)
uname==打印系统信息 -r内核 -m 32or64位 -n主机名 -a所有
whoami==查看当前用户
su==用户角色切换 su - 用户名 -代表参数切换用户环境变量
从普通用户到root,是需要输入root密码。从root到普通用户无需密码。
普通用户,root皇帝
getenforce==检查selinux状态
setenforce==设置selinux状态1启用0警告、不启用
runlevel==查看当前系统运行级别
intit==切换运行级别,后面接对应级别的数字
例:init 5==startx 切换桌面环境,需要桌面软件包
chkconfig==设定开机自启动服务
快捷键:
TAB ==命令、路径补全,linux里最有用的快捷键,如果tab不到路径或命令,就代表没有,这个路径或者命令,还有可能是权限不对。
Ctrl+c 终止当前任务命令或程序
Ctrl+d 退出当前用户环境。相当于命令exit,logout
Ctrl+l 清屏 相当于命令clear
Ctrl+shift+c ssh客户端里复制的命令
Ctrl+shift+v ssh客户端里粘贴的命令
特殊字符命令:
>或1>重定向,会清除文件里所有以前数据,增加新数据。
>>或1>>追加重定向,文件结尾加入内容,不会删除已有的文件内容。
<输入重定向
<<追击输入重定向
2>错误重定向
2>>错误追加重定向
1.标准输入(stdin):代码为0,使用<或<<数据流向从右向左。
2.正常输出(stdout):代码为1,使用>或>>数据流向从左向右。
3.错误输出(stderr):代码为2,使用2>或者2>>。
箭头的指向就是数据的流向
\ 让一个有意义的字符,脱掉马甲。
.. 相对路径,表示当前目录的上一级目录,例如:/mnt/oldboy,mnt就是oldboy的上级
目录。
. 相对路径,表示当前目录,即当前命令行的目录。
| 管道(把前一个命令结果的输出交给后一个程序继续处理)
~ 用户的家目录,针对root环境~就代表/root
{}输出字符序列或者数字序列
!...
基础正则表达式:一些特殊的符合,表示一些特殊的作用和功能
.代表任何任意字符
*重复前面任意0个或多个字符
.*匹配任意字符
例子: sed -i 's#(可以用正则匹配)#\1#g' oldboy.txt