linux常用命令
发布日期:2021-05-14 21:58:29 浏览次数:13 分类:博客文章

本文共 13992 字,大约阅读时间需要 46 分钟。

linux常用命令

在linux中,绝大多数命令都参照 命令 选项 参数

选项:适用于调整命令的功能的

参数:指的是命令的操作对象,如果省略参数,是由于有默认参数的

目录操作命令

ls 显示目录下的内容

# ls [root@localhost ~]# lsanaconda-ks.cfg  install.log  install.log.syslog# ls --color=never  不显示颜色的显示目录下的文件名[root@localhost ~]# ls --color=neveranaconda-ks.cfg  install.log  install.log.syslog# ls -a 显示所有文件(包含隐藏文件)[root@localhost ~]# ls -a.  ..  anaconda-ks.cfg  .bash_logout  .bash_profile  .bashrc  .cshrc  install.log  install.log.syslog  .pki  .tcshrc# ls -l 以长格式显示文件[root@localhost ~]# ls -l总用量 16-rw-------. 1 root root 1098 6月   8 19:38 anaconda-ks.cfg-rw-r--r--. 1 root root 8025 6月   8 19:38 install.log-rw-r--r--. 1 root root 3384 6月   8 19:38 install.log.syslog# ls -d 只显示目录[root@localhost ~]# ls -l总用量 16-rw-------. 1 root root 1098 6月   8 19:38 anaconda-ks.cfg-rw-r--r--. 1 root root 8025 6月   8 19:38 install.log-rw-r--r--. 1 root root 3384 6月   8 19:38 install.log.syslog# ls -i 查看inode节点号[root@localhost ~]# ls -i260965 anaconda-ks.cfg  260611 install.log  260612 install.log.syslog

cd 切换所在目录

# cd[root@localhost ~]# cd /tmp/[root@localhost tmp]# # 进入相对路径[root@localhost /]# cd /tmp/[root@localhost tmp]# cd ../etc/yum.repos.d/# 进入绝对路径[root@localhost yum.repos.d]# cd /etc/yum.repos.d/[root@localhost yum.repos.d]# ll总用量 36drwxr-xr-x. 2 root root 4096 6月   8 19:58 backup-rw-r--r--. 1 root root 1991 3月  28 2017 CentOS-Base.repo-rw-r--r--. 1 root root  647 3月  28 2017 CentOS-Debuginfo.repo-rw-r--r--. 1 root root  289 3月  28 2017 CentOS-fasttrack.repo-rw-r--r--. 1 root root  630 3月  28 2017 CentOS-Media.repo-rw-r--r--. 1 root root 7989 3月  28 2017 CentOS-Vault.repo-rw-r--r--. 1 root root  957 11月  5 2012 epel.repo-rw-r--r--. 1 root root 1056 11月  5 2012 epel-testing.repo# cd -  返回上次所在目录[root@localhost yum.repos.d]# pwd/etc/yum.repos.d[root@localhost yum.repos.d]# cd /[root@localhost /]# cd -/etc/yum.repos.d[root@localhost yum.repos.d]# # cd ~	进入当前用户的家目录[root@localhost yum.repos.d]# cd ~[root@localhost ~]# # cd ..	进入上一级目录[root@localhost ~]# cd /tmp/[root@localhost tmp]# pwd/tmp[root@localhost tmp]# cd ..[root@localhost /]# pwd/

pwd 显示当前所在目录

# pwd[root@localhost yum.repos.d]# pwd/etc/yum.repos.d

mkdir 创建目录

# mkdir[root@localhost ~]# mkdir tmp[root@localhost ~]# lsanaconda-ks.cfg  install.log  install.log.syslog  tmp# mkdir -p 递归创建目录[root@localhost ~]# mkdir -p a/b/c/d[root@localhost ~]# tree aa└── b    └── c        └── d3 directories, 0 files

rmdir 删除目录,只能删除空目录

# rmdir[root@localhost ~]# rmdir d

rm -rf 删除文件和目录

# -r 递归,删除目录# -f 强制[root@localhost ~]# lsa  anaconda-ks.cfg  install.log  install.log.syslog[root@localhost ~]# rm -rf a[root@localhost ~]# ll总用量 16-rw-------. 1 root root 1098 6月   8 19:38 anaconda-ks.cfg-rw-r--r--. 1 root root 8025 6月   8 19:38 install.log-rw-r--r--. 1 root root 3384 6月   8 19:38 install.log.syslog

tree 目录名显示指定目录下所有内容的目录树

# tree[root@localhost ~]# tree /etc/yum.repos.d//etc/yum.repos.d/├── backup├── CentOS-Base.repo├── CentOS-Debuginfo.repo├── CentOS-fasttrack.repo├── CentOS-Media.repo├── CentOS-Vault.repo├── epel.repo└── epel-testing.repo

文件操作命令

touch 创建空文件或者修改文件最后一次访问时间

# touch[root@localhost tmp]# touch replaceContent.py[root@localhost tmp]# lsreplaceContent.py  yum.log# 这里需要注意的是:任何操作系统都不允许创建同名的文件和目录

cat 查看文件

# cat[root@localhost ~]# cat install.log安装 libgcc-4.4.7-18.el6.x86_64warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY安装 setup-2.8.14-23.el6.noarch安装 filesystem-2.4.30-3.el6.x86_64......# cat -n  显示行号[root@localhost ~]# cat -n install.log     1	安装 libgcc-4.4.7-18.el6.x86_64     2	warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY     3	安装 setup-2.8.14-23.el6.noarch......

more 分屏显示文件内容

# more  b返回上一页,空格进入下一页[root@localhost ~]# more install.log安装 libgcc-4.4.7-18.el6.x86_64warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY安装 setup-2.8.14-23.el6.noarch安装 filesystem-2.4.30-3.el6.x86_64

less 分行显示文件内容

# less  上下箭头分页[root@localhost ~]# less install.log安装 libgcc-4.4.7-18.el6.x86_64warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY安装 setup-2.8.14-23.el6.noarch

head 显示文件头,默认是10行

# head[root@localhost ~]# head install.log安装 libgcc-4.4.7-18.el6.x86_64warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY安装 setup-2.8.14-23.el6.noarch安装 filesystem-2.4.30-3.el6.x86_64安装 basesystem-10.0-4.el6.noarch安装 ncurses-base-5.7-4.20090207.el6.x86_64安装 kernel-firmware-2.6.32-696.el6.noarch安装 tzdata-2016j-1.el6.noarch安装 glibc-common-2.12-1.209.el6.x86_64安装 nss-softokn-freebl-3.14.3-23.3.el6_8.x86_64# head -n number  只显示Number行[root@localhost ~]# head -n 5 install.log安装 libgcc-4.4.7-18.el6.x86_64warning: libgcc-4.4.7-18.el6.x86_64: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY安装 setup-2.8.14-23.el6.noarch安装 filesystem-2.4.30-3.el6.x86_64安装 basesystem-10.0-4.el6.noarch

tail 显示文件尾

# tail	默认是文件的最后10行[root@localhost ~]# tail install.log安装 efibootmgr-0.5.4-15.el6.x86_64安装 sudo-1.8.6p3-27.el6.x86_64安装 audit-2.4.5-6.el6.x86_64安装 e2fsprogs-1.41.12-23.el6.x86_64安装 xfsprogs-3.1.1-20.el6.x86_64安装 acl-2.2.49-7.el6.x86_64安装 attr-2.4.44-7.el6.x86_64安装 bridge-utils-1.2-10.el6.x86_64安装 rootfiles-8.1-6.1.el6.noarch*** FINISHED INSTALLING PACKAGES ***[root@localhost ~]# # tail -n number  只显示文件尾部number行[root@localhost ~]# tail -n 3 install.log安装 bridge-utils-1.2-10.el6.x86_64安装 rootfiles-8.1-6.1.el6.noarch*** FINISHED INSTALLING PACKAGES ***[root@localhost ~]# # tailf	监听文件,用于监听实时日志[root@localhost ~]# touch 1.txt[root@localhost ~]# tailf 1.txt 11111

cp 拷贝文件

cp -r	复制目录cp -p	连带文件属性复制cp -d	若源文件是链接文件,那么复制链接属性cp -a 	相当于cp -rpd

mv 移动文件或者重命名文件

mv 源文件 目标地址mv 源文件 目标文件

ln 链接文件

在linux文件中分为硬链接文件和软连接文件硬链接文件:	1.拥有相同的i节点和存储block块,可以看做是同一个文件。修改一个文件,另一个文件也会发生改变,删除其中一个,另一个文件还能打开	2.可以通过i节点识别    3.不能跨分区    4.不能针对目录使用    	a.硬链接不能连接目录    	b.硬链接不能跨分区软连接文件:	1.类似Windows快捷方式	2.软连接拥有自己的i节点和block块,但是数据中只保存原文件名和i节点号,并没有实际的文件数据,软连接目录大小不变	3.lrwxrwxrwx是软连接		a.软连接文件都是777		b.软连接的最大权限是假的,不影响实际访问,源文件受限制权限	4.删除任意文件,另一个都改变	5.删除源文件,软连接不能使用会报错,红点闪烁	ln -s 源文件 目标文件	文件名必须要写绝对路径	软连接需要绝对路径,不允许使用相对路径创建软连接的原因,照顾管理员的使用习惯,照顾版本升级需要

权限位

[root@localhost ~]# ll /etc总用量 1208-rw-r--r--.  1 root root     16 6月   8 19:38 adjtime-rw-r--r--.  1 root root   1512 1月  12 2010 aliases-rw-r--r--.  1 root root  12288 6月   8 19:40 aliases.dbdrwxr-xr-x.  2 root root   4096 6月   8 20:11 alternatives从redhat6更新的,第11位代表这个文件被SELinux所保护,权限位是10位,第1位代表文件类型:-	普通文件d	目录文件l	链接文件b	块设备文件c	字符设备文件s	套接字文件p	管道

chmod 修改权限

权限	644	标准的读写权限	755	标准的执行权限	777	最大权限	在服务器禁止出现777权限,除了系统自带的目录,不能手工更改apache权限,只需要把网页目录的所有者改成apache的管理员身份就可以了

权限的意义

1.权限对文件的意义	r:读取文件的内容	more/cat/less/tail	w:编辑、现在、修改文件内容,不包括删除文件	vi/echo	r:可执行	对于文件来说:执行权限是最高权限2.权限对目录的意义	r:可以查询目录下的文件名	ls	w:具有修改目录结构的权限。如新增文件和目录,删除此目录下的文件,重命名等操作	touch rm mv cp	x:可以进入目录	对于目录来说:写权限才是最高权限,写权限要小心赋予

chown 改变所有者和所属组

# chown[root@host-10-200-137-195 ~]# lltotal 8-rw-r--r-- 1 root root  856 Jun  2 19:33 client.pydrwxr-xr-x 2 root root    6 Jun  6 11:16 root-rw-r--r-- 1 root root 1024 Jun  2 19:26 server.py[root@host-10-200-137-195 ~]# useradd xiaouseradd: user 'xiao' already exists[root@host-10-200-137-195 ~]# chown xiao:xiao server.py [root@host-10-200-137-195 ~]# lltotal 8-rw-r--r-- 1 root root  856 Jun  2 19:33 client.pydrwxr-xr-x 2 root root    6 Jun  6 11:16 root-rw-r--r-- 1 xiao xiao 1024 Jun  2 19:26 server.py

**chrgp 所属组 文件名 **

查找命令

which 查找命令的命令,能看到相关别名

# which[root@localhost ~]# which vialias vi='vim'	/usr/bin/vim  # 实际上也相当于是查询别名的操作

whereis 查询命令的命令,以及帮助文档的路径

# whereis[root@localhost ~]# whereis vivi: /bin/vi /usr/share/man/man1/vi.1.gz和which相同点:	可以查找出命令的绝对路径和which不同点:	whereis可以列出帮助文档的存放位置,而which可以查询命令的别名

**locate 按照文件名查找 按照数据库查找 **

# locate # 这个命令在centos6中有,在centos7中需要安装mlocate,然后初始化数据库updatedb[root@localhost ~]# locate inittab/etc/inittab/usr/share/man/man5/inittab.5.gz/usr/share/vim/vim74/syntax/inittab.vim优点:	在后台建立数据库/var/lib/mlocate,记录当前系统的文件名,按数据库查找	耗费资源最小,速度快	第一次更新数据量比较慢更新数据库命令:updatedb配置文件所在位置:/etc/updatedb.conf# locate -i	不区分大小写查找[root@localhost ~]# touch ABC.CONF[root@localhost ~]# touch abc.conf[root@localhost ~]# updatedb[root@localhost ~]# locate abc.conf -i/root/ABC.CONF/root/abc.conf# 配置文件内容[root@localhost ~]# more /etc/updatedb.conf PRUNE_BIND_MOUNTS = "yes"PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"PRUNENAMES = ".git .hg .svn"PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"PRUNE_BIND_MOUNTS	配置文件生效

man 查看命令的帮助

find

# find	文件搜索命令(扫描整个根,文件越多,硬盘越大,速度越慢)按照文件名去查找[root@localhost ~]# find /etc -name init  # 在/etc目录下搜索init的文件(多一个字符都不行)/etc/sysconfig/init/etc/init[root@localhost ~]# find /etc -name *init*	# 在/etc的目录下搜索包含init的文件,*是通配符/etc/init.conf/etc/sysconfig/network-scripts/init.ipv6-global/etc/sysconfig/init/etc/inittab/etc/rc.sysinit/etc/rc.d/rc.sysinit/etc/rc.d/init.d/etc/pam.d/run_init/etc/init.d/etc/init/etc/init/init-system-dbus.conf/etc/iscsi/initiatorname.iscsi/etc/selinux/targeted/contexts/initrc_context/etc/security/namespace.init[root@localhost ~]# find /etc -name init?  # ?代表单个字符 -iname是不去扥大小写的[root@localhost ~]# find /etc -name init???/etc/inittab按照时间查找[root@localhost ~]# find /etc -cmin -5  # 在/etc下查找5分钟被修改过属性的文件和目录 超过5分钟用+/etc/etc/cron.daily/etc/cron.daily/makewhatis.cron/etc/man.config按照大小查找find / -size +27k按照所有者和所属组查找[root@localhost ~]# find / -user xiao[root@localhost ~]# find / -group xiao根据i节点查找[root@localhost ~]# ll -i总用量 20260617 -rw-r--r--. 1 root root    6 6月  10 23:05 1.txt260971 -rw-r--r--. 1 root root    0 6月  11 01:53 abc.conf260970 -rw-r--r--. 1 root root    0 6月  11 01:53 ABC.CONF260965 -rw-------. 1 root root 1098 6月   8 19:38 anaconda-ks.cfg260611 -rw-r--r--. 1 root root 8025 6月   8 19:38 install.log260612 -rw-r--r--. 1 root root 3384 6月   8 19:38 install.log.syslog[root@localhost ~]# find . -inum 260617./1.txtfind /etc –size +80M –a –size -100M  # 在/etc的目录下查找大于80MB小于100MB的文件	-a表示逻辑与and	两个条件都成立	-o表示逻辑或or	两个条件成立一个都执行

grep 在文件内容中搜索字符串匹配的行并输出

# grep -i[指定字符串] 文件名		输出包含指定字符串的行[root@localhost ~]# grep -i 'root' /etc/passwdroot:x:0:0:root:/root:/bin/bashoperator:x:11:0:operator:/root:/sbin/nologin# grep -v [指定字符串] 文件名	输出不包含指定字符串的行[root@localhost ~]# cat 1.txt 12345[root@localhost ~]# grep -v 2 1.txt 1345find和grep的区别:	find:在系统中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配的,find不支持文本刘操作,不支持管道符。	grep:在文件内容中搜索负责条件的字符串的行并输出,如果需要匹配,使用正则表达式,正则表达式是包含匹配。管道符是文本流。

网络命令

netstat 查看系统网络状态

netstat [选项]	-t	tcp端口    -u	udp端口	-l	监听    -n	以IP和端口号显示,而不是主机名和协议名# netstat -tln[root@localhost ~]# netstat -tlActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address               Foreign Address             State      tcp        0      0 *:ssh                       *:*                         LISTEN      tcp        0      0 localhost:smtp              *:*                         LISTEN      tcp        0      0 *:ssh                       *:*                         LISTEN      tcp        0      0 localhost:smtp              *:*                         LISTEN      [root@localhost ~]# netstat -tlnActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address               Foreign Address             State      tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      tcp        0      0 :::22                       :::*                        LISTEN      tcp        0      0 ::1:25                      :::*                        LISTEN

w 查询当前登录服务器的所有用户

# w[root@localhost ~]# w 02:16:55 up  3:47,  2 users,  load average: 0.00, 0.00, 0.00USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHATroot     tty1     -                22:30    3:44m  0.09s  0.09s -bashroot     pts/0    192.168.190.1    22:32    0.00s  0.50s  0.04s w其中第一行:	02:16:55 up		代表开机时间	3:47			代表登录时间	2 users			代表当前有几个用户登录	load average: 0.00, 0.00, 0.00	代表1/5/12分钟前的平均压力值第二行:	USER	代表用户名	TTY		登录终端	IP		登录的IP	LOGIN@	登录的持续时间	IDLE	idle用户的闲置时间	JCPU	所有进程占用CPU时间	PCPU	当前进程占用CPU时间	WHAT	正在执行什么操作
登录终端:	tty1-tty6	字符终端	tty7	图形终端	pts/0-255	远程终端

who 查询登录用户

# who[root@localhost ~]# whoroot     tty1         2018-06-10 22:30root     pts/0        2018-06-10 22:32 (192.168.190.1)登录用户名	登录终端	登录时间	登录的主机IP地址

last 列出登录系统的相关信息

# last[root@localhost ~]# lastroot     pts/1        192.168.190.1    Sun Jun 10 23:05 - 01:39  (02:33)    root     pts/0        192.168.190.1    Sun Jun 10 22:32   still logged in   root     tty1                          Sun Jun 10 22:30   still logged in   reboot   system boot  2.6.32-696.el6.x Sun Jun 10 22:29 - 02:22  (03:52)    root     pts/0        192.168.190.1    Fri Jun  8 20:01 - crash (2+02:28)   root     tty1                          Fri Jun  8 19:41 - crash (2+02:48)   reboot   system boot  2.6.32-696.el6.x Fri Jun  8 19:40 - 02:22 (2+06:42)   wtmp begins Fri Jun  8 19:40:12 2018# 所有登录信息都在/var/run/utmp下,但是是不能修改的

ifconfig 查看本机网络信息

所有系统常见服务都在/etc/services下

关机重启命令

# sync 数据同步,把内存中数据强制保存到硬盘里# 关机命令	1.shutdown -h now	2.init 0 	3.halt	3.poweroff# 重启命令	1.shutdown -r now	2.reboot	3.init 6

linux中系统运行级别

0	关机1	单用户2	不完全多用户,不含NFS服务3	完全多用户4	未分配5	图形界面6	重启

挂载命令

# mountlinux中所有存储设备都必须挂载使用,包括硬盘# mount -l	查询系统中已经挂载的设备,-l会显示卷标名称[root@localhost ~]# mount -l/dev/mapper/VolGroup-lv_root on / type ext4 (rw)proc on /proc type proc (rw)sysfs on /sys type sysfs (rw)devpts on /dev/pts type devpts (rw,gid=5,mode=620)tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")/dev/sda1 on /boot type ext4 (rw)none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)# mount -a 检测/etc/fstab的内容,自动挂载	在这里,如果挂载的是U盘或者光盘,如果下次开机没有放入,那么系统就不会启动	所以需要mount -a 检查下文件内容是否出错# mount [-t 文件系统] [-l 卷标名] [-o 特殊选项] 设备文件名挂载选项:	-t	文件系统	ext3/ext4/iso9660	-l	卷标名	挂载指定卷标的分区,而不是安装设备文件名挂载	-o	特殊选项,可以指定挂载的额外选项,比如读写权限、同步异步等,如不制定默认值生效	# dumpe2fs	查看分区的详细信息[root@localhost ~]# dumpe2fs -h /dev/sda1
上一篇:samba服务
下一篇:解决粘包问题

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月29日 17时05分52秒