Linux常用命令

  最近都在和Linux打交道,我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢Linux的原因,比较短小但却功能强大。

文件目录

1
2
3
4
5
6
7
mkdir test        创建文件夹
rm -rf /test 删除文件夹
cd /test 切换文件夹
pwd 查看文件夹路径
cp -r test /root 拷贝文件夹目录
mv test /root 移动文件夹、更改文件夹的名字
ls ll 查看文件夹下文件

文件

1
2
3
4
5
6
7
8
9
touch test.txt    			新建文件
cp test.txt newtest.txt 复制文件
rm -f test.txt 删除文件
cat test.txt 查看文件内容
more test.txt 分屏显示文件内容 空格键显示下一页内容,B键显示上一页内容,Q键退出
head -10 test.txt 打印文件1-10行
tail -10 test.txt 打印最后10行内容
tail -f test.txt 实时打印文件内容
find 路径 -name test.txt 查找文件或目录,列出路径,可以使用正则表达式查找

vi/vim

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
命令行模式	 
:w保存
:q退出
:q!不保存强制退出
:set nu显示行号
:/单词查找匹配
:N,Md 删除N-M行数据
一般模式:
yy复制当前行
nyy复制下面n行
p粘贴到下一行 P粘贴到上一行
G移动到最后一行
nG移动到第n行
n+光标下移n行
n-光标上移n行
H光标移动到屏幕顶行
M光标移动到屏幕中间行
L光标移动到屏幕最后行
dd删除行
x删除光标后一个字符 X删除光标前一个字符
u恢复前一个动作

远程拷贝

1
2
scp [-r] test.txt root@node02:`pwd`   本地到远程
scp [-r] root@node02:/test /root/ 远程到本地

磁盘指令

1
2
df [-m][-k][-h]    						  查看硬盘信息
du [-k][-m][-a][-h][-max-depth=0] /目录 查看目录信息

网络指令

1
2
3
4
5
ifconfig                          查看网络配置
ping ip地址 查看是否连通
netstat 查看网络相关信息
telnet 192.168.198.111 22 测试远程主机网络端口 Ctrl+] 输入q退出
curl -X GET http://www.baidu.com/ http请求模拟

系统配置

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
*用户操作指令:
useradd ocean 添加用户,创建一个组
passwd ocean 修改密码
useradd -r ocean 删除用户
usermod -l newocean ocean 修改用户名
usermod -L ocean 锁定账号
usermod -U ocean 解锁账号
/etc/passwd /etc/shodow 查看用户
*用户组操作指令:
groupadd groupname创建用户组
groupdel groupname删除用户组
groupmod -n newname name 修改用户组名
groups 查看当前登录用户的组内成员
groups ocean 查看指定用户所在组
usermod [-g][-G] 组名 用户 修改用户的主组或者附加组
cat /etc/group 查看组

*文件权限:
UGO模型:USER GROUP OTHER
chown -R user:group 目录名字 修改整个目录下的所有者和属组
chmod ugo+rwx test.txt 修改文件的权限
chmod 700 test.txt 设置权限

*系统服务初始化配置:
0:停机状态
1:单用户模式
2:多用户
3:完全多用户
4:为定义
5:图形化
6:停止所有进程,重启

*系统时间指令:
date 查看时间
date -s 时间 修改时间
时间同步:
yum -y install ntp
ntpdate cn.ntp.org.cn

*配置主机名:
vim /etc/sysconfig/network

*配置域名映射:
vim /etc/hosts

*sudo权限配置:
vim /etc/sudoers
sudo -l

*环境变量:
vim /etc/profile 全局
echo $path 显示环境变量
source /etc/profile 重新加载环境变量
vi ~/.bash_profile 临时

*防火墙:
service iptables status查看状态
chkconfig iptables on/off 永久生效
service iptables start 即时生效

重定向和管道

1
2
3
4
5
6
7
8
9
输出重定向:>    >>
输入重定向:< <<
标准输出重定向: 1>
错误输出重定向: 2>
结合使用:2>&1
管道: |
命令执行控制:&& 前一个命令执行成功才会执行后一个命令
|| 前一个命令执行失败才会执行后一个命令
信息黑洞:/dev/null

shell脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
定义变量:name="ocean"
引用变量:$name
数组:my_array={A,B,C,D} ${my_array[0]}
运算符:
表达式和运算符之间必须有空格
完整的表达式要被 ` ` 包含
val=`expr $a + $b`
val=`expr $a - $b`
val=`expr $a \* $b`
val=`expr $b / $a`
val=`expr $b % $a`
$a == $b
$a != $b
-eq是否相等 -ne是否不相等 -gt左边是否大于右边 -lt左边是否小于右边 -ge左边是大于等于右边 -le左边是否小于等于右边
&& ||
=字符串是否相等 !=是否不想等 -z长度是否为0 -n长度是否不为0 str是否为不为空
流程控制
函数test(){}

服务指令

1
2
3
4
5
6
7
8
9
10
11
12
列出所有服务   chkconfig   
service 服务名 start/stop/status/restart
添加服务 /etc/init.d系统各种服务的启动和停止脚本
/etc/rc.d/ 系统对应执行级别的服务软连接
步骤:在脚本中添加两行代码#chkconfig: 2345 80 90 #description:auto_run
编写脚本
修改可执行权限
将脚本拷贝到/etc/init.d目录下
加入到服务里chkconfig --add test.sh
重启服务器
删除服务:chkconfig --del name
服务等级更改:chkconfig --level 2345 name off|on 默认是2345

定时调度

1
2
3
4
minute hour day month dayofweek 命令
查看定时任务:/var/spool/mail 目录下放各用户定时任务,执行后的信息
/var/spool/cron 目录存放每个用户的定时任务
contab –l 可以直接查看当前用户的定时任务

linux安全

1
2
3
4
selinux  enforcing强制模式
permissive宽容模式
disabled关闭
sestatus -v查看状态

linux进程

1
2
3
4
5
6
ps -aux查看进程   jobs -l
ps -ef | grep ssh查看相关进程
ps -aux --sort -pcpu根据CPU使用来升序排列
top性能分析
nohup /root/start.h & 后台运行
kill -9 杀死进程

解压压缩下载

1
2
3
4
5
6
7
8
9
yum下载
wget下载
RPM命令:rpm –ivh rpm包 安装
rpm -q ntp 查找
rpm –e 包名 卸载
tar命令:tar -zvxf xxxx.tar.gz 解压
tar -zcf 压缩包命名 压缩目标 压缩
zip命令:zip -r 包名 目标目录 压缩
unzip filename 解压



0%