您的位置:首页 > 运维架构 > Linux

linux常用命令总结

2017-04-20 14:09 591 查看

Linux基础课第三章常用基本的一些命令

文件处理命令
命令语法:命令 [-参数选项] [文件或路径]

注解:1个别命令使用不遵循此格式
2档有多个项目时,可以写在一起
3简化选项与完整选项
4[]代表可选
5参数选项表示同一个命令的不同功能

目录处理命令:ls 选项[-ald] [文件或目录]
显示目录文件 ls –lh /etc l详细 a所有 d属性 h以k,m等显示,R递归显示

[root@localhost ~]# ls -ld /tmp/japan/duobo
drwxr-xr-x 2 root root 4096 3月 8 15:46 /tmp/japan/duobo

-rw-r--r--
文件类型 -文件d目录,l软连接文件

rw- r-- r--
u g o
u所有者 g所属组 o其他人
r读 w写 x执行

创建目录命令:mkdir -p递归创建 [目录名]
实例:mkdir -p /tmp/japan/duobo
mkdir /tmp/japan/longze /tmp/japan/cangjing

Windows下的路径样式为c:\data ,而linux底下路径样式为/data,windows是\,而linux底下是/ .WINDOWS底下有d盘 c盘等盘符概念,而linux底下没有只有文件路径

切换目录命令:cd [目录路径]

记住一个概念;相对路径,绝对路径
绝对路径: Windows而言 :从头(盘符)开始的路径 linux而言:从/开始的路径
实例:H:\linux运维架构学习笔记\linux基础与系统管理总结
[root@localhost /]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
相对路径:不从/开始的路径,不头开始的路径
实例:[root@localhost sysconfig]# cd network-scripts

实例:cd /tmp/japan/boduo 到指定目录

[root@localhost ~]# cd /tmp/japan/duobo
[root@localhost duobo]#

cd ..上一级目录
[root@localhost ~]# cd /tmp/japan/duobo
[root@localhost duobo]#

cd 当前主目录下
[root@localhost japan]# cd
[root@localhost ~]#

显示当前目录:pwd 打印工作目录
实例: pwd

[root@localhost ~]# pwd
/root

删除空目录:rmdir [目录]
实例:rmdir /tmp/janpan/boduo

[root@localhost duobo]# rmdir /tmp/japan/duobo
[root@localhost duobo]# ls
[root@localhost duobo]# cd ..
[root@localhost japan]# ls
[root@localhost japan]# cd
[root@localhost ~]# cd /tmp
[root@localhost tmp]# ls
can japan test1 test2 test3

创建空文件:touch [文件名] 如果文件不存在,就建立新文件,如果存在,就改变文件的访问时间atime等时间戳信息
实例:touch japan.txt
创建有规则的多个文件
touch beidaqinniao{1..10}

[root@localhost tmp]# ls
can japan test1 test2 test3
[root@localhost tmp]# touch japan.txt
[root@localhost tmp]# ls
can japan japan.txt test1 test2 test3

创建有规则的多个文件
[root@localhost tmp]# touch beidaqinniao{1..10}
[root@localhost tmp]# ls
beidaqinniao1 beidaqinniao3 beidaqinniao6 beidaqinniao9 japan.txt test3
beidaqinniao10 beidaqinniao4 beidaqinniao7 can test1
beidaqinniao2 beidaqinniao5 beidaqinniao8 japan

Echo输出命令
语法echo [选项] [输出内容]
选项 -e: 支持反斜线控制的字符转换

实例:

[root@localhost ~]# echo -e "ab\bc"
Ac

[root@localhost ~]# echo -e "a\tb\tc\nd\te\tf"
a b c
d e f

[root@localhost ~]# echo -e "\e[1;33m luliechu is good boy \e[0m"
输出颜色的命令

\e[1;代表开启颜色输出
\e[0m代表关键颜色输出

echo -e "\e[1;33m a\t \e[1;31m b\n \e[1;32mc\t \e[1;34m d \e[0m "

标准输入输出标准输入 0 键盘标准输出 1 显示器标准错误输出 2 显示器 输出重定向 >覆盖 >>追加标准输出重定向 命令>文件 命令>>文件标准错误输出重定向 错误命令 2>文件 错误命令2>>文件 正确输出和错误输出同时保存 命令 >> 文件 2>&1 以追加的方式,把正确的输出和错误的输出都保存到同一文件当中 命令&>>文件 以追加的方式,把正确的输出和错误的输出都保存到同一文件当中 命令>>文件1 2>>文件2 把正确的输出到文件1中,错误的输出到文件2中 输入重定向:命令<文件
没有输出重定向有用,知道就行了,演示案例 wc命令 Wc 选项 文件名选项 -c 统计字节数 -w 统计单词数 -l 统计行数 链接多个命令顺序执行符号; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系 ,只是简化操作,实际用于文件对拷命令 dd实例:
Dd if=输入文件 of=输出文件 bs=字节数 count=个数选项 if=输入文件 指定源文件或源设备of=输出文件 指定目标文件或目标设备bs=字节数 把这些字节看做一个数据块count=个数 指定输入/输出多少个数据块 实例:创建一个100m的文件大概需要多少时间
&& 命令1&&命令2 逻辑与 命令1正确才会执行命令2
|| 命令1||命令2 逻辑或 命令1不正确才会执行命令2,命令1正确,就不会执行命令2 脚本长用&& ||结合用法,来判断条件成立与否
管道符| 将命令1的正确输出作为命令2的操作对象命令1 |命令2实例:监听正常连接
Grep [选项] “搜索内容” 文件名选项:-i 忽略大小写-n 输出行号-v 方向查找--color=auto 搜索出的关键字用颜色显示

复制目录或文件:cp -rp [源文件或目录] [目标目录]
-r递归复制整个目录树
-p保持源文件属性不变
-f强制覆盖目标同名文件或目录
-i需要覆盖时提醒
实例cp -r /tmp/japan/cangjing /root 将目录/tmp/japan/cangjing复制到目录/root下
cp -rp /tmp/japan/duobo /tmp/japan/longze /root 将目录/tmp/japan目录下的duobo和longze复制到目录/root下,保持目录属性

文件移动,剪切,改名:mv [源文件或目录][目标目录]
实例:mv test.txt /home 将文件test.txt移动到/home 下

删除文件:rm -fr [文件或目录]
-r递归删除整个目录树
-f强制删除文件或文件
-i删除时提醒
实例:rm /tmp /yum.log 删除文件/tmp/yum.log
rm -rf /tmp/japan/longze 删除目录/tmp/japan/longze

一次性显示文件内容:cat -n [文件名]
-n显示行号
实例:cat /etc/issue
cat -n /etc/services

反向显示文件内容:tac [文件名]
实例:tac /etc/issue

分页显示文件内容:more [文件名]
空格或f 翻页
enter 换行
q或Q 退出
实例:more /etc/passwd

分页显示文件内容:less [文件名] 必须按q退出
实例:less /etc/passwd

显示文件前面几行 head -n [文件名] 不加行数默认是10行
-n 指定行数
实例:head -20 /etc/passwd
[root@localhost public]# head -n 2 test.txt
test
liyao

显示文件后面几行 tail -n [文件名] 不加行数默认是10行
-n 指定行数
-f 动态显示文件末尾内容
实例:tail -2 /etc/passwd

已知/tmp目录下已经存在text.txt文件,如果执行命令才能把/mnt/test.txt拷贝到/tmp下覆盖掉/tmp/test.txt
答案:\cp /mnt/test.txt /tmp //覆盖文件不提示

生成软链接:ln -s [源文件] [目标文件]
-s创建软链接
实例:ln –s /etc/sysconfig/network-scripts /a 创建软链接
ln /etc/issue /tmp/issue.hard 创建硬链接
软链接类似:windows快捷方式
软链接文件权限都为777
文件大小只是符号链接
箭头指向原文件 /tmp/issue.soft ->/etc/issue

硬链接特征:
拷贝cp -p +同步更新
echo "this is a test">>/etc/motd
可通过I节点识别
不能跨分区
不能针对目录使用

改变文件或目录权限chmod [{ugoa}{=+-}{rwx}] [文件或目录]
[mode=421] [文件或目录]
-R 递归修改
权限的数字表示r=4 w=2 x=1 如rwxrw-r-- 等于764
实例:chmod g+w testfile 赋予文件testfile所属组写权限

chmod -R 777 testdir修改目录testfile及其目录下文件为所有用户具有全部权限
文件目录权限总结
代表字符权限对文件的含义对目录的含义
r 读可以查看文件内容可以列出目录中的内容
w 写可以修改文件内容可以在目录中创建,删除文件
x 执行可以执行文件可以进入目录

改变文件或目录的所有者:chown [用户][文件或目录]
实例:chown shenchao fengjie 改变文件fengjie的所有者为shenchao

改变文件或目录的所属组:chgrp [用户组][文件或目录]
实例:chgrp lam fengjie 改变文件fengjie的所属组为lam

显示,设置文件的缺省权限:umask [-S]
-s以rwx形式显示新建文件缺省权限
实例:umask -S

文件搜索:find [搜索范围] [匹配条件] 五星级别命令
-name按名称找
-size按大小找使用+ -设置超过还是小于指定大小,单位k,M,G
-user 属于目标用户查找
- type文件类型查找 f普通文件 d目录文件 b设备文件 c字符设备文件
实例:find /etc -name passwd 在目录/etc中查找文件passwd
find /etc -size +2M 在目录/etc中查找大于2M的文件
find /home -user test 搜索/home目录下由test创建的文件及目录列表
find /etc -cmin -5 在/etc下查找5分钟内被修改过的属性的文件和目录
-amin 设置时间 access
-cmin 文件属性 change
-mmin 文件内容 modify
find /etc -size +80M -a size -100M 在/etc下查找大于80M小于100M的文件
-a两个条件同时满足
-0两个条件满足任意一个即可
find /etc -name inittab -exec ls -l {}\ 在/etc下查找inittab文件并显示其详细信息
-exec/-ok 命令 {}\;对搜索结果执行操作

面试题:删除一个目录下的所有文件,但保留一个指定文件 解答:假设这个目录是/xx/,里面有file1,file2,file3..file10 十个文件[root@oldboy xx]# touch file{1..10}[root@oldboy xx]# lsfile1 file10 file2 file3 file4 file5 file6 file7 file8 file9 方法一:find[root@oldboy xx]# lsfile1 file10 file2 file3 file4 file5 file6 file7 file8 file9[root@oldboy xx]# find /xx -type f ! -name "file10"|xargs rm -f [root@oldboy xx]# lsfile10 [root@oldboy xx]# find /xx -type f ! -name "file10" -exec rm -f {} \; [root@oldboy xx]# lsfile10 这两种一个通过xargs传参,一个通过find的-exec执行命令参数来完成,都算作find吧
find /tmp -type f -name "*.txt" -exec rm {} \;
路径 类型 名字 把find的结果传参 动作

Find /log -type f -name “*.log” -mtime +15 |xargs rm -f //查找log目录,删15天以前修改过得文件
Find /log -type f -name “*.luliechu” -mtime +30 |xargs rm -fr //查找log目录,删30天以前修改过得的并且以luliechu名称结果的目录

[root@localhost /]# mv `find /tmp -type f -name "*.txt"` /tmp/public
[root@localhost /]# cd /tmp/public
[root@localhost public]# ls
1.txt 4.txt luliechu1.txt luliechu4.txt luliechu7.txt
2.txt 5.txt luliechu2.txt luliechu5.txt luliechu8.txt
3.txt luliechu10.txt luliechu3.txt luliechu6.txt luliechu9.txt

在文件资料库中查找文件:locate 文件名
实例:locate inittab

搜索命令所在目录及别名信息:which 命令
实例:which ls

搜索命令所在目录及帮助文档路径:whereis 命令名称
实例:whereis ls

在文件中搜索字符串匹配的行并输出:grep -iv [指定字串] [文件] 五星命令三剑客之一
-i不区分大小写
-v排除指定字串
实例:grep mysql /root/install.log
grep root /etc/passwd

假设一个文本中包含luliechu,现在要求打印此文本中去除luliechu
模拟创建文本
[root@localhost public]# cat >>test.txt<<eof //创建多行文本
> test
> liyao
> luliechu
> eof
[root@localhost public]# cat test.txt
test
liyao
luliechu

答案:
[root@localhost public]# grep -v luliechu test.txt grep筛选过滤 -v排除
test
Liyao

[root@localhost public]# grep luliechu test.txt 不加-v就是包含查找这东西
Luliechu

Alias查看和设置别名
[root@localhost public]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'

永久生效别名[root@localhost tmp]# vi /root/.bashrc 1 # .bashrc 2 3 # User specific aliases and functions 4 5 alias rm='rm -i' 6 alias cp='cp -i' 7 alias mv='mv -i' 8 alias vi='vim' 9 # Source global definitions 10 if [ -f /etc/bashrc ]; then 11 . /etc/bashrc 12 fi 删除别名 unalias 别名 uniq去重命令 -c 计算有多少次重复的 实例:创建测试数据:[root@localhost ~]# echo 123 >test[root@localhost ~]# echo 123 >>test[root@localhost ~]# echo 123 >>test [root@localhost ~]# echo 123 >>test[root@localhost ~]# cat test123123123123[root@localhost ~]# uniq test123[root@localhost ~]# uniq -c test 4 123 sort对文本行进行排序 [root@localhost ~]# cat test121122123123124125126 [root@localhost ~]# sort test 121122123123124125126 -n数字排序 -r倒序 [root@localhost ~]# sort -rn test126125124123123122121 -t分隔符 -k指定第几个字段-k3,3从第三个字段开始排序,到第三个字段结束-k4.1,4.3 从第四个字段第1个字符开始排序,到第四个字段第3个字符结束[root@localhost ~]# sort -t " " -k 2 test 121 a123 b122 c123 d124 e125 f126 g [root@localhost ~]# sort -n -t "." -k3,3 -k4,4.2 test192.168.0.1 192.168.0.2192.168.0.15192.168.1.2192.168.1.3192.168.1.11192.168.1.12192.168.2.1192.168.2.10192.168.2.11192.168.3.1192.168.3.2192.168.3.3192.168.10.1192.168.10.2 面试题:处理以下内容,并将域名取出并根据域名进行计数排序处理 对应:分析网络连接里,正在连接的所有ip地址,计数 分析http服务,日志ip的访问次数,计数 创建测试数据[root@localhost tmp]# cat >>test <<eof> http://www.baidu.com/index.html> http://www.kuparts.com/index.html> http://post.etian.org/index.html> http://www.baidu.com/index.html> http://www.baidu.com/index.html> http://www.jingdong.com/index.html> http://kuparts.com/index.html> eof[root@localhost tmp]# cat testhttp://www.baidu.com/index.htmlhttp://www.kuparts.com/index.htmlhttp://post.etian.org/index.htmlhttp://www.baidu.com/index.htmlhttp://www.baidu.com/index.htmlhttp://www.jingdong.com/index.htmlhttp://kuparts.com/index.html [root@localhost tmp]# cat test |awk -F "/" '{print $3}'|uniq -c |sort -rn -k1 2 www.baidu.com 1 www.kuparts.com 1 www.jingdong.com 1 www.baidu.com 1 post.etian.org 1 kuparts.com 只查看ett.txt文件(100行)内第20到30行的内容
Seq打印序列号命令
[root@localhost public]# seq 5
1
2
3
4
5
[root@localhost public]# seq 1 3 10
1
4
7
10

答案:seq 100 >ett.txt //模拟创建文件
第一种方法:head -30 ett.txt|tail -11
第二种方法:sed -n '20,30'p ett.txt
第三种方法:awk ‘NR>19&&NR<31’ ett.txt

Sed 流编辑器,用来将数据进行选取,替换,删除,新增的命令

root@localhost ~]# sed [选项] ‘[动作]’ 文件名 五星命令
选项:
-n: 一般sed命令会把所有数据都输出到屏幕 , 如果加入此选择,则只会把经过sed命令处 理的行输出到屏幕。
-e: 允许对输入数据应用多条sed命令编辑
-i: 用sed的修改结果直接修改读取数据的文件, 而不是由屏幕输出

动作:
a \: 追加,在当前行后添加一行或多行。添加多行时,除最后 一行 外,每行末尾需要用“\”代表数据未完结。
c \: 行替换,用c后面的字符串替换原数据行,替换多行时,除最 后一行外,每行末尾需用“\”代表数据未完结。
i \: 插入,在当期行前插入一行或多行。插入多行时,除最后 一行 外,每行末尾需要用“\”代表数据未完结。
d: 删除,删除指定的行。
p: 打印,输出指定的行。
s: 字串替换,用一个字符串替换另外一个字符串。格式为“行范 围s/旧字串/新字串/g”(和vim中的替换格式类似)。

sed -i 's#□#△ #g' //sed替换
#是定意符,‘’□能用正则表达式 △不能用
sed -i 's#wenxue#huangxiaoche#g' test2

Find /public -type f -name “*.sh”|xagrs sed -i 's#wenxue#huangxiaoche#g' test2

行数据操作
[root@localhost ~]# sed '2p' student.txt
#查看文件的第二行
[root@localhost ~]# sed -n '2p' student.txt

[root@localhost ~]# sed '2,4d' student.txt #删除第二行到第四行的数据,但不修改文件本身

[root@localhost ~]# sed '2a hello' student.txt #在第二行后追加hello [root@localhost ~]# sed '2i hello \ world' student.txt #在第二行前插入两行数据

# sed '2c No such person‘ student.txt
#数据替换

字符串替换
# sed ‘s/旧字串/新字串/g’ 文件名
# sed '3s/74/99/g' student.txt
#在第三行中,把74换成99
#sed -i '3s/74/99/g' student.txt
#sed操作的数据直接写入文件
# sed -e 's/Li//g ; s/lin//g' student.txt
#同时把“Li”和“lin”替换为空

帮助命令:man [命令或配置文件]
实例:man ls 查看命令ls的帮助信息
man services 查看配置文件services的帮助信息

获得sheel内置命令的帮助信息:help 命令
实例:help umask 查看umask命令的帮助信息

添加新用户:useradd 用户名
实例:useradd luliechu

设置用户密码:passwd 用户名
实例:passwd luliechu

查看登录用户信息:who
查看登录用户详细信息:w

压缩命令: gzip [文件]
Gzip压缩扩展名为.gz的文件
实例: gzip test.txt

解压缩.gz的压缩文件:gunzip [压缩文件]
实例:gunzip boduo.gz

归档打包命令:tar 选项[-czf] [压缩后文件名] [目录]
-c创建一个新包文件
-x解开.tar格式的包文件
-f使用文件归档
-z调用gzip压缩或解压
-j调用bzip2压缩或解压
实例:常用组合:tar xzf tar xjf
Tar czvf 创建一个压缩包格式的包文件,显示执行的详细信息
Tar czf etc.tar.gz /etc 将目录/etc打包并压缩为.tar.gz文件
Tar xzvf 解开一个压缩格式的包文件,显示执行详细信息
Tar xzf etc.tar.gz –C /home
Tar tzvf 临时解开一个压缩格式的包文件,查看内部的列表

压缩文件或目录:zip 选项[-r][压缩后文件名][文件或目录]
-r 压缩目录
实例:Zip test.zip test.txt Zip生成zip格式的压缩文件
zip -r japan.zip japan 压缩目录

解压缩zip格式的压缩文件:unzip [压缩文件]
Unzip test.zip –d /home

Bzip 压缩扩展名为.bz2 bzip test.txt
Gzip –d 解压扩展名为.gz的文件 gzip –d text.txt.gz
Bzip2 -d解压扩展名为.bz2的文件 bzip2 –d text.txt.gzfa

给用户发信息:write <用户名>以ctrl+d保存结束
实例:write luliechu

发送广播信息:wall [message]
实例:wall hello,word!

测试网络连通性:ping 选项 ip地址
-c指定发送次数
实例: ping 192.168.1.1

查看网卡信息和ip地址:ifconfig 网卡名称 ip地址
实例:ifconfig eth0 192.168.1.2 设置ip地址为192.168.1.2

查看发送电子邮件:mail [用户名]
实例:mail root

列出目前与过去登入系统的用户信息:last

检查某特定用户上次登录时间:lastlog
实例:lastlog -u 502

显示数据包到主机间的路劲:traceroute
实例:traceroute www.baidu.com

查看网络相关信息:netstat [选项]
-t :tcp协议
-u :udp协议
-l :监听
-r :路由
-n :显示ip地址和端口号
实例:netstat -tlun查看本机监听的端口
netstat -an 查看本机所有的网络连接
netstat -rn 查看路由表

配置网络:setup

挂载命令:mount [-t文件系统] 设置文件名挂载点
实例:mount -t iso9660 /dev/cdrom /mnt/cdrom

关机命令:shutdown [选项] 时间
-c 取消前一个关机命令
-h 关机
-r 重启
实例:shutdown -h now

其他关机命令:halt ,init 0,poweroff
其他重启命令:reboot,innit6

Linux七种运行级别
0:关机
1:单用户模式相当于windos中安全模式
2:字符界面的多用户模式(不支持网络)
3:字符界面的多用户完整模式
4:未分配使用
5:图形界面多用户模式
6:重启
查看linux系统当前运行级别 runlevel
要修改默认的运行级别可改文件 /etc/inittab的id:5:initdefault这一行的数字

退出登录命令:logout

命令于文件补全 tab
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux japan