常用的linux基础命令

1、ls 显示目录属性

-l:(也可以简写成ll),列表显示权限等属性

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

-d:只列出目录本身

2、chgrp 改变档案所属群组

eg:chgrp users install.log/

3、chown 改变档案拥有者

eg:chown emily install.log ; chown Emily:users install.log

-R : 迚行递归(recursive)的持续变更,亦即连同次目彔下的所有档案都变更/

4、chmod 修改权限,r=4,w=2,e=1

eg:把.bashrc这个档案的权限修改回-rw-r--r--的指令chmod 644 .bashrc或者chmod

-R 修改文件夹及其子文件的权限

5、cd 变换目录

cd代表回到当前用户的家目录,等同于cd ~

..回到上一级目录

.当前目录

~家目录

-之前的目录,上一个目录

6、pwd 显示当前目录

-P:表示显示确实的路径,例如var/mail,mail是个链接档,加上-P会显示mail的实际路径var/spool/mail

7、mkdir 建立一个新的目录mkdir test

-p递归创建子目录,例如test/test1/test2  ;  -m 不使用默认权限,创建目录的时候加权限

8、rmdir 删除一个空的目录 rmdir test

-p:删除上层目录

9、cp 复制cp -rf file /tmp

cp:复制指定文件到另一文件或目录

用法: cp [-abrifLP] [source] [dest]

-a:尽可能的将文件的属性、权限的内容都照原状复制

-b:如果目的文件存在,就创造一个备份

-r:若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录

-i:若目的地有重复的文件,询问是否覆盖

-f:若目的地有重复的文件,则覆盖原有文件

-L:复制符号链接,自动修改链接以保证链接有效

eg:cp -rf a.txt /tmp

10、rm 删除档案或目录rm -rf a.txt

rm:用来删除文件或目录

用法:rm [-ifr] name

-r:删除目录及子目录,目录下如果有子目录及文件也会被删除

-f:不询问直接删除

-i:删除前逐一询问确认

注意: 删除的文件非常难恢复,没有windows的回收站

eg:删除/tmp/logs下所有文件

rm -rf /tmp/logs/*

11、mv 移动mv file /tmp

mv:用来为文件或目录改名,或者将文件由一个目录移入另一个目录中

用法:mv[options] 源文件或目录目标文件或目录

-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。

-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。

eg:将/usr/local/tomcat下所有文件移动到 /tmp/tomcat下

mv /usr/local/tomcat/* /tem/tomcat

将a.txt改名为b.txt

mv a.txt b.txt

12、cat  由第一行开始显示档案内容cat test.txt

13、tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

14、nl 显示的时候,顺道输出行号!

15、more 一页一页的显示档案内容 more 档案名

空格键 (space):代表向下翻一页

Enter :代表向下翻『一行』;

字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;

:f :立刻显示出文件名以及目前显示的行数;

q :代表立刻离开 more ,不再显示该档案内容。

b 或 [ctrl]-b :代表往回翻页,不过这么做只对档案有用,对管线无用。

16、less  和more 类似,但是比 more 更好的是,他可以往前翻页, 可以用PgUp/PgDn

17、head 只看头几行

18、tail 动态查看文件内容 tail -f error.log

tail:查看文件末尾内容

用法:tail [参数] [文件]

主要参数:

-f 动态读取

eg:动态查看日志 tail -f err.log

查看末尾10行日志 tail -10 err.log

动态查看末尾5行日志 tail -5f err.log

19、od 以二进制的方式读取档案内容

20、touch 修改档案时间或建新档

21、df 列出文件系统整体磁盘使用量

-h:以M/G的形式显示大小

-i:列出可用的inode的使用量和剩余量 df –ih

eg:df –h /etc   将/etc 底下的可用的磁盘容量以易读的容量格式显示

df –aT将系统内的所有特殊文件的格式及名称列出来

22、ps 查看某个进程情况

eg:ps –ef|grep java

23、du 列出目前目录下所有档案容量

du:文件和目录的磁盘使用空间

用法:du [选项][文件]

-s或--summarize 仅显示总计,只列出最后加总的值

-h或--human-readable 以K,M,G为单位,提高信息的 可读性

-k或--kilobytes 以KB(1024bytes)为单位输出

-m或--megabytes 以MB为单位输出

-S或--separate-dirs 显示个别目录的大小时,并不含其子 目录的大小

eg:du –sm /* 检查根目录地下每个目录所占用的容量

24、gzip 压缩文件

Gzip:压缩和解压缩

命令格式:

gzip –[1…9] [trv] file

gunzip file

-1:表示压缩速度最快,压缩比最低

-9:表示压缩速度最慢,压缩比最高

-t:表示校验压缩文件的完整性

-r:表示压缩时包含子目录中的内容

-v:表示压缩时显示正在压缩的文件名和压缩比等资料

eg:gzip -1trv test.txt

gunzip test.txt.gz

25、tar 打包

tar:文件打包

用法 :tar[参数] 目标文件 源目录或文件

主要参数:

-c:创建新文档

-x:解压缩归档文件

-f 文件名:使用归档文件

-j:使用bzip2解压缩

-z:使用gzip解压缩

-v:详细输出模式

eg:tar zcvf test.tar test#压缩

tar zxvf test.tar #解压缩

eg:tar –cv –f etc.tar etc  打包

tar –xv –f ect.tar   解包

tar –zpvc –f /root/etc.tar.gz   打包并压缩

tar –jpvc –f /root/etc/tar.bz2   打包并压缩

tar –zxv –f /root/etc.tar.gz  解包解压缩

tar –jxv –f /root/etc.tar.bz2  解包解压缩

26、zip压缩、unzip解压缩

功能:压缩zip包和解压缩以.zip结尾压缩文件

命令格式:

zip [选项] 压缩文件名 需要压缩的文档列表

-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩

-x “文件列表” 压缩时排除文件列表中指定的文件

-m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中

- 压缩级别 压缩级别是一个1~9的数字

可以不加任何参数使用

unzip [选项] 压缩文件名

-x "文件列表" 解压文件,但不包含文件列表中指定的文件

-t 测试压缩文件有无损坏,并不解压

-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压

-n 解压时不覆盖已经存在的文件

-o 解压时覆盖已经存在的文件,并且不要求用户确认

-d 目录名 把压缩文件解压到指定目录下

可以不加任何参数

eg:zip -9r /opt/etc.zip /etc #把/etc下所有文件和文件夹压缩到/opt下的etc.zip

zip –r /opt/var.zip /var –x “*.log”#把/var下所有的文件和文件夹除了以.log结尾的都压缩到/opt目录的var.zip中

unzip –o /opt/etc.zip –d /etc #把/opt/etc.zip解压到 /etc目录下

27、find查找目录下的文件

find:查找目录下的文件

用法: find 目标目录 搜索参数 操作参数

主要参数:

-name 文件名:可以跟通配符

-amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后

-atime 天数:文件最后访问时间为指定天数之前,负数表示之后

-cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后

-ctime 天数:文件最后修改时间为指定天数之前,负数表示之后

-user 用户名:属于用户的目录和文件

-type 文件类型

eg:find / -name test

28、vi 编辑文件

光标定位

M 移动光标到页面中央

L移动光标到页面尾处

H移动光标到页面开始处

Ctrl+f向后翻页

Ctrl+b向前翻页

0移动光标到行首

$移动光标到行尾

/:从上往下开始查找

?:从下往上开始查找

撤销和重复

u复原前一个动作

. 重复前一个动作

复制 粘贴 删除

nyy  复制光标所在的向下n行内容

yw复制光标后的单词,以空格为分界

p在光标处粘贴复制的内容

ndd删除光标所在向下n行的内容

ctrl + d:往下翻半屏内容

ctrl + u:往上翻半屏内容

shift + g:到文件末尾

r:替换当前位置字符

x:删除当前位置字符

dd:删除整行

set number:显示行号

set nonu:取消显示行号

:1,3y 复制第一行到第三行

:1,3d 删除第一行到第三行

:1,3s/str/str_new/g 替换第一行到第三行中的字符串

:1,3s/str/str_new    替换第一行到第三行中的字符串第一个字符

:1,3 g/str /d 删除第一行到第三行中含有这个字符串的行

搜索字符串

输入/+要查找的字符串

/test

按n键重新查找下一个

N查找上一个

退出vi

q 退出vi

q! 不保存退出

wq 保存退出

e!不保存修改的文件

w 保存

!强制,后面加叹号的话表示强制

29、rpm安装

rpm –ivh 包名

一次安装多个软件  rpm –ivh a.i386.rpm b.i386.rpm *.rpm

直接由网络上某个档案安装  rpm –ivh http://website/path/a.i386.rpm

查看安装软件  rpm –q 名 eg:rpm –q zip

--nodeps 忽略依赖安装

rpm -qa | grep jdk 检查是否安装了jdk

rpm –e jdk 卸载

如果卸载的时候提示有软件依赖它,卸载时需要加上 --nodeps

eg: rpm -e glibc –nodeps

rpm查询已安装的软件包

rpm –qa >list.txt 把已经安装软件包都输出到list.txt这个文件中

注:可以用前面介绍的grep命令查找

rpm -qa:查询已安装的所有软件包

rpm –q glibc:检察glibc包的版本

示例:rpm -qa|grep httpd

30、yum安装

yum install 名

-y系统自动给出yes响应

yum 移除软件 yum remove 名

yum 清理缓存   yum clean all

yum info 名 eg:yum info zip 会列出软件是否安装、名称、版本、档案容量等信息(rpm –qi zip)

eg:

yum install httpd#安装Apache

yum -y install httpd#如果有选项全部同意安装

yum list|grep httpd#从yum列表中查找你需要的软件

yum update httpd #yum升级Apache

yum list installed |grep mysql#查询是否安装mysql

yum remove mysql#卸载yum安装的mysql

31、top查看内存使用情况(动态)

q退出(动态的)

按用户查看 top –u 用户名

top -H查看线程,-H表示一行一个线程

PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称

32、ps 查看进程(某个时间点,静态的)

ps:显示瞬间进程 (process) 的动态,使用权限是所有使用者。

主要参数: ps的参数非常多, 此出仅列出几个常用的参数

-A或-e:列出所有的进程。

-l:显示长列表。

-m:显示内存信息。

-w:显示加宽可以显示较多的信息。

-f:显示不同进程之间的关系。

a:显示终端上的所有进程,包括其它用户的进程。

-au:显示较详细的信息。

-aux:显示所有包含其它使用者的进程。

常用的参数是-aux和-ef

可以用管道符连接其他命令使用

eg:ps -ef |grep httpd #查询Apache相关进

查看某个进程情况  ps
–ef|grep java

ps
xH查看所有存在的线程

ps-mp pid查看一个进程起的线程数

33、Free观察内存使用情况

34、netstat –anp|grep
 ‘80’ 查看80端口占用情况   netstat -nlpt|grep 80

netstat –anp | grep mysql 查看程序端口

35、lsof –i:3306  查看端口占用情况

lsof:列出当前系统打开文件的工具

用法:lsof [options]
filename

常用参数:

lsof filename 显示打开指定文件的所有进程

lsof -c string 显示COMMAND列中包含指定字符的进程所有打 开的文件

lsof -u username 显示所属user进程打开的文件

lsof +d DIR/ 显示目录下被进程打开的文件

lsof +D DIR/ 上,但是会搜索目录下的所有目录,时间相对较长

lsof -i :80 查询指定端口打开的文件

Lsof -p pid 查询指定的pid打开的文件

lsof输出说明

COMMAND:进程的名称

PID:进程标识符

USER:进程所有者

FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、 txt等

TYPE:文件类 型,如DIR、REG等

DEVICE:指定磁盘的名称

SIZE:文件的大小

NODE:索引节点(文件在磁盘上的标识)

NAME:打开文件的确切名称

36、系统服务相关命令

chkconfig:chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。

常用参数:

chkconfig --add
test.sh #将test.sh作为一个系统服务,但是test.sh这个脚本必须放在/etc/rc.d/init.d目录下(还有文章,看注释)

chkconfig --del
test.sh #删除一个系统服务

service test.sh
start #运行刚才设置的系统服务

chkconfig
test.sh on 开机启动

chkconfig
test.sh off 取消开机启动

一些常见的系统服务:

iptbles #防火墙

network #网络

httpd #Apache

nginx #nginx

除了刚才那种把做成系统服务,然后做成开机启动,还有一种就是在/etc/rc.d/rc.local文件中加入要开机执行的脚本

例如要开机启动lampp,在/etc/rc.d/rc.local文件中加入/opt/lampp/lampp
start即可

临时关闭防火墙 service
iptables stop,重启后会失效

date命令,显示当前系统时间,后面可以跟日期格式

cal查看日历,后面可以跟年份查看指定年份的日历

whoami查看当前登录用户

who查看当前有多少用户在使用系统

eg: chkconfig --list 查看所有系统服务
      chkconfig iptables off 开机不启动该服务
      chkconfig iptables on 开机不启动该服务
      service httpd stop 停止该系统服务
      service iptables start 启动该服务
      service iptables restart 重启启该服务

37、重定向 > 查出来的内容复制到文件中

例如 rpm –qa > test.txt 把查出来的内容写到文件test.txt中,这种情况如果test.txt中有内容就会被覆盖,如果不想覆盖 可用两个> 例如rpm –qa >> test.txt

重定向还可用于复制文件,test.txt >> test01.txt text.txt中的内容加在text01.txt原有内容后面

38、date +'%Y%m%d
%H:%M:%S'获取系统当前时间

39、su 切换身份

用法: su root 或者 su - root

这两者的区别是su root不会重新加载切换用户的用户变量,su - root会重新加载用户的用户变量

40、sudo获取超级用户权限执行

有一些命令是普通用户没有权限操作的,所以要用sudo来获取超级用户权限。

如果普通用户要使用sudo命令,需要在/etc/sudoers文件中配置才可以使用,例如要besttest用户可以使用sudo获取root用户权限,使用root用户编辑/etc/sudoers文件,找到 root ALL=(ALL) ALL 这一行,在它下面加入bestest
ALL=(ALL) NOPASSWD:ALL然后保存即可。NOPASSWD代表该用户使用sudo的时候不用输入密码

41、后台运行jmeter  : nohup
jmeter-server &

42、上传下载rzsz

sz:将选定的文件发送到本地机器

rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到linux服务器

检查是否安装了rzsz,命令:rpm –qa | grep
lrzsz

如果没有安装执行下面语句安装

yum install –y lrzsz

使用:

sz filename

把文件test.sql传到本地  sz test.sql

用rz命令以后,会弹出对话框让选择要上传的文件

43、注销

exit用于字符界面,图形界面只退出终端窗口

logout 文本终端

44、重启

reboot

-w:不实际关机,用户登录信息写入/var/log/wtmp

-d:不将用户登录信息写入/var/log/wtmp

-f:强制重启

reboot
可以不接参数

shutdown

shutdown -r 延时分钟数 “提示信息”

shutdown -r now(now表示立即执行)

不能单独用,至少2个参数

45、关机

halt

-w:不实际关机,用户登录信息写入/var/log/wtmp
 -d:不将用户信息写入/var/log/wtmp

-f:强制关机

-p:关机后,关闭电源
可以不接参数

poweroff

除了无-p参数,其他与halt同

init 0

shutdown

shutdown -h 延时分钟数 “提示信息”

shutdown -h now(now表示立即执行)

不能单独用,至少2个参数

46、添加用户useradd

useradd -d 家目录 -g 组名 -G 组集合(逗号间隔) -p 密码 -s 用户shell程序 用户名

useradd -d
/usr/local/nginx/ -g nginx -G nginx,oracle -p123456 -s /bin/bash test4

若没有使用-p,可以使用命令加密:passwd 用户名

passwd test4

可以不加参数直接useradd test5,添加一个用户,默认使用bash
shell,家目录在/home/下

47、修改用户 usermod

usermod -l 新用户名 -d 新家目录 旧用户名

usermod –l tom –d
/usr/local/tomcat test4

家目录要存在,且为绝对路径

Usermod中同样可以使用useradd参数

48、删除用户userdel

userdel -r 用户名

userdel –r test3

-r用于删除家目录及其所有文件

49、增加组groupadd

groupadd -g 组ID -r 组名

Groupadd –g 451 –r besttest

-r:建立系统组,组ID小于499

新组ID在500-60000之间,小于500的为系统组

所有参数均可省(除了组名)

goroupadd dba

50、修改组groupmod

groupmod -g 组新id -n 组新名 组旧名

groupmod -g 561 -n testtest test

51、删除组groupdel

groupdel 组名

groupdel test

52、查看ip地址ifconfig

53、重启、启动、停止网络命令 service
network restart/start/stop

54、查看历史命令history

55、清屏clear

56、显示文件匹配的行grep命令

grep:显示文件中的匹配行

用法:grep [参数] 字符串 文件名

主要参数:

无参:显示匹配行

-c:显示匹配行数

-e 字符串:匹配特殊字符串,如-开头

-i:忽略大小写

-v:输出不匹配行

-w:匹配指定字符串

可以和别的命令通过"|"管道符连接使用

eg:grep -c “foo” a.txt

ps
-ef|grep httpd |grep -v "grep"

57、kill终止进程

kill:用来终止指定的进程

命令格式:kill [参数][进程号]

主要参数:

-l 
信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

-p 
指定kill 命令只打印相关进程的进程号,而不发送任何信号

-s 
指定发送信号

-u 
指定用户

-9 强制终止进程

可以不加任何参数直接使用

可以后面跟多个pid

eg:kill -9 2321

kill -9
2312 2819

kill 8321

58、设置环境变量

Linux中系统变量是在/etc/profile目录下的,用户的环境变量则在用户的家目录下的.bash_profile文件中,系统环境变量会在开机的时候全部加载,用户的环境变量之后在用户登录时加载

比如说没有mysql命令,我们的mysql客户端是在/opt/lammp/bin目录下,那就可以把/opt/lammp/bin加入到/etc/profile就可以使用mysql命令了 export
LAMPP=/opt/lampp/bin,然后再source /etc/profile 重新加载一下就可以生效了

常用的linux基础命令的更多相关文章

  1. 测试常用——linux 基础命令

    测试常用 的 linux 基础命令 1,查看服务器日志vi 查看文件(查找关键字:exception/exception  :  从上往下找,按n查找下一个关键字,按shift+n查找上一个关键字?e ...

  2. linux常用命令大全(linux基础命令+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令+命令备忘录+面试复习)-----https://www.cnblogs.com/caozy/p/9261224.html

  3. [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...

  4. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  5. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  6. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

  7. linux基础命令一

    linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date  [options...]  [+FORMAT] FORMAT:为显示日期的格 ...

  8. Linux基础命令-文件与目录

    Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...

  9. Linux基础命令回顾

    前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...

随机推荐

  1. django实现密码非加密的注册(数据对象插入)

    数据模型 from django.db import models class userinfo(models.Model): username = models.CharField(max_leng ...

  2. JS上传图片预览及图片限制

    HTML代码: <form action="__SELF__" method="post" enctype='multipart/form-data'&g ...

  3. HTTP 状态码简介(对照)

    HTTP状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求.当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应 ...

  4. (4.12)全面解析-SQL事务+隔离级别+阻塞+死锁

    30分钟全面解析-SQL事务+隔离级别+阻塞+死锁 转自:https://blog.csdn.net/slowlifes/article/details/52752735 2016年10月07日 23 ...

  5. 关于like %%的优化思路

    测试数据:2亿行,被筛选出的数据,3KW多行. 众所周知 like %str%无法走索引,但是我们如果实在是有这种需求要达到like '%str%'的筛选目的,怎么优化好一些呢? 以下是我的一些思考: ...

  6. 运行 Tomcat, 在 Intellij IDEA 控制台输出中文乱码的解决方法

    打开 Run/Debug Configurations → Tomcat Server → 要运行的 Tomcat → Server 页签,在 VM options 中输入: -Dfile.encod ...

  7. IDEA 跑spring项目找不到get,set的问题

    @Autowired的用法和作用 这个注解就是spring可以自动帮你把bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get. iDEA下安装lombok这个插件就可 ...

  8. cn_office_professional_plus_2010_x86_515 安装激活方法解决方案64bit

    一:首先选择 Office 2010 Toolkit.exe 右键 选择属性 –兼容性 然后 选择以管理员身份运行此程序  然后 双击 Office 2010 Toolkit.exe 需要安装的工具及 ...

  9. scrapy使用笔记

    新建项目 在需要新建项目的目录下发指令 scrapy startproject MySpider 其中MySpider为工程的名字,会新建一个文件夹 进入工程目录 新建一个爬虫 scrapy gens ...

  10. MySQL 8.0的十大新特性

    今天,让我们看一下MySQL8.0提升数据库管理员工作效率的十大改进. 从一大堆特性你们找出十点并不太容易,以下是这十大特性: 1.临时表的改进 2.持续的全局变量 3.取消默认MyISAM系统表 4 ...