cd
cd /root/Docements :切换到目录/root/Documents
cd ./path :切换到当前目录下的path目录中,“.”表示当前目录
cd ../path :切换到上层目录中的path目录中,“..”表示上一层目录
ls
ll(ls -l的别名)
ls :显示当前目录下的文件
ls -l :列出长数据串,包含文件的属性与权限数据等 (详细信息)
ls -a :列出全部的文件,连同隐藏文件(开头为.的文件)
ls -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
ls -lR :以长数据串的形式列出当前目录下的所有文件
alias
设置指令别名,可以将一些较长的命令简化。使用alias时,用户必须使用单引号''将原来的命令引起来,防止特殊字符导致错误。
alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中。
alias -p :显示已经设置的别名。
alias l='ls -a' : 重新定义ls命令,现在只需输入l就可以列目录了。
unalias l :删除一个别名。
cp
cp a.php b.php 用于文件的复制
cp file1 file2 file3 dir 把文件file1、file2、file3复制到目录dir中
-a :将文件的特性一起复制
cp -a file1 file2 连同文件的所有特性把文件file1复制成文件file2
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-r :递归持续复制,用于目录的复制行为 cp -r dir1 dir2
mv
-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件已经存在,就会询问是否覆盖
mv file1 file2 file3 dir 把文件file1、file2、file3移动到目录dir中
mv file1 file2 把文件file1重命名为file2 <=> mv -f file1 file2
rm
-f :就是force的意思,忽略不存在的文件,不会出现警告消息
-i :互动模式,在删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
rm -i file 删除文件file,在删除之前会询问是否进行该操作
rm -fr dir 强制删除目录dir中的所有文件
mkdir
用来创建目录。该命令创建由dirname命名的目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
在目录/home/wwwroot下建立子目录test,并且只有文件主有读、写和执行权限,其他人无权访问
mkdir -m 700 /home/wwwroot/test
在当前目录中建立yang和yang下的yang_1目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问
mkdir -p -m 750 yang/yang_1
dirname
去除文件名中的非目录部分,仅显示与目录有关的内容。
cat
连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。
注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
-n或-number:有1开始对所有输出的行数编号;
cat error.log显示error.log的内容
cat error.log access.log 同时显示error.log 和 access.log内容
cat error.log access.log > test.log 将error.log和access.log的内容合并后放入test.log中
type
type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。
- 命令类型:
alias : 别名
keyword:关键字,Shell保留字。
function:函数,Shell函数。
builtin:内建命令,Shell内建命令。
file:文件,磁盘文件,外部命令。
unfound:没有找到。
-t:输出“file”、“alias”或者“builtin”,分别表示给定的指令为“外部指令”、“命令别名”或者“内部指令”;
-p:如果给出的指令为外部指令,则显示其绝对路径;
-a:在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。
[devops@www wwwlogs]$ type -t nginx
file
[devops@www wwwlogs]$ type -t cd
builtin
[devops@www wwwlogs]$ type -t ll
alias
[devops@www wwwlogs]$ type nginx
nginx 是 /usr/bin/nginx
[devops@www wwwlogs]$ type -p nginx
/usr/bin/nginx
[devops@www wwwlogs]$ type -a nginx
nginx 是 /usr/bin/nginx
[devops@www wwwlogs]$ type date
date 是 /usr/bin/date
[devops@www wwwlogs]$ type mysql
mysql 是 /usr/bin/mysql
[devops@www wwwlogs]$ type if
if 是 shell 关键字
[devops@www wwwlogs]$ type which
which 是 `alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' 的别名
[devops@www wwwlogs]$ type -t which
alias
[devops@www wwwlogs]$ type -a cd
cd 是 shell 内嵌
cd 是 /usr/bin/cd
[devops@www wwwlogs]$ type -a grep
grep 是 `grep --color=auto' 的别名
grep 是 /usr/bin/grep
more
是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),B(显示上一屏内容),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
+<数字>:从指定数字的行开始显示。
more -c -10 access.log
more -dc access.log
tar
打包:tar zcvf test.tar.gz test
解压:tar zxvf test.tar.gz
chmod命令修改文件/文件夹权限
chown(change owner)命令:改变文件拥有者
chgrp(change group)命令
chattr与lsattr命令改变、查看文件、目录更底层的属性
grep
grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
- 在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:
grep "match_pattern" file_name
grep "test" default_access.log - 在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
grep "test" default_access.log error.log - 输出除之外的所有行 -v 选项:反转查找
grep -v "test" default_access.log - 统计文件或者文本中包含匹配字符串的行数 -c 选项:
grep -c "text" file_name
grep -c "test" default_access.log - 输出包含匹配字符串的行数 -n 选项:
grep "text" -n file_name
grep "test" -n default_access.log
多个文件
grep "text" -n file_1 file_2 - 搜索多个文件并查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...
[devops@www wwwlogs]$ grep -l "test" default_access.log error.log access.log
default_access.log
access.log - 在多级目录中对文本进行递归搜索:
grep "text" . -r -n
.表示当前目录
grep "test" . -r -n
sh
shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!
-x:实现shell脚本逐条语句的跟踪。
- 使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:
[devops@www wwwlogs]$ sh -x test.sh
- log_path=/home/wwwlogs/ubas_api_access.log
++ cat /proc/sys/kernel/random/uuid - uuid=8850066c-3973-48ea-b399-748250804342
- uuid=8850066c397348eab399748250804342
- ssoId=ssoId123456
- mysql -h172.16.8.95 -uroot -proot '-einsert into test.test values ('''8850066c397348eab399748250804342''','''ssoId123456''');'
curl
telnet
netstat
ps(Process Status)
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
ps 是 Linux 中最基础的浏览系统中的进程的命令。
能列出系统中运行的进程,包括进程号、命令、CPU使用量、内存使用量等
ps -ef | grep nginx 列出需要进程
ps -aux | grep nginx 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等
- ps aux输出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 进程所有者
PID: 进程ID
%CPU: 占用的 CPU 使用率
%MEM: 占用的内存使用率
VSZ: 占用的虚拟内存大小
RSS: 占用的内存大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 进程状态
START: 启动进程的时间
TIME: 进程消耗CPU的时间
COMMAND:命令的名称和参数
top
执行ps命令显示的是那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。
ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 或者 htop 。
kill
kill 命令用于杀死进程。删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令查看。
先用ps查找进程,然后用kill杀掉:
ps -ef | grep nginx
kill 进程号
kill -9 进程号
whereis
用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
和find命令相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
-b:只查找二进制文件;
-m:只查找说明文件;
-s:只查找原始代码文件;
[devops@www wwwlogs]$ whereis php
php: /usr/bin/php /usr/lib64/php /etc/php.d /etc/php.ini /usr/local/php /usr/share/php /usr/share/man/man1/php.1.gz
[devops@www wwwlogs]$ whereis -b php
php: /usr/bin/php /usr/lib64/php /etc/php.d /etc/php.ini /usr/local/php /usr/share/php
[devops@www wwwlogs]$ whereis -s php
php:[devops@www wwwlogs]$ whereis -m php
php: /usr/share/man/man1/php.1.gz
which
用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
[devops@www wwwlogs]$ which nginx
/usr/bin/nginx
[devops@www wwwlogs]$ which pwd
/usr/bin/pwd
[devops@www wwwlogs]$ which php-fpm
/usr/bin/php-fpm
[devops@www wwwlogs]$ which mysql
/usr/bin/mysql
env
显示系统中已存在的环境变量
[devops@www wwwlogs]$ env
XDG_SESSION_ID=192
HOSTNAME=www.lche001.com
TERM=xterm
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=172.16.8.76 56531 22
SSH_TTY=/dev/pts/1
JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre
USER=devops
CLASS_PATH=.:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/lib/dt.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/lib/tools.jar:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
MAIL=/var/spool/mail/devops
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin:/home/devops/.local/bin:/home/devops/bin
PWD=/home/wwwlogs
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
LANG=zh_CN.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/devops
LOGNAME=devops
SSH_CONNECTION=172.16.8.76 56531 172.16.8.95 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/1000
_=/usr/bin/env
OLDPWD=/home/wwwroot/che001/UserPage/View
locate
用来查找文件或目录。
locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb
,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
查找字符串:要查找的文件名中含有的字符串。
搜索etc目录下所有以sh开头的文件:locate /etc/sh
搜索用户主目录下,所有以m开头的文件:locate ~/m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写:locate -i ~/m
查看用户主目录:echo $HOME
updatedb
dmesg
查看linux的启动信息
vi中的退出
:wq 退出并保存
:q! 退出不保存
:q 退出