Linux - 常用命令

Linux系统文件结构

Linux - 常用命令

Linux - 常用命令

/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。

/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

/root:
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:
该目录存放一些服务启动之后需要提取的数据。

/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

/tmp:
这个目录是用来存放一些临时文件的。

/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/usr/bin:
系统用户使用的应用程序。

/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:内核源代码默认的放置目录。

/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

基本命令

开关机命令

reboot 命令用于重启机器
poweroff 用于关闭系统

获取IP地址

ip addr
ifconfig

ssh远程连接

ssh 用户名@ip
ssh -p 端口 用户名@ip

用户

创建普通用户

useradd  用户名

更改用户密码

passwd  用户名

切换用户

root切换普通用户不需要密码,普通用户之间切换需要密码

su -  用户名 
# -代表用户环境变量完全切换

查看linux用户的id信息

id  用户名

查看存放用户信息的文件

/etc/passwd

删除用户

userdel  -rf 用户名

管理员权限 sudo命令

配置sudo命令
用visudo命令,打开配置文件,添加如下配置
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
用户名   ALL=(ALL)       ALL

在要执行的命令前添加sudo执行命令

权限

文件的权限分三类人

user   属主
group  属组
other  其他人

一个文件有三种权限,读、写、可执行

r  read   读 4
w  write  写 2
x  exec 可执行 1

查看一个文件的权限信息
ls -l

-rw-r--r--. 1 root root 0 Oct 27 16:36 1.txt   
rw- :属主权限
r-- :属组权限
r-- :其他人权限
root :创建者
root :用户组
0 Oct 27 16:36 : 修改时间
1.txt : 文件名

修改文件权限

chmod u/g/o+r/w/x filename
chmod u/g/o-/w/x filename

修改文件属主

chown 用户 filename

修改文件属组

chgrp 属组 filename

将用户加入某个组

usermod -G 组名 用户名

软连接,快捷方式

ln -s  源文件绝对路径   快捷方式绝对路径

目录相关

目录符号

符号描述
.当前目录
上一级目录
-上一次工作目录
~当前用户的家目录
/根目录

目录操作

查看当前目录下所有文件内容

ls

查看隐藏文件

ls -a

以列表方式显示文件的详细信息

ls -l

以列表方式显示人性化的文件详细信息

ls -lh

查看当前所在目录

pwd

切换文件夹

cd /opt/first

创建目录

mkdir a

递归创建目录

mkdir -p a/b/c

删除空目录

rmdir a

强制删除

rm -rf

文件相关

创建文件,如果文件不存在,创建文件

linux中文件的后缀没有意义,只是提示作用

touch 1.txt

删除指定文件

rm 1.txt

查看文件内容

全部查看
cat 1.txt

显示行号
cat -n 1.txt

在每行结尾显示$符
cat -E 1.txt

追加文字到文件
cat >> /opt/1.txt << EOF
11
22
EOF

more:用于查看内容较多的文本,more命令查看文本会以百分比形式告知已经看到了多少,使用回车键向下读取内容

more 1.txt
空格翻页,b键上一页,回车向下读取内容

head、tail

head
显示文件前几行,默认为10
head -2 1.txt

tail
显示文件后几行,默认为10
tail -2 1.txt

chattr

给文件上锁、只能写入无法删除

chattr +a 1.txt
chattr -a 1.txt

lsattr

查看文件隐藏属性

lsattr 1.txt

chattr

设置文件特殊权限的命令

vim
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

简单使用

1、使用vi或vim打开文件弹出命令模式

vim 1.txt

2、在命令模式中输入a或i进入编辑模式

3、编辑结束后按esc返回命令模式

4、在命令模式中输入wq!保存退出

命令模式操作

:q!     强制退出
:wq!    强制写入退出
:set nu 显示行号
:数字   跳转到数字行
:! command    暂时离开vim指令模式,执行command的结果
例如  :!ip a    临时看一下ip信息,然后可以回到vim

:set nu    显示vim行号
:set nonu    取消行号

随时按下esc可以退出底线命令模式

移动光标

w 移动到下一个单词
b 移动到上一个单词
0 移动到本行开头
$ 移动到本行结尾
H 移动到屏幕首行
M 移动到屏幕中间一行
L 移动到屏幕尾行
gg 移动到文档首行
G 移动到文档尾行
ctrl + f 下一页
ctrl + b 上一页
. 移动到上一次修改行

按键移动
h 或 向左箭头键(←)    光标向左移动一个字符
j 或 向下箭头键(↓)    光标向下移动一个字符
k 或 向上箭头键(↑)    光标向上移动一个字符
l 或 向右箭头键(→)    光标向右移动一个字符
向下移动5行      5j
向右移动10字符    10l

查找

/chaoge 在整篇文档中搜索chaoge字符串向下查找
?chaoge 在整篇文档中搜索chaoge字符串向上查找
* 查找整个文档、匹配光标所在的所有单词,n查找下一处N查找上一处
# 查找整个文档、匹配光标所在的所有单词,按下n查找下一处,N上一处
gd 找到光标所在单词匹配的单词,并停留在飞注释的第一个匹配上
% 找到括号另一半

复制、删除、黏贴

yy    拷贝光标所在行
dd    删除光标所在行
D     删除当前光标到行尾的内容
dG    删除当前行到文档尾部的内容
p     粘贴yy所复制的内容
x   删除光标所在的字符
u     撤销上一步的操作

3yy    拷贝光标所在的3行
5dd    删除光标所在5行

tar

参数: 
-z  调用gzip压缩
-x  解包
-c  打包
-v 显示过程 
-f  必须写参数结尾,指定tar包的名字

打包

tar -cvf  压缩文件名.tar  被压缩文件

解包

tar  -xvf  压缩文件名.tar 解包路径

压缩

tar  -zcvf  压缩文件名.tar.gz   被压缩文件

解压

tar  -zxvf  压缩文件名.tar.gz    解压路径

查看环境变量

echo $PATH

Linux中的环境变量由目录组成,由:分割

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

时间

date

显示当前时间和设置系统时间

-d    --date=string    显示指定的时间,而不是当前时间
以年-月-日显示当前时间
date +"%Y-%m-%d"
以年-月-日 时分秒 显示当前时间
date +"%Y-%m-%d %T"

在Linux下系统时间和硬件时间不会自动同步,在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。
硬件时间的运行,是靠Bios电池来运行,而系统时间是用CPU tick来维持的。
在系统开机时候,会从Bios中获取硬件时间,设置为系统时间

硬件始终的查看
[ ~ 10:19:04]#hwclock
2018年08月27日 星期一 10时23分03秒  -0.528004 秒

同步系统时间和硬件时间,可以用hwclock命令

//以系统时间为基准,修改硬件时间
[ ~ 10:29:07]#hwclock -w

//以硬件时间为基准,修改系统时间
[ ~ 10:29:21]#hwclock -s

cal

日历命令

[_0_16_centos first]# cal
    November 2019   
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

ntp

关于时间服务器的配置文件,有如下几种

/bin/date     用于 Linux 时间 (软件时钟) 的修改与显示的指令;

/sbin/hwclock  用于 BIOS 时钟 (硬件时钟) 的修改与显示的指令。 这是一个 root 才能执行的指令,因为 Linux 系统
上面 BIOS 时间与 Linux 系统时间是分开的,所以使用 date 这个指令调整了时间之后,还需要使用 hwclock 才能将修改过
后的时间写入 BIOS 当中!

/usr/sbin/ntpd: 主要提供 NTP 服务的程序啰!配置文件为 /etc/ntp.conf

/usr/sbin/ntpdate: 用于客户端的时间校正,如果你没有要启用 NTP 而仅想要使用 NTP Client 功能的话,那么只会
用到这个指令而已!

只用作客户端更新时间
ntpdate -u ntp.aliyun.com

wget

命令用于在终端下载网络文件

wget [参数] 下载地址
wget -r -p http://www.baidu.com

echo

echo命令用于在终端输出字符串或变量提取后的值,格式是“echo 【字符串|$变量】

默认将内容打印
echo "xxx"

打印PATH的值
echo $PATH 

其他特殊符号
>> 追加文字到文件
> 覆盖文字到文件
< 输入
<< 将输入结果输入
echo "x" > 1.txt
echo "xx" >> 1.txt
echo >> 1.txt << EOF

复制、移动、删除

复制

复制
cp xx.txt first
复制后改名
cp xx.txt first/x1.txt
递归复制
cp -r
保持文件属性不变
cp -p

移动

mv 1.txt /tmp

删除

rm 1.txt
rm -i 删除时需要确认
rm -f 强制删除
rm -r 递归删除

查找

完整格式
find 目录 类型 名字 参数

按名字查找
find -name 1.txt

按类型查找
find -type f
按类型查找参数:
b 块设备文件
d 目录
c 字符设备文件
p 管道文件
i 符号链接文件
f 普通文件
s socket文件

通配符
以什么结尾
find -name "*.txt"
以什么开头
find -name "s*"

管道命令

Linux提供的管道符“|”讲两条命令隔开,管道符左边命令的输出会作为管道符右边命令的输入。

ls /opt|find -name "*txt"

grep

(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

语法:
grep [参数]  [--color=auto] [字符串] filename

参数:
i 忽略大小写
n 输出行号
v 反选
color = auto 给关键词添加颜色

cat /etc/passwd |grep ‘^root‘ --color=auto -n

别名

查看系统别名
alias

设置别名
alias rm = "xxxxx"

取消别名
unalias rm

which

命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。

指令会在环境变量$PATH设置的目录里查找符合条件的文件。

which ls

scp

scp命令用于Linux之间复制文件和目录。

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

语法:
scp 【可选参数】 本地源文件 远程文件标记

参数:
-r 递归复制
-v 详细方式输出
-q 不显示传输进度条
-c 允许压缩

scp 本地文件 远程用户名@远程ip:远程文件夹/远程文件名

du

du会显示指定的目录或文件所占用的磁盘空间。

语法:
du 【参数】【文件或目录】

参数:
-s 显示总计
-h 以k、M、G为单位显示

du -sh /home

top

命令用于动态地监视进程活动与系统负载等信息

第一行 (uptime)
系统时间 主机运行时间 用户连接数(who) 系统1,5,15分钟的平均负载
第二行:进程信息
进程总数 正在运行的进程数 睡眠的进程数 停止的进程数 僵尸进程数
第三行:cpu信息
1.5 us:用户空间所占CPU百分比
0.9 sy:内核空间占用CPU百分比
0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
97.5 id:空闲CPU百分比
0.2 wa:等待输入输出的CPU时间百分比
0.0 hi:硬件CPU中断占用百分比
0.0 si:软中断占用百分比
0.0 st:虚拟机占用百分比

第四行:内存信息(与第五行的信息类似与free命令)
total:物理内存总量
used:已使用的内存总量
free:空闲的内存总量(free+used=total)
buffers:用作内核缓存的内存量

第五行:swap信息
total:交换分区总量
used:已使用的交换分区总量
free:空闲交换区总量
cached Mem:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入

清屏

clear

whoami

whoami  查看当前目录

主机名

hostname 查看主机名  
set-hostname  新的主机名

yum

在linux下安装各种软件

yum install  vim  -y  #安装vim软件,且自动输入yes

更新yum

yum update

tail

tail  -f  filename  #持续刷新文件内容的变化

进程

查看进程
ps aux 或者 ps -ef  #查看机器所有进程信息
ps aux  |  grep  "vim"  #过滤出和vim有关的进程
杀死进程
kill -9 进程id
pkill -9 进程名

查看内存信息

free

查看磁盘信息

fdisk

磁盘使用率

df

查看网络端口

netstat  -tunlp  
参数:
	netstat [选项]
	-t或--tcp:显示TCP传输协议的连线状况;
	-u或--udp:显示UDP传输协议的连线状况;
	-n或--numeric:直接使用ip地址,而不通过域名服务器;
	-l或--listening:显示监控中的服务器的Socket;
	-p或--programs:显示正在使用Socket的程序识别码和程序名称;
	-a或--all:显示所有连线中的Socket;

防火墙

关闭防火墙的命令

systemctl stop  firewalld  		#停止防火墙服务 
systemctl disable  firewalld    #停止防火墙开机自启
iptables -F   				    #清空防火墙规则

定时任务

检查定时任务列表

crontab -l

设置定时任务

crontab  -e
分  时  日 月 周      执行命令的绝对路径
*   *   *   *  *     /usr/bin/echo  "111"

yum源

centos的默认yum仓库路径是 /etc/yum.repos.d ,在这目录下,第一层文件夹中的repo文件会识别为仓库文件

配置yum源

1.获取阿里云的yum源
打开网址https://opsx.alibaba.com/mirror

2.找到第一个仓库
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3.下载第二个仓库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo


4.生成yum缓存,加速以后下载
yum makecache

SimpleHTTPServer

python -m SimpleHTTPServer 8090

相关推荐