Linux基础命令
Table of Contents
目录相关
-
系统目录结构
/bin
这个目录存放着最经常使用的命令
/boot
这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件
/dev
这里存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
/etc
这个目录是用来存放所有的系统管理所需要的配置文件和子目录。
/home
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
/lib
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都会用到这些共享库
/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media
Linux系统会自动识别一些设备,例如光驱、u盘等等,等识别后,linux会把识别的设备挂载到这个目录下。
/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载/mnt上,然后进入该目录就可以查看光驱的内容了
/opt
这是给主机额外安装软件所拜访的目录。比如安装数据库则可以放在这个目录下,默认是空
/proc
这个目录是一个虚拟的目录,他是系统内存的映射,我们可以用过直接访问这个目录来获取系统信息。这个目录不是在硬盘上而是在内存里
/root
该目录为系统管理员,也称作超级权限者的用户主目录
/sbin
这里存放着的是系统管理员使用的系统管理程序。
/selinux
这个目录是Redhat/CentOS 所特有的目录,Selinux是一个安全机制,类似于windows防火墙
/srv
这个目录存放一些服务启动之后需要提取的数据
/sys
该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp
这个目录是用来存放一些临时文件的。
/usr
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin
系统用户使用的应用程序。
/usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src
内核源代码默认的放置目录
/var
这个目录中放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放到这个目录下,包括各种日志文件
/run
这是一个临时文件系统,存储系统启动以来的信息.当系统重启市,这个目录下的文件应该被删掉或者清除。如果你的系统上有/var/run目录,应该让它指向run
👉 重要目录:
/etc 系统配置文件,更改可能导致系统无法启动。
/bin /sbin /usr/bin /usr/sbin 这是系统预设的执行文件的放置目录。
- /bin /usr/bin是给系统用户使用的指令
- /sbin /sur/sbin 是给root用户使用的指令
/var 这是一个重要的目录,系统上跑了很多程序,每个程序运行的日志都保存在这个目录( /var/log )下面。
-
pwd
查看当前工作的位置 -
ls
查看目录的内容 -
mkdir
创建目录 -
cd
从当前位置跳转到指定目录 -
rmdir
*删除目录*
文件管理
touch
新建文件cat
查看文本cp
复制文件file
查看文件类型rm
删除文件mv
移动文件,给文件命名**find
查找文件**
查看、统计文件
-
more
按屏显示文本文件- 常用参数
- Enter 向下n行,需要定义。默认为1行
- Ctrl+F 向下滚动一屏
- 空格键 向下滚动一屏
- Ctrl+B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
- V 调用vi编辑器
- !命令 调用Shell,并执行命令
- q 退出more
- 常用参数
-
less
与more类似,区别在于可以使用Pageup向上查看-
常用参数
-b <缓冲区大小> 设置缓冲区的大小 -e 当文件显示结束后,自动离开 -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 -g 只标志最后搜索的关键词 -i 忽略搜索时的大小写 -m 显示类似more命令的百分比 -N 显示每行的行号 -o <文件名> 将less 输出的内容在指定文件中保存起来 -Q 不使用警告音 -s 显示连续空行为一行 -S 行过长时间将超出部分舍弃 -x <数字> 将"tab"键显示为规定的数字空格 /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能 n:重复前一个搜索(与 / 或 ? 有关) N:反向重复前一个搜索(与 / 或 ? 有关) b 向上翻一页 d 向后翻半页 h 显示帮助界面 Q 退出less 命令 u 向前滚动半页 y 向前滚动一行 空格键 滚动一页 回车键 滚动一行 [pagedown]: 向下翻动一页 [pageup]: 向上翻动一页
-
-
head、tail
局部显示文件,head 显示文件头部,tail显示文件尾部 -
wc
文件内容统计 -
grep
查找文本文件中与指定模式匹配的行
用户相关
adduser
添加passwd
设置或更改用户密码userdel
删除用户usermod
修改用户属性,常用于启用、禁用账号su
改变用户身份who
查看当前登录到系统的用户是谁
用户组相关
group
groupadd
添加用户组groupdel
删除组, 删除之前组内不能有用户usermod
更改组账号
权限相关
👇 -rw-rw-r–
第一个位置指定了文件类型。-表示非目录的文件,d表示目录文件。
2-4位表示属主权限,5-7位表示属主同组的用户权限,8-10表示其他用户权限
数值设定发: 0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限。
644 (属主可读可写,同组和其他用户可读权限)
chmod
用于改变文件或目录的访问权限chown
更改文件或目录的所有者
重定向与管道
>
将结果重定向到某个位置>>
表示输出追加到文件末尾grep 'am'< filename
输入重定向(grep是在filename文件中搜索“am”字符串)
进程管理
ps
显示进程top
动态显示进程kill
中断进程
文件压缩
zip
打包和压缩文件unzip
对压缩包进行解压缩gzip
压缩文件,不能压缩多个tar
打包文件,gzip不能压缩多个文件,先打包再压缩。.tgz
后缀gunzip
对压缩包解压缩
常用命令
系统常用
ssh root@0.0.0.0 # ssh登录linux
cd # 切换命令
cp # 拷贝
mv # 移动
mkdir # 创建文件夹
touch # 创建文件
rm # 删除文件
rm -rf # 强行删除
rmdir # 删除文件夹
ll # 查看文件列表
cat # 查看文件全部内容
find # 查找文件
ps -elf|grep tomcat # 查看tomcat进程
ps -ef | grep
ps -aux | grep 查看后台进程
sudo su # 切换到root用户
clear reset # 清除命令行屏幕 (快捷键: ctrl + l)
xxx xxx & # 后台运行命令
jobs -l # 显示所有任务的pid
kill pid # 杀掉对应的pid
top -c # 查看cpu资源占用
history # 查看历史命令
su user # 表示切换用户,
sudo # 表示获取临时的root权限命令
vim
Esc # 进入命令模式
:set nonu # 关闭行号
:set num # 开启行号
: wq # 保存并退出
: q # 不保存退出
: q! # 强制退出
i # 进入编辑模式
添加用户
# urseadd 选项 用户名
useradd -d /usr/sam -m sam #-d和-m选项用来为登录名sam产生一个主目录/usr/sam
passwd username # 设置密码
groupadd test # 增加工作组
gpasswd -a username groupname # 将用户添加到工作组
用户列表文件:/etc/passwd
用户组列表文件:/etc/group
💡 添加用户到某一个组 可以使用 usermod -G groupname username这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉。
source命令
source filename 与 sh filename 及./filename执行脚本的区别
- 当shell脚本具有可执行权限时,用
sh filename
与./filename
执行脚本是没有区别得。./filename
是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。 sh filename
重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。source filename
:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
nohup
nohup xxxx &
将程序以忽略挂起信号的方式运行起来
-
jobs -l
查看后台进程,只能查看当前终端,关闭终端后不能查看。 -
ps -aux |gerp xxxx
查看后台程序
- a : 显示所有程序
- u: 以用户为主的格式来显示
- x: 显示所有程序,不以终端机来区分
-
nohup 默认输出到附加到当前目录的nohup.out文件中 如果当前的nohup.out 文件不可写,则输出重定向到 $HOME/nohup.out文件 如果没有文件能创建或者打开用于追加,则需要的运行的命令不可调用
-
执行shell命令时,默认打开3个文件。
标准输入
标准输出
错误输出
-
>/dev/null
/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失 -
nohup xxx >/dev/null 2>&1 &
什么信息也不输出 -
nohup xxx >/dev/null 2>log &
只输出错误输出到log文件中
&&和&
、|和||
- & 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &
- && 表示前一条命令执行成功时,才执行后一条命令 ,如 echo ‘1‘ && echo ‘2’
- | 表示管道,上一条命令的输出,作为下一条命令参数,如 echo ‘yes’ | wc -l
- || 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo “fail”
软链接
ln -s xxx.sh /usr/local/bin
把shell脚本添加软链接全局执行
Linux脚本开头#!/bin/bash
#!/bin/sh
#!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径
释放缓存
echo 1 > /proc/sys/vm/drop_caches # 仅清除页面缓存` `echo 2 > /proc/sys/vm/drop_caches # 清除目录项和inode` `echo 3 > /proc/sys/vm/drop_caches # 清除页面缓存、目录项以及inode