开发linux常见命令


① linux相关目录介绍

home:文件夹 用来存放普通用户的
root:存放root用户相关的文件
bin:存放常用命令的目录
sbin:有一定权限才可以使用的命令
mnt:默认挂在光驱和软驱的地方(也可以不放在这里)
boot:存放引导的文件(信息删掉体统跑不动)
etc:存放配置相关的文件(环境变量的配置,mysql,tomcat的配置等)
var:存放一些经常变化的数据(socket用来网络链接的一些可变化的数据)
usr:安装一个文件默认安装的文件夹

② 常用命令

1. cd 命令
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd  .. 返回上级目录
cd  ../.. 返回上两级目录;

2. 创建文件以及文件夹命令
mkdir 创建文件夹
mkdir dirname 当前目录下创建文件夹
mkdir /usr/local/dirname 可跟路径
mkdir -p /usr/local/dirname 路径中如果有不存在的文件夹,则-p可以创建

touch 新建文件
touch dilename 可直接跟文件名在当前目录下创建新的文件
3. cat/less/more/tail等文件查看命令
-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。

-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线; +<数字>:从指定数字的行开始显示。

按Space键:显示文本的下一屏内容。
按Enier键:只显示文本的下一行内容。
按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键:显示帮助屏,该屏上有相关的帮助信息。
按B键:显示上一屏内容。
按Q键:退出rnore命令。
--retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
-c或——bytes=:输出文件尾部的N(N为整数)个字节内容;
-f或;--follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“--retry"连用时功能相同;
-n或——line=:输出文件的尾部N(N位数字)行内容。
--pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名;

一般tail命令最常用的-n和-f,例:
tail filename 读取filename最后10行内容
tail -f filename 实时动态读取filename最后10行内容
tail -20f filename 实时动态读取filename最后20行内容

cat和less及more指令相似,cat是一次性读取所有内容,文件内容较多时速度较慢。less与more的区别在于:less可以前后翻页查看,more只能向前翻页查看。
tail则用于实时获取log信息,从后向前读取内容
上述四种命令均可跟grep搭配使用cat/less/tail |grep mysql

4.查看文件大小的命令 du/df
du -sh * 显示当前目录下所有文件的大小
du -sh filename   显示该文件大小
du -sh     显示当前目录所占空间大小
-s或 仅显示总计,只列出最后加总的值。
-h或 以K,M,G为单位,提高信息的可读性。
df 显示磁盘占用信息
直接df默认一k为单位
df -lh 显示本地系统的占用信息,以K,M,G为单位

5.文本编辑器 vi
vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。
Linux中的vi编辑器叫vim,它是vi的增强版(viImproved),与vi编辑器完全兼容,而且实现了很多增强功能。 
vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。
默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。 
vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:
1 Ctrl+u:向文件首翻半屏;
2 Ctrl+d:向文件尾翻半屏;
3 Ctrl+f:向文件尾翻一屏;
4 Ctrl+b:向文件首翻一屏;
5 Esc:从编辑模式切换到命令模式;
6 ZZ:命令模式下保存当前文件所做的修改后退出vi;
7 :行号:光标跳转到指定行的行首;
8 :$:光标跳转到最后一行的行首;
9 x或X:删除一个字符,x删除光标后的,而X删除光标前的;
10 D:删除从当前光标到光标所在行尾的全部字符;
11 dd:删除光标行正行内容;
12 ndd:删除当前行及其后n-1行;
13 nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
14 p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
15 P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
16 /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
17 ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
18 a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
19 a:在当前字符后添加文本;
20 A:在行末添加文本;
21 i:在当前字符前插入文本;
22 I:在行首插入文本;
23 o:在当前行后面插入一空行;
24 O:在当前行前面插入一空行;
25 :wq:在命令模式下,执行存盘退出操作;
26 :w:在命令模式下,执行存盘操作;
27 :w!:在命令模式下,执行强制存盘操作;
28 :q:在命令模式下,执行退出vi操作;
29 :q!:在命令模式下,执行强制退出vi操作;
30 :e文件名:在命令模式下,打开并编辑指定名称的文件;
31 :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
32 :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
33 :set nu:在命令模式下,用于在最左端显示行号;
34 :set nonu:在命令模式下,用于在最左端不显示行号;
35 :1,3y 复制第一行到第三行
36 :1,3d 删除第一行到第三行
37 :1,3s/str/str_new/g 替换第一行到第三行中的字符串
38 :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符
39 :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行
6.移动文件及文件夹 mv/cp /scp
mv 类似于windows下的剪切
mv aaa /etc/udev 讲aaa移动至/etc/udev目录下
mv /opt/lampp /etc/udev 将/opt目录下的lampp移动至/etc/udev目录下
mv -r aaa /etc/udev 将aaa文件夹递归移动至/etc/udev目录下,不加-r会出错
mv aaa bbb 将aaa改名为bbb

-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-s:对源文件建立符号连接,而非复制文件;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
用法与mv基本相似
cp 路径1 路径2
7.重定向 >
cat aaa.txt > bbb.txt 将aaa的内容写入bbb中,覆盖写入
cat aaa.txt >> bbb.txt 讲aaa的内容追加写入bbb中,不覆盖原来内容
> bbb.txt 将bbb清空

8.权限管理 chmod
chmod -R 给文件夹下所有的文件赋权限,递归处理
chmod u+x,g+w f01  //为文件f01设置自己可以执行,组员可以写入的权限 chmod u=rwx,g=rw,o=r f01 给所属用户添加读写执行权限,给组添加读写权限,给其他用户添加读权限
chmod 764 f01 以数字的方式赋予所属用户/用户组/其他用户权限r=4,w=2,x=1
chmod a+x f01  //对文件f01的u,g,o都设置可执行属性,a代表all

9.删除命令 rm
一般都用rm -rf aaa
-r 递归删除
-f 强制删除,不询问

10.用户/用户组
group:
    groupadd abcd//添加组
    cat /etc/group//查看当前系统所有的组
    chgrp abcd b.txt//将b.txt归属到abcd组
user:
    useradd abcd -g abcd//创建一个用户归属于abcd组
    passwd abcd:   输入用户abcd的登录密码
    useradd test //创建一个test用户
    cat /etc/passwd  //查看系统所有用户
    userdel abcd //删除abcd用户
su : su root// 切换用户

vi /etc/sudoers  //  给用户赋予管理员权限
## Allow root to run any commands anywhere
root    ALL=(ALL)     ALL
tommy   ALL=(ALL)     ALL

11.查看服务
netstat -nlpt|grep 80 查看该端口号是否被占用
free -m  //查看LINUX内存剩余容量
ps  可以查看具体的进程信息,一般与管道符连接其他命令使用,如:grep
ps  常用参数-ef/-aux,一般最常用还是-ef,例:ps -ef|grep mysql 查询mysql进程
top 也可查看进程信息,而且是动态显示
whoami 查看当前登陆用户
who 查看多少用户在使用系统
date    查看系统时间,可跟时间格式使用
cal 查看日历,可跟年份,查看指定的年份
chkconfig --list #查看系统服务启动
chkconfig iptables on #开机启动该服务
chkconfig iptables off #开机不启动该服务
service iptables start #启动该服务
service iptables restart #重启启该服务
ps -ef|grep mysql|grep -v grep|awk '{print $2}'ps -ef|grep mysql 是查询mysql服务的进程
|   后的grep -v grep 是匹配不包含grep的行
awk 是取查询结果的第几列,awk '{print $2}'则是取第二列的值
grep 无参数则显示匹配的行
-c 显示匹配的行数
-v 显示不匹配的行

12.杀掉进程 kill 命令

kill最常用的参数是-9,用法:kill -9 进程号 即可强制杀掉该进程
统计命令 wc
常用的参数是 -l 用法:wc -l ,例:
ps -ef|grep mysql|wc -l 统计查询出的mysql进程的行数
查找命令 find/locate/whereis/which

find -name 后跟文件名,可查看文件所在目录,可跟user,查看属于user的文件
find -name filename 查找filename所在目录
find -name name* 查找开头为name的文件所在目录
find -name *name 查找结尾为name的文件所在目录
find -name *name* 查找包含name字符串的文件所在目录
find -user faith 查看用户faith的文件

locate用法与find基本相似,只是locate搜索速度较快些,locate一般系统不会自带,需要安装,可用yum安装
whereis只能搜索程序名
which则是只查询path中的环境变量

13.压缩和解压命令 gzip/guzip zip/unzip tar

gzip和gunzip一般可用参数是-r,例:
gzip test.txt  压缩文件
gzip -r test   压缩所有test下的子文件
gunzip test.gz   解压文件
zip和unzip可用参数较多,例:

zip test 不跟参数直接使用
zip -r test 递归压缩test下所有文件
unzip test 不跟参数直接使用
unzip -n 解压时不覆盖已存在的文件
unzip -o 解压时覆盖已存在的文件
unzip -d 将文件解压到目录中去

tar使用的较为多些,用法也多,最常用的是zxcvf几个参数,例:

-c 创建新文档,就是代表压缩的意思
-x 解压文档
-f 使用归档文件
-z 使用gzip解压
-v 详细输出模式
最为常用的使用方法:
tar -zcvf test.tar test 将test压缩为test.tar并输出详细信息
tar -zxvf test.tar 将test.tar解压缩,并输出详细信息

14.定时任务 crontab

crontab [-u user] 文件
crontab [-u user] {-r -e -l}
不加-u的话默认当前用户
-e:执行文字编辑器来设定时程表,内定的文字编辑器是vi。
-r:删除目前的时程表。
-l:列出目前的时程表。
crontab -e 就可以打开一个文件进行编辑
 crontab文件的格式为“M H D m d cmd”,M为分钟1-59,H为小时1-24,D为天1-31,m为月1-12,d为周0-6(0为周日)。cmd代表要执行的程序,*代表每分钟都执行
* * * * * sh /opt/lampp/test.sh 表示每分钟执行一次test.sh这个脚本
*/5 * * * * sh /opt/lampp/test.sh 表示每5分钟执行一次test.sh这个脚本
30 21 * * * /usr/local/apache/bin/apachectl restart 表示每晚的21:30重启apache

15.常用的一些服务名

iptbles //防火墙
network //网络
httpd //Apache
nginx //nginx
某些服务启动时需要占用控制台,导致无法继续操作,这时可以在启动命令的结尾加一个&符,服务启动就在后台运行,可释放控制台,不影响继续操作,例:
/usr/local/tamcat/bin/catalina.sh run & 后台启动
nohup /usr/local/tamcat/catalina.sh run & 同样是后台启动,加了个打印启动日志的功能,自动打印日志存入nohup.out文件中
除了上述将命令做成系统服务然后设置为开机启动之外,还有另外一种方式可以开机运行该脚本,那就是在/etc/rc.d/rc.local文件中加入该脚本,例:
要开机启动lampp,在/etc/rc.d/rc.local文件中加入/opt/lampp/lampp start就可以了
下面要讲的awk较难,初学略懵,awk语法为awk [选项参数]  '{命令参数}' file ,但是选项参数使用较少,awk常用内置参数如下

$0 表示整个当前行
$n 表示每行的第n个字段
NF 每行有多少个字段
NR 每行的记录号
awk命令参数中可使用if判断,用法:
'{if(条件){执行语句}
else{执行语句} }'

16. &和&&,|和||介绍

&  表示任务在后台执行,如要在后台运行redis-server,则有  redis-server &
&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo '2'    

| 表示管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l
|| 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo "fail"

17.日志查询相关


先必须了解两个最基本的命令:

tail  -n  10  test.log   查询日志尾部最后10行的日志;
tail -n +10 test.log    查询10行之后的所有日志;
head -n 10  test.log   查询日志文件中的头10行日志;
head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;

例如: 
    1.根据关键字查找: cat test.log | grep 'aaaa' > xxx.txt
    2.根据时间范围查找(这两个日期必须日志里面有) sed -n '/2018-9-13 12:03:34/,/2018-9-13 12:20:34/p'  test.log | grep 'jy'  > xxx.txt
    
    > xxx.txt指的是输出到一个文件,可以不加
    

场景1: 按行号查看---过滤出关键字附近的日志

    因为通常时候我们用grep拿到的日志很少,我们需要查看附近的日志.
    
    我是这样做的,首先: cat -n test.log |grep "地形"  得到关键日志的行号
     
    得到"地形"关键字所在的行号是102行. 此时如果我想查看这个关键字前10行和后10行的日志:
    cat -n test.log |tail -n +92|head -n 20
    tail -n +92表示查询92行之后的日志
    head -n 20 则表示在前面的查询结果里再查前20条记录


场景2:那么按日期怎么查呢?  通常我们非常需要查找指定时间端的日志

    sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log
    (特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效.)
    
    1.关于日期打印,可以先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该时间点,以确保第4步可以拿到日志
      这个根据时间段查询日志是非常有用的命令.
    
    
    如果我们查找的日志很多,打印在屏幕上不方便查看, 有两个方法:
    (1)使用more和less命令, 如: cat -n test.log |grep "地形" |more     这样就分页打印了,通过点击空格键翻页
    (2)使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:
        cat -n test.log |grep "地形"  >xxx.txt
    
这几个日志查看方法应该可以满足日常需求了.

18.判断是否开始端口以及开启端口

远程查看端口是否启动:  telnet 192.168.1.103 22122   

 连接成功


 连接失败.
安装telnet : 
yum -y install telnet
------------------------------------------------------------------------------------------------------------------
查看软件是否开启:ps -ef | grep fdfs  


------------------------------------------------------------------------------------------------------------------
当目录里面文件夹过多的时候,想查看自己想要的文件。
ls | grep fdfs
------------------------------------------------------------------------------------------------------------------
![image.png](https://upload-images.jianshu.io/upload_images/5009863-c602fe00277d4641.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

重启防火墙:
service iptables restart.
关闭,stop,开启 start
------------------------------------------------------------------------------------------------------------------
vi 修改文件,保存退出。
vi 那个文件,a 键,然后就可以修改文件了,修改完成,按Esc键盘,进入命令行,输入:wq 保存退出。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352