linux常用命令_1

 linux中命令格式是什么?

       命令 [参数选项] [文件或路径]

              中括号表示可选,命令的参数与路径文件可选

              参数选择表示一个命令的不同功能

       命令 和 参数选项 中必有一空格,多个参数连在一起写

  几乎所有命令都可以直接接文件

什么是相对路径和绝对路径?

       绝对路径: 从头开始的路径,对于window是从盘符开始的路径,对于linux为以 / 开始的目录

              如: /etc   /root/data

       相对路径: 不从头开始,不从根开始的路径

              如: data/

mkdir     创建目录

mkdir /data    # 在根目录下创建data目录

  -p 递归创建目录

mkdir -p /data/a/b    # 在/data/目录下创建a目录,再在a目录下创建b目录

ls   列表目录文件

ls /     # 列根目录下内容

  -l(long)长格式,-d(directorys)查看目录

ls -l /root    # 查看 /root目录下未隐藏的文件和目录长信息
ls -ld /root    # 查看 /root 目录本身长信息

  -a    查询包含隐藏的所有文件

ls -a /root    # 查看 /root 目录下所以文件和目录信息,包括以点开头的隐藏文件信息

  -t     按修改时间排序

ls -lt /root    # 查看 /root 目录下,最新修改时间的文件在最上面

  -r     按创建时间倒序排序,翻转排序,最新的放在下边

ls -lrt /root    # 查看 /root 目录下,通过 r ,把最新修改时间的文件在放最下面,翻转

  --color=auto         ls显示颜色,或grep过滤满足条件添加颜色

grep --color=auto 3306 /etc/services    # 对查询结果关键字添加标记颜色

  -h    人类可读

ls -lh /root    # 最直观感受,文件大小换算成k为单位

  -i     文件i节点

ls -ihl    # 最直观每行结果前面多个一串数字

  --time-style=long-iso   规范时间显示

ls -lh --time-style=long-iso /root    # 最直观感受是时间的顺序,按年月日时分格式化了

cd          切换目录路径 

cd ~            # 回到用户家目录
cd /etc       # 切换到/etc 目录下
cd              # 不加 - 默认也是回到家目录
cd .    # 返回当前目录
cd ..    # 返回上级目录

pwd        打印当前所在目录的绝对路径

touch     创建文件或更新时间戳,如果文件存在,把该文件更新到当前时间戳

touch /data/hello.txt             # 绝对路径下,在 /data/目录下创建一个hello.txt文件
touch data/hello.txt               # 相对路径下,在当前目录下data/目录中创建一个hello.txt文件
touch /data/hello.txt data/hello.txt    # 以上两个文件可以同时创建

vi     编辑文件,没有就新建,相当于windows记事本

  

              初始进入命令模式,按i 或 a 进入编辑模式,按esc退出编辑模式,按 : wq 退出vi

vim        复杂编辑器           写脚本(shell, python)

echo      打印 

echo 'My name is BeiMenChuiXue'

  echo 联合 > 和 >> 使用,分别是输出重定向和输出追加重定向

echo 'My name is BeiMenChuiXue' > Name.txt        # 会清空 Name.txt内容添加 My name is BeiMenChuiXue内容进去
echo 'My name is BeiMenChuiXue' >> Name.txt    # 把 My name is BeiMenChuiXue 这短字符追加到 Name.txt文件内容后面

cat         浏览文件内容       联合 重定向 使用,往文件内写入内容

  -n 显示行号

seq 1 100 > Name.txt    # 写入数据
cat Name.txt        # 浏览内容
cat -n Name.txt    # 显示内容行号

   多行追加,用户写脚本

cat>>get_html.py<<jia
import requests
url = 'https://www.baidu.com/'
res = requests.get(url=url)
if res.status_code == 200:
    print 'OK'
else:
    print "Faile"
print "done!"
> jia

# 写了一段python脚本代码,获取百度首页网页,jia字符是开始和结束标记,是成对的任意字符

  

xargs     从标准输入获取内容创建和执行命令

   -n    按 多少组字符分行,每组字符以空格分开

echo stu{01..20} |xargs -n 5        # 把 stu01 ~ stu20 按5个词组分组,占一行

有哪些特殊符号?

       >     输出重定向:       把前面输出的内容输入到后边的文件中,会清空原文件内容

>Name.txt    # 清空Name.txt 内容

       >>  输出追加重定向 把前面输出的东西追加输入到后边的文件文件尾部,不会清空文件内容

seq 100 >> Name.txt    # 向 Name.txt 追加 1 到 100 个数字字符

       <     输入重定向    改变命令的输入,后面指定输入内容,前面跟文件名

xargs -n 5 < Name.txt    # 把 Name.txt的内容当做输入给xargs命令

       <<  追加输入重定向 后面跟字符串,用来表示”输入结束”

       2>   错误重定向

ech 'hell word' 2> error.txt    # 错误信息写入error.txt文件

       2>> 追加错误重定向

       说明:

    1. 箭头的指向就是数据的流向

    2. 0 标准输入    < 或 << 数据流从右向左

    3. 1 标准输出    > 或 > 数据从左向右

    4. 2 错误输出    2> 或 2>> 错误数据输出,数据量从左到右

  .     当前目录

  ..    上一级目录

  /     根目录

  |     管道,上一个命令的结果作为下一个命令处理对象

  ;      分割两个命令,并没有因果关系

  {}     创建多个或指定文化或目录

mkdir /data/{test1, test2}/data.txt -p    # 同时/data目录下创建 test1, test2两个目录同时这两个目录下包含 data.txt 文件
touch {1..10}.txt   # 当前目录下创建 1 ~10 个文件,并按 1.txt~10.txt 创建

  !        调用最近使用的命令, 取反

       !m           查询最近使用的以m开头的命令

       !33           执行history查询出来33指定的命令

find /oldboy -type f ! -name ‘test.sh’         # 取oldboy目录下,名字非test.sh的文件

  !!      调用最近使用的命名

         ! 和 !! 联合history使用

        当前用户的家目录

  -        上一次所在目录

         单个任意字符

  .*       代表所有字符

          转义字符,把带有特殊含义的字符还原成原原本本的字符

  正则表达式只适用与linux三剑客(awk sed grep), 普通命令只适用通配符

如何把正确的和错误的都放入同一个文件?

       2>&1      或  &>          正确的错误都放入同一个文件

cho oldboy > oldboy.txt 2>&1        # 错误信息写入oldboy.txt
echo oldboy &> oldboy.txt             # 正确信息写入oldboy.txt    

       2>>&1    或 &>>   追加

echo hhhhhh &>> oldboy.txt            # 正确追加
cho hhhhhh &>> oldboy.txt             #  错误追加

cp   拷贝文件或目录,不加参数只能拷贝文件

cp Name.txt /tmp/    # 把当前目录下 Name.txt 拷贝到 /tmp目录下

  -p    档案属性一起复制过去

cp -p Name.txt /tmp/    # 复制文件时间把文件属性也一同带过去

  -r     递归复制目录

cp -r /root/ /tmp/    # 把 /root 目录,拷贝到 /tmp 目录下

  -a   相当于-pdr

  -d  复制连接文件,不复制连接文件指向的文件

cp -d to_link /tmp/    # 复制软链接到 /tmp 目录下

mv  移动或修改名     移动时候,目录最后一个斜杠不要加

mv /data /tmp        # 把data目录移到tmp目录下
mv boy.txt girl.txt         # 把boy.txt文件名改成girl.txt

rm  删除(少用和谨慎使用,最好不要使用)     一旦删除,无法恢复,删除前先备份

  -f 强制删除 

rm -f /root/Name.txt       # 强制删除 Name.txt 文件

  -r 删除目录

rm -rf /data    # 强制删除 /data 目录

find  查找            最重要命令之一

       -type f / d       f 表示文件, d表示目录, c字符类型,b(block)

       -name 指明名字

       -exec 命令 {} .    对查询结果进行处理

find /root -type f -name ‘Name.txt’ -exec rm {} ;        #从 /root目录下查询名字为 Name.txt 的文件,对查询结果执行rm命名    

       -mtime 时间数字

              +7 七天以前

              7 第七天

              -7 最近7天

       -o           or          取或

       -a           and        取并

find /data -type f -name ‘*.txt’ |xargs rm -f         # 从 data目录下查询所有以.txt结尾的文件,通过|xargs组成一行命名,执行rm -f    

grep  过滤内容   非常重要,三剑客排行老三

  -v 排除内容

grep -v 'Word' Name.txt    # 查询 Name.txt 文件内容,不包含 Word的其他行内容

  -E    表示可以通过搜索多个字符,以 | 隔开

grep -E “3306 | 1521” /etc/service

  -i     不区分大小写

grep -iv 'word' Name.txt    # i不区分大小写

head      读一个文件前n行内容,默认前10行

head -1 Name.txt    # 查看 Name.txt 文件中内容第一行

tail          读一个文件后n行数据,默认10行

tail -1 Name.txt    # 读取文件最后一行内容

yum       安装软件包

  -y 直接装

yum install -y tree    # 安装 tree 软件包

tree        展示目录树结构

  -L 指定展现几级目录

tree -L 1 /root/    # 显示 /root 目录下,1层目录结构

  -d    表示只查看目录

tree -Ld 1 /root/    # 只查看 /root 下只含有 目录 的一层目录结构

alias       别名

  作用: 给危险命令加一些保护参数,防止误错作,把复杂命令改成简单命令

  直接输入 alias ,查看已经设置好的别名信息

alias py2=python    # 临时把python命令改为py2,系统重启生效

unalias  取消别名

unalias py2    # 取消py2对应的命令

  如何做到永久生效?

    按格式写入这两个文件

                     .bashrc         当前用户生效

                     /etc/profile     所有用户生效

seq  打印序列

  -s 指定分隔符

seq -s" " 1 20    # 打印1 到 20 的字符,中间以空格隔开
seq -s" " 1 2 20    # 间隔 2 打印 1到20 字符,中间以空格隔开

sed  流编辑器,实现对文件的增删改查替换,三剑客排名第二

  -n 取消默认输出,按规则打印想要内容

seq 1 100 > Name.txt    # 写入数据
sed -n '1,2,20'p Name.txt    # 打印 Name.txt 中 间隔2行从第1行到 20行内容

  p 表示打印内容

sed -n '$'p Name.txt    # 打印最后一行内容

  s 查找并替换,与g联合使用

sed "s#99#new#g" Name.txt    # 找出Name.txt所有内容 含有 99 字符的全部替换成new字符,打印结果

  g 全局匹配替换

  -i 修改内容

sed -i "s#99#new#g" Name.txt    # 找出Name.txt所有内容 含有 99 字符的全部替换成new字符,更改生效

awk  过滤、输出内容一门语言

  NR 代表行号, $1 第一列, $2第二列,依次轮推,但是$0表示一行,$NF最后一列

seq 1 10 > seq.txt    # 写入数据
awk 'NR>1&&NR<5' seq.txt    # 查找seq.txt内容中 2 - 4行内容

      -F 指定分隔符

echo '1:2:3:4:5:6:7:8:9'> awk.test    # 写入内容
awk -F ':' '{print $1}' awk.test    # 打印以 : 隔开的第一个内容

man       所有命令的使用方法,帮助文档

man cp    # 查看cp命令详情使用方法

              相似: --help, 有些命令时bash内置命令,不能通过man查询,也看不到命令位

date       查看时间

  -s 更改时间

date -s '2017/11/21 15:43'    # 更改系统时间,格式为:年/月/日/ 时:分,

  +  格式化时间

    %H         小时

    %M        分钟

    %S         秒

    %X         时分秒

    %F         年-月-日

    %w         一周第几天

date +%Y-%m-%d %H:%M:%S		年-月-日 时:分:秒

    企业应用:

      day        天

      Hour      时

      Min        分

tar cvzf date_`date +%F`.tar.gz date/	# 一般接在文件名后面
tar zcvf data_$(date +%F).tar.gz date/	# 同上
date +%F -d '-2day'			# 求前天的时间
date +%F -d '-24Hour '			# 24小时以前
date +%F %X -d '+4Hour'		# 4小时以后

  

which  查询命令所在路径

which cp    # 查询cp命令所在决绝路径,一些内置bash命令无法查找到位置

less        按页显示文件内容,可以按 n或enter 一行一行显示出来, 按 空格 一页一样显示,按b可以回退

chkconfig  设置开机自启动服务

  -- list       查询服务启动级别,默认全部,指定服务名显示某服务启动级别

chkconfig --list sshd           # 查询sshd服务的开机自启动对应级别

  -- level    设置服务启动级别

       on/off       开启或关闭服务,默认2345级别

chkconfig crond off    #关闭 crond 服务
chkconfig crond on    # 开启 crond 服务
chkconfig --list | grep '3:on'    # 查询3级别自启的服务

dumpe2fs     查询文件系统内部信息(元数据)

dumpe2fs /dev/sda1 | grep -i ‘inode size’       #  查询sda1分区inode大小

df  查询磁盘信息

       -i 查询分区inode使用节点,剩余inode

df -i    # 查询 inode 使用情况

       -h 查询磁盘剩余空间(Block)

df -h    # 查询 block 使用情况

       磁盘空间满了,有两项参数指定,inode是否满了,block是否满了,任何一项满了,都无法再存放数据了

       磁盘满的一个特征: (no space left on device)

file  查询文件类型

file Name.txt /root    # 查询 Name.txt文件的文件类型 和 /root 目录的文件类型

last  查询用户登录信息,对应 /var/log/wtmp文件

lastlog  显示最近用户是否登录过,对应/var/log/lastlog文件

原文地址:https://www.cnblogs.com/2bjiujiu/p/7872620.html