linux常用命令
基础命令
pwd
显示当前路径
cd
进入目录
ll
ls
ls-l
列出目录的文件
cd ~
cd -
cd ..
cd ../..
history
显示历史命令
man cmd
显示命令详情
cmd —-help
info cmd
clear
terminal 界面清空
查看信息
cat /proc/cpuinfo
查看cup信息cat /proc/meminfo
查看内存信息cat /etc/redhat-release
查看发行版本
[root@zbq ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
uname -a
查看所有系统信息
[root@zbq ~]# uname -a
Linux zbq 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
uname -s
查看内核信息
[root@zbq ~]# uname -s
Linux
uname -m
查看机器信息
[root@zbq ~]# uname -m
x86_64
free
查看内存信息
[root@zbq ~]# free
total used free shared buffers cached
Mem: 3918936 472352 3446584 0 20892 186816
-/+ buffers/cache: 264644 3654292
Swap: 2097144 0 2097144
ifconfig
查看所有网卡的ip信息ifconfig eth0
ps -ef
显示系统当前所有进程ps -aux
显示系统当前所有进程top
监控服务器的资源动态使用情况pstree
进程树pstree -p
查看带有进程号的进程树
[root@zbq ~]# pstree
init─┬─NetworkManager
├─abrtd
├─acpid
├─atd
├─auditd───{auditd}
├─automount───4*[{automount}]
├─bonobo-activati───{bonobo-activat}
├─certmonger
├─console-kit-dae───63*[{console-kit-da}]
├─crond
├─cupsd
├─2*[dbus-daemon───{dbus-daemon}]
├─dbus-launch
├─devkit-power-da
├─gconfd-2
├─gdm-binary─┬─gdm-simple-slav─┬─Xorg
│ │ ├─gdm-session-wor
│ │ ├─gnome-session─┬─at-spi-registry
│ │ │ ├─gdm-simple-gree
│ │ │ ├─gnome-power-man
│ │ │ ├─metacity
│ │ │ ├─plymouth-log-vi
│ │ │ ├─polkit-gnome-au
│ │ │ └─{gnome-session}
│ │ └─{gdm-simple-sla}
│ └─{gdm-binary}
├─gnome-settings-───{gnome-settings}
├─gvfsd
├─hald─┬─hald-runner─┬─hald-addon-acpi
│ │ └─hald-addon-inpu
│ └─{hald}
├─irqbalance
├─5*[mingetty]
├─modem-manager
├─mysqld_safe───mysqld───15*[{mysqld}]
├─nginx───8*[nginx]
├─polkitd
├─pulseaudio───2*[{pulseaudio}]
├─rpc.statd
├─rpcbind
├─rsyslogd───3*[{rsyslogd}]
├─rtkit-daemon───2*[{rtkit-daemon}]
├─sshd───sshd───bash───pstree
├─udevd───2*[udevd]
└─wpa_supplicant
kill -2055 pid
杀死进程ID为2055 的进程- pipe管道的用法
管道:|
cmd1 | cmd2 将cmd1输出结果交给cmd2命令来执行
rpm -qa | grep nc-1.84
nc-1.84-22.el6.x86_64
[root@zbq ~]# ll /etc/yum.repos.d/ | grep qf.repo
-rw-r--r--. 1 root root 86 Sep 6 18:52 qf.repo
[root@zbq ~]# echo this is a example | grep -o "x"
x
linux中常见目录:
/bin/sbin:二进制的可执行文件
/etc : 操作系统的配置目录
/home : 除root用户外的普通用户的家目录
/root : 超级用户root的家目录
/opt : 用户的安装软件摆放目录
/var : 存储经常变化的文件(log日志文件)
/tmp : 系统的临时存储目录(不受用户控制)
/lib /lib64 : 操作系统依赖库和扩展
/mnt : 挂载目录
lost+found : 系统崩溃异常原因date
查看服务器的时间
date -s "2018-09-02"
:设置日期
date -s "2018-09-03 16:45:36"
:设置时分秒
echo `date -d "0 days ago" "+%Y-%m-%d %H:%M:%S"`
``` 格式化日期```
18. 查看目录使用情况
<div class="se-preview-section-delimiter"></div>
[root@zbq ~]# du -h -s /home
4.5G /home
19. 制作软连接 `ln -s 源文件 目标文件`
20. 硬链接 `ln oldfile newfile`
由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:
* 文件有相同的 inode 及 data block;
* 只能对已存在的文件进行创建;
* 不能交叉文件系统进行硬链接的创建;
* 不能对目录进行创建,只可对文件创建;
* 删除一个硬链接文件并不影响其他有相同 inode 号的文件。
<div class="se-preview-section-delimiter"></div>
## 磁盘U盘操作
1. `mkfs.ext4 /dev/sdb1` //格式化硬盘分区
2. `fdisk -l` `fdisk -l /dev/sda3` 查看磁盘分区
`fdisk /dev/sda3 `: 对分区进行操作
3. 挂载
mount : mount 分区 目录 : 挂载(将磁盘对接到某个目录)
`mount -t vfat /dev/sdb1 /mnt/zbq`
unmount : 卸载
`umount /mnt/zbq`
4. 文件系统修复
`fsck -y /dev/sda1 ` (修复的可以是分区可以是目录,最好在单用户模式下使用)
5. linux文件格式
`ext4 ext3 ext2 vfat(fat32)`
<div class="se-preview-section-delimiter"></div>
## 账户与组的操作
1. `/etc/passwd` //保存账户的信息 `/etc/group` 保存组信息
账户
超级账户 root uid = 0
系统账户 uid = 1 ~ 499
普通账户 uid > = 500
2. `/etc/shadow` //保存账户密码信息
3. 添加和删除用户
`useradd `
`[root@zbq zbq]# useradd newadmin`
-u 指定uid
-d 指定家目录
-s 指定使用shell
-e 指定用户过期时间
-g 指定基本组,只在指定组中,不会再默认自己的组
-G 指定附加组,并且也会在自己的组中
4. 添加用户newadmin到 manager组中
<div class="se-preview-section-delimiter"></div>
[root@zbq zbq]# gpasswd -a newadmin manager
Adding user newadmin to group manager
创建用户
`useradd -g manager newadmin`
`useradd -G manager newadmin`
5. 查看用户所在的组 `groups newadmin`
<div class="se-preview-section-delimiter"></div>
[root@zbq zbq]# groups newadmin
newadmin : newadmin manager
6. 将newadmin 移除manager 组
<div class="se-preview-section-delimiter"></div>
[root@zbq zbq]# gpasswd -d newadmin manager
Removing user newadmin from group manager
7. 更改密码
`passwd newadmin`
<div class="se-preview-section-delimiter"></div>
[root@zbq zbq]# passwd newadmin
Changing password for user newadmin.
New password:
BAD PASSWORD: it is based on a dictionary word
Retype new password:
passwd: all authentication tokens updated successfully.
或`echo "root" | passwd --stdin root`
8. `usermod -L newadmin` 锁定用户不让其登录 `usermod -u newadmin`解锁
9. `userdel newadmin` 删除用户 `userdel -r newadmin`递归完全删除
10. `su newadmin` 切换用户
11. `whoami` 显示当前登录的用户
12. `groupdel g1` : 删除组
13. `id 用户名`:查看用户的id
14. `groupadd manager`
<div class="se-preview-section-delimiter"></div>
## 文件操作
1. 目录操作
<div class="se-preview-section-delimiter"></div>
cd : 当前用户的家目录
cd - :回退到上一次所在位置
cd ~ :当前用户的家目录
cd ../ :回退到上一层目录
2. `pwd` : 查看当前所在位置
3. 创建目录:
<div class="se-preview-section-delimiter"></div>
mkdir test
mkdir ./test
mkdir /home/test 绝对位置
mkdir ./test/a1 ./test/a2 创建多个
mkdir ./test/qf/1813
mkdir -p ./test/qf/1813 : 递归创建
4. 查看文件:
<div class="se-preview-section-delimiter"></div>
cat -n /var/log/messages :一次性将文件从前往后读完
-n :带行号
tac /var/log/messages : 倒着显示
more /var/log/messages : 从前往后按百分比来读取文件内容(不能往回查看)
less /var/log/messages :从前往后按百分比来读取文件内容(可以往回查看)
head /var/log/messages : 默认查看前10行
head -100 /var/log/messages : 从前往后查看一百行
tail /var/log/messages : 默认从后往前看10行
tail -100 /var/log/messages
tail -f /var/log/boot.log :动态监控文件最新变化
5. 创建文件
<div class="se-preview-section-delimiter"></div>
touch
echo >
6. 编辑文件
<div class="se-preview-section-delimiter"></div>
vi
vim
nano
echo “” > / >>
7. 列出目录
<div class="se-preview-section-delimiter"></div>
ls -h
ll <=> ls -l -h
ll -a : 查看所有文件
8. 复制文件与目录
<div class="se-preview-section-delimiter"></div>
cp ./aa ./cc ./a1/ 复制多个
cp -r ./a1/ ./qf/ : 复制目录需要加-r (递归)
9. 移动文件
<div class="se-preview-section-delimiter"></div>
mv ./123 ./qf/ : 移动123到qf目录
mv ./aa ./qf/aaa : 移动aa到qf目录并重命名为aaa
mv ./qf/ ./a2/ : 移动目录不需要加-r来递归移动
10. 重命名文件
<div class="se-preview-section-delimiter"></div>
mv可以实现重命名
rename .jsp .html ./*.jsp
rename .html .jsp ./test/*.html
11. 删除文件与目录
<div class="se-preview-section-delimiter"></div>
rm ./a2/aa : 删除aa单个文件
rm -r ./a2/ : 递归删除a2目录中每一个文件,会给提示是否删除
rm -rf ./a2 : 递归强制删除一个目录
12. 解压压缩文件
1.使用tar 压缩后的文件后缀为 .tar
`tar -zcvf ./XXX.tar ./XXX ./test.txt` 打包 ./XXX 目录和test.txt为XXX.tar
`tar -zxvf ./xxx.tar -C ——` 解包xxx.tar 到指定路径
2.使用zip和unzip 压缩后的文件后缀为 .zip
<div class="se-preview-section-delimiter"></div>
zip
unzip
zip ./test.zip ./index.jsp ./test : 将./index.jsp ./test打包到test.zip中
unzip ./test.zip : 解压到当前目录
unzip ./test.zip -d ./wyl/ : -d解压zip包到指定的目录
3.使用gzip和gunzip 压缩后的文件后缀为 .gz
不支持对目录进行压缩,如果要压缩,要先打包在压缩
gzip -d 解压缩
giunzip 是 gzip -d的硬链接
<div class="se-preview-section-delimiter"></div>
gzip
gunzip
gzip ./ : 压缩当前目录中的所有的文件,并且后缀都是.gz
gunzip ./* : 解压当前目录下所有被gzip压缩的文件
gzip -c ./index.jsp > ../index.jsp.gz : 压缩到指定的位置 保存源文件
gunzip -c ../index.jsp.gz > ./
gunzip -c ../index.jsp.gz > ./index.jsp
gunzip -c ./test.tar.gz > ./test.tar
13. 给shell命令起别名
`vi /etc/bashrc`
在文件最后一行添加
`alias cls=‘clear’`
保存退出后输入 `source /etc/bashrc` 生效
<div class="se-preview-section-delimiter"></div>
## 权限管理
-rw-r--r--. 1 root root 0 Sep 7 12:33 1.html
-rw-r--r--. 1 root root 0 Sep 7 12:33 2.html
-rw-r--r--. 1 root root 0 Sep 7 12:33 3.html
-rw-r--r--. 1 root root 0 Sep 5 10:28 zbq
u g o 用户 用户所属的组
u:创建文件的用户的权限
g:同组的用户的权限
o:其他的用户
第一位:
d:目录
-:文件
l:软连接
c:
权限表示(八进制数据表示):
r:4
w:2
x:1
写权限:
创建文件、创建目录、删除、cp、mv、tar等往某一个目录下新增需要写权限。
读:
查看文件内容、编辑文件、列出目录列表、cp等操作。
执行:
可执行的脚本或者命令
修改权限:
<div class="se-preview-section-delimiter"></div>
chmod 646 ./cc
chmod o+w ../test
chmod o-r ./dd : 去掉dd其它人读的权限
chmod a+x,g+w,o+r ./dd
chmod 640 ./dd
chmod a=rwx ./dd
chmod -R a+x ../test/ :递归修改
chmod -R a-x /home/test/ : 递归删除执行权限
错误:Permission denied (查看当前操作文件或者是父目录)
<div class="se-preview-section-delimiter"></div>
chown gj:gj ./* :将权限和组修改成gj
chown root ./* : 将权所属者修改成root
chown :root ./* : 将所属组修改成root
chgrp gj ./* : 将所属组修改成gj
chgrp -R root ../test : 递归将文件夹中所有文件的用户都修改成root
所有权限、所有者、所属组的修改必须是root或者所属者才能操作。
<div class="se-preview-section-delimiter"></div>
## 查找
`which` 查找二进制可执行的文件的命令
`whereis` 查找文件名或是目录中含有—字符串的文件或者目录
定位整个路径中含有某个字符串的文件或者目录(locate)
`locate aaa | grep “home/test/aaa”`
`locate mysql 发现找不到 ,需要更新数据库 updatedb`
`find / -name aaa` 在根目录下根据名称来查找aaa
`find /home/test -name aaa` 在制定路径下按照名称查找aaa
<div class="se-preview-section-delimiter"></div>
## 别名
`alias cle=‘clear’` 设置别名 ,临时的
`vi ~/.bashrc` 在此文件配置永久的别名 添加内容 `alias cle=‘clear’`
`unalias cle` 取消别名
<div class="se-preview-section-delimiter"></div>
## 服务器操作
`service iptables start` 开启防火墙
`service iptables stop` 关闭防火墙
`service iptables restart` 防火墙重启动
`sercice iptable status` 查看服务器状态
检查服务是否开机启动
`chkconfig iptables —-list` 列出每个级别的开闭状态
`chkconfig iptables —-on` 开机自启动
`chkconfig iptables —-off` 开机自启关闭
`chkconfig iptables —-level 35 on ` 开启3 5 级别的自启
<div class="se-preview-section-delimiter"></div>
## 配置网络参数
`vi /etc/sysconfig/network-scripts/ifcfg-eth0`
<div class="se-preview-section-delimiter"></div>
DEVICE=eth0
HWADDR=00:0C:29:0F:84:86 #此参数根据mac地址
TYPE=Ethernet
UUID=70d880d5-6852-4c85-a1c9-2491c4c1ac11
ONBOOT=yes
IPADDR=192.168.216.111 #设置自己可用的网段
PREFIX=24
GATEWAY=192.168.216.2
DNS1=8.8.8.8 #查看可连接外网的dns 并自己添加正确的参数
DNS2=114.114.114.114
NM_CONTROLLED=yes
BOOTPROTO=static
DEFROUTE=yes
NAME=”System eth0”
“`