Linux基础知识之常用命令 快捷操作 运维 Centos Rhel7

252 阅读6分钟

本笔记主要适用于rhel7,其他linux系统相似,包含常用命令、快捷键等。

常用命令

挂载ISO文件:

mount -o loop /youdir/xxx.iso /mnt

查看光盘结构:

ls /mnt

卸载:

umount /mnt 

或者

umount /youdir/xxx.iso

文件系统命令

查看当前分区的文件系统

df -Th
/root(root 的 home 目录)/home/username(其它普通用户的 home 目录)
/bin, /usr/bin, /usr/local/bin 命令存放处,所有用户都可执行
/sbin, /usr/sbin, /usr/local/sbin 命令存放处,但只有 root 用户可以使用
/media 自动挂载点,如 U 盘、光驱及一些可移动存储设备的挂载点。
/mnt 通常手动挂载设备时会挂载到这个目录下。
/etc 存入所有服务的配置文件,/etc/init.d 存放服务的脚本文件。
/tmp  系统或软件在运行时的临时文件存放处
/boot 存放内核文件及系统启动文件
/var 存有系统及软件的日志信息,及服务的数据,如:mail、DHCP/DNS 等服务的数据资料。
/proc /sys 内核信息
/run 程序及服务的临时数据
/lib, /usr/lib, /usr/local/lib  共享文件库及标准程序设计库,又叫动态链接共享库,作用类似 windows 里的.dll 文件,还有字体。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows 下叫.chk)就在这里命令行基础操作

补充知识: rhel6 文件系统:ext4 rhel7 文件系统:xfs

linux路径有两种寻址方式 绝对路径:从根(/)开始的路径是绝对路径,linux系统中只有一个根,以正斜线“/”开头,描述文件位置的完整说明 cd /tmp/aa 相对路径:以所处的工作目录为参照点 (.代表当前路径 ..代表上一级路径 ~代表用的宿主目录),不以正斜线开头,相对于你当前工作目录的位置 cd ../tmp

cd(change the working directory):

cd		--直接回到家目录
cd ~	--直接回到家目录
cd ..	--返回上级目录
cd . 	--回到当前目录
cd -      --在两个目录之间切换(返回到上一次所在目录)
cd        <path>进入path目录

ls(list directory contents):

ls			--查看当前目录包含哪里些内容
ls ./		--查看当前目录包含哪里些内容
ls ../		--查看上层目录包含哪里些内容
ls -a 		--查看当前目录中所有的文件,包括以点开头的隐藏文件
ls -l		--详细方式列出目录中的内容
ls -al /	--以长格式列出目录中所有的内容,包括隐藏文件	
ls -ltr		--以长格式和时间及以时间反向顺序来显示目录中的内容
ls -R		--递归列出目录中的内容
tree  /a/	--查看a目录的目录树结构  安装tree(yum -y install tree)
ls -lh	
ls -l -- -a   (当文件名称与参数相同时,要用--来表示后面查看的是文件名称)
-rwxrw-rw- 1 root root    413 9月  22  2019  socketclient.py
第一位:文件类型
	-:代表普通文件(file)
	d:代表目录(directory)
	b:块设备(block):如硬盘,U盘等
	c:字符设备(char):如键盘等
	s:套接字文件(socket)
	p:命名管道(pipe)
	l:符号链接文件(symbolic link file)
第二到十位:权限位(r w x:读 写 执行)
	234位:文件属主权限(owner)
	567位:文件属组权限(group)
	8910位:其他用户权限(other)
1:代表文件硬链接的次数
第一个root:代表文件属主(owner)
第二个root:代表文件属组(group)

413:文件的大小 
时间:文件最后被更改的时间戳(stat命令查看文件时间戳)
文件的时间戳:
	access:访问的时间戳
	modify:文件被修改时间戳(修改文件数据:添加删除数据等)
	change:文件被更改时间戳(更改文件属性)

touch(新建空文件)

touch/如果目标不存在,会创建一个空文件
touch /a	更新时间戳,因/a这个文件存在
touch /a     创建空文件
touch {1,2,3}aa{4,5,6}bb{7,8,9}   --创建27个空文件(ps:3x3x3,文件名1aa4bb7、1aa4bb8……)
touch "{1,2,3}aa{4,5,6}bb{7,8,9}"   --创建1个空文件(ps:文件名{1,2,3}aa{4,5,6}bb{7,8,9})
touch 2 3   --创建一个2,同时又创建一个3
touch '2 3'  --创建一个 2空格3 的文件
touch {4..10}	--创建4到10
touch {a..z}
touch {A..Z}
touch file1 file2 :创建多个文件
touch -d 20110808 修改文件日期
touch -d 1215  修改文件时间

stat(显示文件时间戳)

stat install.log

访问时间 (access time):文件被访问的时间,文本访问类命令会修改此时间

修改时间 (modify time):文件内容被修改的时间,使用 echo 命令会修改此时间

元数据改变时间(chage time):文件属性的变化(名称、大小、权限、链接等),mv、echo 命令会修改此时间

touch -m | a  -t 201108311630.15         2011年8月31日16点30分15秒

修改时间的时候 a 对应 Access ; m 对应 Modify ; Change没有对应的修改参数,不可修改

mkdir(新建目录)

mkdir a		--新建一级目录
mkdir -p c/d	--新建多级不存在目录

rmdir(删除空目录)

rmdir dir1 
rmdir -p a/b/c

cp(文件复制)

cp	copy files and directories
cp /dir1/file1	/dir2/
cp /dir1/file1	/dir2/file2
cp -a /dir1/file1 /dir2	--从dir1目录拷贝文件至2,过程中文件中所有的属性不变  (或者 -p)
cp -r /dir1/ /dir2	--递归拷贝(拷贝目录)
\cp  /dir1/file1  /dir2/file1   如果有重名的不讯问是否覆盖,直接覆盖

mv -move (rename) file(移动/改名)

mv /dir1/file1	 /dir2
mv /dir1/file1	 /dir2/file2	--移动并改名	
mv /dir1/file1 /dir1/file2	--改名字

rm - remove files or directories(删除文件目录)

> 命令选项:
> -f:不提示,强制删除文件或目录;
> -i:删除已有文件或目录之前先询问用户;
> -r,-R:递归删除,将指定目录下的所有文件与子目录一并删除;
> -v:显示指令的详细执行过程
rm /a.txt 删除文件
rm /a/ 删除该目录下所有文件
rm -rf /a/ 删除该目录下所有文件不询问

pwd(查看当前所在的工作目录)

用户

id(查看当前用户)

在这里插入图片描述

查看指定用户abc的信息

id abc

切换用户至abc

su abc

定义别名

alias --定义别名 unalias xxx --取消别名

alias kk="ls --color" 
unalias kk

永久定义别名

修改配置文件

vim /etc/bashrc 或者 gedit /etc/bashrc

例如:alias grep='grep --color=tty'

历史命令

历史命令查询:

history		--查看命令历史
history -c	--清空命令历史
history -w 	--把命令历史写入默认文件中($HOME/.bash_history)

图形化命令

基于gnome图像化

  alt+F2    输入命令窗口
  nautilus  目录管理器(文件浏览器)  # nautilus /root/
  gedit     gnome图形文本编辑器

基于KDE图形化

安装软件
yum -y groupinstall "KDE Desktop"

重启、关机、定时关机

关闭系统

shutdown
halt -p
poweroff -p

重启系统

reboot
shutdown -r
halt --reboot
poweroff --reboot

定时关机

shutdown -h 60   1小时之后关机
shutdown -c  取消
shutdown -r 120 2小时之后重启
shutdown -k '我真的1小时关机了咯'
shutdown -h 1 -k '我真的1小时关机了咯'
shutdown -h 15:05 -k 'xxxx15:05关机'

命令使用帮助

help --简单帮助

command(out) --help
help command(build_in)

内部、外部命令的识别: 内部命令是shell程序本身的功能,外部命令是第三方单独存在的程序 之不过由shell调用。

[root@localhost ~]# type  exit
exit 是 shell 内嵌
[root@localhost ~]# type  mkdir
mkdir 是 /usr/bin/mkdir
> 内部:help '内部命令'
eg:help pwd    #内部:该命令功能是bash程序中的一段代码 
> 外部:外部命令 --help 
eg:ls --help      #外部:独立存在的程序,由bash调用执行

man --帮助手册

man man 
man [123456789] command
>参数选项
> 1 用户命令 
>2 内核系统调用(从用户空间到进入点内核的)
>3 库函数
>4 特殊文件和设备
>5 配置文件格式和规范
>6 游戏
>7 规范、标准和其他页面
>8 管理员用的命令帮助手册
>9 linux、内核API(内核调用)
man -k passwd #执行关键字搜索
man -f useradd #useradd的man page 文件是哪个?

man page 的基本操作方法

> j 下一行 
> k 上一行 
> d 转到下半窗 
> u 返回 
> 10g 窗口转到第 10 行 
> g 首行 
> G 尾行
> 使用/来查找关键字 
> n键跳到下一个关键字位置 
> shift -n 跳到上一个关键字位置 
> 向上/向下方向键及翻页键均可使用 
> q 退出

在这里插入图片描述

详细的帮助手册(GNU)

/usr/share/doc --每个软件官方帮助文件档

在这里插入图片描述

whatis、which、whereis

whatis(显示命令的完整名称)

#whatis mv
mv (1) - move (rename) files
mv (1p) - move files

which(显示命令存放位置)

#which mv
alias mv='mv -i'
/usr/bin/mv

whereis(显示命令存放位置与man文档的路径)

#whereis mv
mv: /usr/bin/mv /usr/share/man/man1/mv.1.gz  /usr/share/man/man1p/mv.1p.gz

查看文件结构

#lsblk /dev/sda
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0 0 465.8G 0 disk
├─sda1    8:1 0 461.9G 0 part /
└─sda2    8:2 0 3.9G 0 part [SWAP]

环境变量

环境变量:内存中的命名空间
	PATH变量:存放系统命令路径,以冒号隔开
	查看PATH变量:echo $PATH(linux命令严格区分大小写)
root@kali:/# echo $PATH
	/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
如果在以上路径中没有找到相关命令(该命令为外部命令),提示用户command not found
如果一个命令在以上多个路径中存在,系统会按照从前往后的顺序查找,查找到该命令后,后面的路径不再查找,即使前面的命令是错误的
hash:查看命令缓存及命中率

防火墙及服务操作

[root@uplooking pub]# setenforce 0 关闭selinux
iptables -F 清除防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service 开机不启动
systemctl status firewalld.service 查看服务状态
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $?
查看已启动的服务列表:systemctl list-unit-files|grep enabled

快捷键操作

终端操作

中断:Ctrl + C

终止输入(exit|logout):Ctrl + D

清屏:Ctrl + L

把当前任务调至后台(暂停状态):Ctrl + Z

jobs: 查看后台任务

> fg [id]  将后台中的命令调至前台继续运行 
> fg [id]  任务编号 
> bg [id] 将一个在后台暂停的命令,变成在后台继续执行
> bg [id] 任务编号

删除当前光标到后面的所有内容:Ctrl + K

删除当前光标到前面的所有内容:Ctrl + U

终端切换

图形终端:Alt + F1

字符终端:Ctrl + Alt + F2---F6

备份图形终端:Alt + F7

重启|关机:Ctrl + Alt + delete