实验环境为red hat Linux 6.2。部分系统可能会有差别请区别对待!

Linux 和shell有关的命令:

cat /etc/shells 查看当前系统支持的shell

cat /etc/passwd 查看当前系统所有用户和密码

echo $0   输出shell本身的文件名

$$    shell本身的PID(ProcessID)

$?    最后运行的命令结束代码(返回值)

echo $? grep匹配成功输出为0 否则为1

bash --version 显示当前bash版本信息

ctrl alt F1 图形化界面

ctrl alt F2-F6 控制台界面

------------------------

Linux系统的登陆流程:

1.BIOS引导

从MBR中装载启动引导管理器(LILO或GRUB)运行该启动引导

2.GRUB启动引导

读取/boot/grub.conf文件并显示启动菜单

3.内核阶段

挂载根文件系统

4.Sys V init初始化阶段

启动/sbin/init程序和读取/etc/inittab文件


Linux基础命令(注意字母大小写)

ls -a 显示所有文件包括隐藏文件

ls -l 显示详细信息

ls -F  目录后加一符号,可执行文件加*,文件夹加/

cd - 回到上一步操作目录

cd ~ 回到home目录

cd .. 回到上层目录,cd ../../ 回到上两层目录

mkdir 新建文件夹

mkdir A B C 连续建立A B C三个文件夹

mkdir -p abc/123/bcd -p 建立多级目录

rmdir 删除空目录

rm  -i test 询问是否删除test文件

    -r 目录名 删除目录和该目录下的所有文件和子目录

    -f 不经确认强制删除文件

touch 创建文件

echo aaa >>1.txt    创建文件并写入(>>连续写入,>覆盖写入)

echo 为屏幕输出

mv 1.txt 2.txt 移动目录或文件

mv 1a.txt -b 1b.txt    先对1b.txt备份(1b.txt~),再复制1a.txt到1b.txt,再 删除1a.txt   

mv *.txt  /tmp 所有.txt文件移动到/tmp目录下

cp 源文件 目的文件 连同源文件中的子目录一同拷贝

cp -r 源文件 目的文件 连同源文件中的子目录一同拷贝 -r批量

scp 1.txt root@172.18.12.87:/tmp/ 拷贝文件到目的主机的一个目录

scp -r 1.txt root@172.18.12.87:/tmp/  ./ 从目的主机拷贝文件到本地目录

more 1.txt 查看文件内容,分页查看,可查找文件内容

cat test 显示文件内容

cat file1 file2 顺序显示两个文件的内容

cat file1 file2 >>file3 1 2中的文件重定向到3中

cat -n --number 由 1 开始对所有输出的行数编号

   -b 和 -n 相似,只不过对于空白行不编号

   -A 显示制表符(windows和linux文本编辑回车的格式符 不一样)

su 提升权限至root用户     

sudo 该条命令提升权限  

su- 切换root用户,环境变量也切换过来了

useradd 添加用户

userdel 删除用户

passwd 修改密码

pwd 查看当前路径

man 命令符 帮助命令等同于 [命令符 --help]

ipconfig/flushdns windows系统刷新DNS解析缓存

chmod 777 1.sh u g o添加最高读写和执行权限

chmod +x 1.sh u g o添加执行权限到文件

chmod g+r 1.sh   grup添加读权限到文件

chmod o-w 1.sh other剥夺写权限到文件

chown oracle:dba text 将 text 文件的属主和属组分别改为 oracle 和 dba

-------------------------------------------------------------------------------

u[user] g[grup] o[other]

 rwx       rwx        rwx    /*权限 r=4 x=1 w=2

-------------------------------------------------------------------------------

r(Read,读取) w(Write,写入) x(eXecute,执行)

S权限(SUID,Set UID) 可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。

t权限(Sticky) /tmp和 /var/tmp目录供所有用户暂时存取文件,该位可以理解为防删除位。如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件。如果希望用户能够添加文件但同时不能删除文件, 则可以对文件使用sticky bit位。设置该位后, 就算用户对目录具有写权限, 也不能删除该文件。

 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

和进程相关的命令:

ps -A 显示所有进程

ps -ef e所有  f详细信息

ps -ef | grep sshd | grep -v "grep" | awk '{print $2}' -v  不显示

cat httpd.conf | grep -v "#" | grep -v ^$ #不显示,空行也不显示

ps -aux > ps001.txt 重定向(将所有进程以文本形式写入ps001.txt)

top 动态显示进程   第二行最后0 zombie:非0说明有多少个僵尸进程。 0.0wa I/O读写操作问题[m t查看详细信息]

kill命令 杀死进程,-9强制杀死进程,杀死主进程后子程序也 会死亡

df -h 查看根目录下的磁盘空间,和使用率。h是human的 意思,df无法看到文件大小

du -h 查看当前目录空间大小

du -h --max-depth=1 abc/ 查看目录下深度为一的目录

mount /dev/cdrom /mnt/123 挂载的根节点

umount/dev/cdrom /mnt/123 直接挂载取消,[red hat中]

 

vi对文件编辑的功能有三种模式:一般模式,编辑模式,命令行模式。

一般模式下按下i,o,a键可进入文本输入模式,esc退回一般模式。

命令行模式通过:/等指令进入。q!强行离开不保存,q为退出,wq为保存退出。


一般行模式下的命令:

0(数字) 跳到行首

$ 跳到行尾

e 光标移到字尾

b 左移一个字,到前一个字的开头

w 右移一个字,到后一个字的开头

enter 跳到下一行行首

space 光标右移一位

backspace 光标左移一位

G 跳到最后一行

1G 可以跳到第一行,任何行都能跳

gg 跳到第一行行首

x 从光标前面删除

X 从光标后面删除

dd 为删除一行,前面加数字为往下删除的行数

yy 复制游标所在行,后加数字为复制次数,前加数字为复制下几行

p 为粘贴

8yyGp 从当前行复制8行粘贴到文档尾部(例子)

u 为撤销

U 撤销当前行上做的所有更改

. 重复上一次的修改

uu 恢复原本模样

 

命令行模式下:

:set nu 给每行标号

:set nonu 取消行标号

:wq 后加文件名为另存为这个文件名,源文件保存

:wq 3.txt 另存为3.txt(例子)

:1,10s/too/tootoo/gc 1到10行的too替换成tootoo

s代表替换,g代表全局,c代表询问

 

*********************************************************************

关于网络配置的命令:

ifconfig查看ip地址;

增加和删除ip :ifconfig+网卡+IP地址;

ifconfig+netmask+子网掩码;

ifconfig+网卡+down,关闭网卡;

ifconfig+网卡+up,打开网卡。

route 查询路由,netstat -r 也是查看路由表而且Windows,Linux通用

route add -net 192.168.2.0 netmask 255.255.255.0 dev eno16777736 添加表项,dev是表示从哪个网卡

route add 0.0.0.0 gw 192.168.1.1 添加默认路由和网关

route 的常用参数说明如下:<<<

-v 使用冗余输出模式-A family 指定特定的地址族(例如"inet" "inet6")

-n 使用数字显示的地址(例如 202.38.75.75)而不是去解释域名

-e 使用与 netstat 相同的输出格式

-ee 参数会产生很长的输出,包括内核路由表的几乎所有信息

-net 目标 target 是一个网段-host 目标 target 是一个单独的主机

-F 显示内核 FIB 路由表。结果可能被-e 和-ee 参数改变

-C 显示内核中路由缓存信息

del 删除一个路由表项

add 增加一个路由表项 >>>

 

netstat -atpa->allt->tcpp->pidu->udpl->listenn->端口号

nslookup 可双向解析域名解析成IP地址,解析的是域名不是URL

host [选项] [IP 地址/域名/主机名]

-a 显示所查域名或 IP 地址、域名或主机名的相关信息

ping [选项] [主机名/IP地址]

C:\Windows\System32\drivers\etc windows下的host文件路径

/etc/resolv.conf linux下DNS服务器地址

Iptables -F 清空iptables防火墙所有服务

telnet的登录和传输均为明文,密码和相关敏感信息极易被监听获取

ssh则使用加密协议登录和传输

*********************************************************************

关于安装的命令:

yum安装 /*基于RPM包安装,把所有的RPM包管理起来

yum源 /*网易http://mirrors.163.com/

 

RPM安装 /*演示的内网安全扫描工具Nessus的安装

RPM -qa /*查询所有的RPM包 -q查询 第三方软件安装在opt目录

 

源码安装:打包工具tar

tar -c /*创建包

tar -x /*解包

tar -t /*列出包中内容

tar -r /*增加文件到指定包中

tar -f /*后跟指定包文件

tar -v /*显示详细过程

tar -C /*指定解包后的路径

/*解压完后安装命令./configue, make ,make install 安装过程

 

tar命令:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件! ---> c/x/t 仅能存在一个!不可同时存在!

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

-p :使用原文件的原来属性(属性不会依据使用者而变)

-P :可以使用绝对路径来压缩!

-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

--exclude FILE:在压缩的过程中,不要将 FILE 打包!

*********************************************************************

Find命令用于查找指定文件 .是当前目录 /是根目录 ~是home目录,root权限下是root目录

find ~ -name "*.txt" -print 按名字查找home目录下所有txt文件并打印

find . -name "[A-Z]*".txt -print

find . -name "[A-Z,a-z,1-100]*".txt -print 查看以A-Z,a-z,1-100开头的txt文件

find . -name "1.txt" -prune -o -name "*.txt" -print 查看所有不是1.txt的txt文件

find . -path 目录查找  

find . -path "./aa" -prune -o -name "*.txt" -print

在当前目录除aa之外的子目录内搜索 txt文件

find . \( -path "./aa" -o -path "./bb" \) -prune -o -name "*.txt" -print

除aa和bb之外的子目录中查找txt文件

find . ! -name "." -type d -prune -o -type f -name "*.txt" -print

在当前目录,不再子目录中,查找txt文件

find . -perm 755 -print

在当前目录及子目录中,查找属主具有读写执行,其他具有读执行权限的文件

find . -type l -print 在当前目录及子目录下,查找符号链接文件  

find / -user www -type f -print 查找属主是www的文件

find / -nouser -type f -print 查找属主被删除的文件

find / -group mysql -type f -print 查找属组mysql的文件

find / -nogroup -type f -print 查找用户组被删掉的文件

find . -mtime -2 -type f -print 查找两天内修改的文件

find . -mtime +2 -type f -print 两天前修改的文件

mtime->被更改 atime->被访问 ctime->状态被改变

find . -newer "aa.txt" -type f -print 查找比aa.txt 还新的文件

find . !-newer "aa.txt" -type f -print 查找比aa.txt 还旧的文件

find . -newer "aa.txt" ! -newer "b.txt" -type f -print 查找比aa.txt新,比b.txt旧的

find / -size +1M -type f -print大于1M的文件,等于1M不写加减号,-1M为小于

find . -size 6c -print 查找等于6字节的文件 c->字节 k->kb

find . -name 'del.txt' -ok rm {} \; 查找del.txt并删除,删除前提示确认

find . -name 'aa.txt' -exec cp {} {}.bak \; 查找aa.txt 并备份为aa.txt.bak

 

*********************************************************************

cat 1.txt | grep -w "abcd" --color 匹配一个单词,--color加颜色

ps -ef | grep ssh | grep -v grep -v反选 -cw单词出现次数 -c出现次数多少行

grep -c "all" 1.txt 统计出现的次数

grep -n "abcd" 1.txt 显示匹配的行数

grep "abcd" 1.txt 2.txt 3.txt 查看匹配单词在哪个文件里具体位置

grep -l "abcd" 1.txt 2.txt 3.txt -l意为只显示文件名字,不显示具体位置

cat 1.txt | grep -i "ALL" -i不区分大小写

*********************************************************************

service camsd stop 停止 camsd 服务

service oracled start 启动 oracled 服务

service network restart 重启network服务

*********************************************************************

msconfig 打开开机启动项(Windows系统)

chkconfig --list 列出服务名

chkconfig --add httpd 增加httpd服务

chkconfig --del httpd 删除httpd服务

chkconfig --level httpd 2345 on 设置httpd在运行级别为2,3,4,5的情况下 都是on(开启)状态

chkconfig --list mysqld 列出mysqld的服务设置情况

*********************************************************************

sed命令可以将数据行进行替换、删除、新增、选取等特定工作。

sed 参数 动作 文件,-i直接修改文件内容

nl /etc/passwd | sed '2,5d' 显示行号并删除2-5行 d意为删除,nl显示行号

nl /etc/passwd | sed '2d' 只要删除第 2 行

nl /etc/passwd | sed '3,$d' 要删除第 3 到最后一行

nl /etc/passwd | sed '2a drink tea' 在第二行后加上drink tea字样

nl /etc/passwd | sed '2i drink tea' 在第二行前加上drink tea字样

nl /etc/passwd | sed '2a Drink tea or ......\ndrink beer' 增加两行以 上,则加\n

nl /etc/passwd | sed '2,5c number' 将第2-5行的内容取代成为number c取代

nl /etc/passwd | sed -n '5,7p' 仅列出 /etc/passwd文件内的第 5-7行

nl /etc/passwd | sed '/root/p' 搜索 /etc/passwd有root关键字的行

nl /etc/passwd | sed -n '/root/p' 使用-n的时候将只打印包含模板的行

nl /etc/passwd | sed '/root/d' 删除所有包含root的行,其他行输出

nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}' 搜索/etc/passwd,找到root 对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔, 这里把bash替换为blueshell,再输出这行。

nl /etc/passwd | sed -n '/bash/{s/bash/blueshell/;p;q}'

如果只替换/etc/passwd的第一个bash关键字为blueshell,就退出,加;q

/sbin/ifconfig eth0 利用 /sbin/ifconfig 查询IP

/sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' 将IP前面的部分删除

/sbin/ifconfig eth0 | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast.*$//g'

将 IP 后面的部分也予以删除

sed -i 's/\.$/\!/g' 1.txt 将1.txt内每一行结尾若为 . 则换成 !

sed -i '$a # This is a test' 1.txt 在1.txt 最后一行加入This is a test,

$代表的是最后一行,而a的动作是新增

sed -n "$=" if.txt 输出if.txt总行数

cat if.txt | wc -l 输出if.txt总行数

wc -l if.txt | awk '{print$1}' 输出if.txt总行数

sed -i '2s/C/b/' /home/1.txt 修改1.txt的第2行的C为b

sed -i 's/\r//' 192.168.2.0.txt 去除linux中windows文件中^M(制表符不同)

wc -l if.txt 输出文件行数和文件名

*********************************************************************

awk命令:简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk是以文件的一行为处理单位的。

head -n 10 头10行  tail -n 10 后10行,$1为第一列,以此类推。

 

last -n 5 | awk '{print $1}' 显示最近登录的5个帐号

cat /etc/passwd |awk -F ':' '{print $1}' 显示/etc/passwd的账户,

-F指定域分隔符为':'

cat /etc/passwd |awk -F ':' '{print $1"\t"$7}'

显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割

cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'

只显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分 割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。

awk -F: '/root/' /etc/passwd 搜索/etc/passwd有root关键字的所有行,注意F和:之间没有空格

awk -F: '/^root/' /etc/passwd 搜索支持正则,例如找root开头的:

awk -F : '{print $4}' 1.txt | sed '/^$/d' 输出第四列并去除全文空行

awk -F: '/root/{print $7}' /etc/passwd

搜索/etc/passwd有root关键字的所有行,并显示对应的shell($7)

awk 'NR==1' cfg.txt | awk -F '=' '{print $2}'     NR是已读的记录数,在此句可以理解为cfg.txt的第一行。

awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}' /etc/passwd

统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容。

*********************************************************************

awk是一种程序语言,对文档资料的处理具有很强的功能。awk擅长从格式化报文或从一个大的文本文件中抽取数据。awk将一行文字按分隔符(filed-separator)分为多个域,依次记为$1,$2 . . . $n。$0代表所有域值。因此awk更适合于以域为单位来处理文件。

sed 是一个精简的,非交互式的编辑器,它能执行与编辑vi相同的编辑任务。作为编辑器,当然少不了插入(a/、i/),删除(d),查找替换(s)等命令。

总结:

1. 如果文件是格式化的,即由分隔符分为多个域的,优先使用awk;

2. awk适合按列(域)操作,sed适合按行操作;

3. awk适合对文件的抽取整理,sed适合对文件的编辑。

 

有用的Linux操作系统的基础命令总结相关推荐

  1. linux常用基础命令操作收集

    linux常用基础命令操作收集,以下命令基于CentOs6.x 1.日常操作命令 **查看当前所在的工作目录 pwd **查看当前系统的时间 date **查看有谁在线(哪些人登陆到了服务器) who ...

  2. 在linux系统环境中 常用的关机命令,Linux常用基础命令整理:关机命令、查看目录下文件命令等...

    整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能 Ctrl+c按键---停掉正在运行的程序 Ctrl+d按键---相当于exit ...

  3. linux renice命令,Linux操作系统的renice命令详解

    Linux操作系统的基础知识并不是很难理解,熟悉掌握基础知识能更好的学习Linux.下面由学习啦小编为大家整理了Linux操作系统的知识点总结的相关知识,希望对大家有帮助! Linux操作系统的ren ...

  4. Linux入门基础命令(四)

    Linux入门基础命令(四) 文件系统与目录结构: 1.文件和被组织成一个单根倒置树结构 2.文件系统从根目录下开始,用"/表示" 3.以.开头的文件为隐藏文件 4.路径分割的 / ...

  5. linux常用基础命令整理

    linux常用基础命令整理 su - 用户名 ->切换到指定用户下 ls ------>查看当前目录下的目录及文件 clear ------>清理屏幕 cd 路径 -----> ...

  6. Linux常用基础命令198个

    Linux常用基础命令198个 1.mkdir 创建目录 * 主要选项:-p 递归创建目录 主要案列:mkdir /xujun mkdir -p /xujun/oldboy mkdir -p /xuj ...

  7. Linux常用基础命令

    Linux常用基础命令 腾讯在线文档(优化版): https://docs.qq.com/doc/DQmdRTGhIUXV0Vmxm 1.创建目录,文件: mkdir -p /root/a/b/c/d ...

  8. linux操作系统基础命令-2

    CentOS7 linux操作系统基础命令-2 1.在linux 操作系统中 有内部命令和外部命令之分,使用type命令可以查看该命令是外部命令还是内部命令 . [root@000000 ~]# ty ...

  9. Linux常用基础命令(很全)

    Linux常用基础命令 Linux命令格式 Linux 常见用户管理命令 创建新用户 Linux文件及目录管理命令 绝对路径和相对路径 cd命令 ls命令 pwd命令 mkdir命令 touch命令 ...

最新文章

  1. JVM-01:类的加载机制
  2. 用为知发布博客到博客园、使用Wiz编写和发布博客园(cnblogs)博客
  3. python 通过下载包setup.py安装模块
  4. 避免在 ASP.NET Core 3.0 中为启动类注入服务
  5. Win7性能信息和工具在哪打开
  6. Visual Studio Code 1.44 发布
  7. mysql的主从(AB)复制
  8. 组件化开发-002-Cocoapods远程私有库使用(Private Repo)
  9. Red5流媒体服务器的搭建
  10. 前馈神经网络练习:使用tensorflow进行葡萄酒种类识别
  11. oracle minus 利用率,Oracle Minus 取差集(也可以用来做分页,但效率不高)
  12. 如何在WordPress主题中的帖子中添加奇/偶类
  13. java 中的todo_详解在TodoController中引用TodoRepository
  14. python的安装框架acode_Python安装与入门
  15. 我是屌丝——彪悍的人生不需要代言
  16. 苹果商店App Store审核指南中文版(14-15-2016最新)-附:2015年App Store审核被拒Top10(官网)+被拒的23个理由(中英)
  17. SSL证书怎么部署,SSL证书需要怎么安装你知道吗?
  18. 为什么不是每个人都过着他梦想中的生活呢?
  19. my love(新贵公子主题歌)铃声 my love(新贵公子主题歌)手机铃...
  20. android studio 小白使用记

热门文章

  1. Windows System32目录下所有文件详解
  2. 【Nutz】Nutz起步
  3. 新年开工项目经理要做的几件事
  4. 乔布斯现身布道iPad 2 中国渠道商降价清库存
  5. 亚马逊正加紧布局 拟今年进军韩国市场
  6. 报错与解决 | AttributeError: ‘Series‘ object has no attribute ‘set_value‘
  7. 寻找单身狗(c语言)
  8. [BZOJ3054] Rainbow的信号(考虑位运算 + DP?)
  9. echarts简单的折现数据可视化(需要引入echarts文件)
  10. 腾讯Oceanus实时计算平台架构设计