Linux的基本命令
--help 对命令的简单帮助命令,命令格式为:命令 --help
man 对命令的复杂帮助,命令格式为 man 需要帮助的命令
ls 查看目录列表 -l 以长格式显示,命令格式为:ls -l 目录的路径
cp 复制命令,命令格式为: cp 目标文件路径 复制到的路径
mkdir 创建目录的命令,-p参数,递归创建目录 命令格式为:mkdir 目录名
touch 创建文件命令,命令格式:touch 文件名
cd 改变路径命令,命令格式:cd /
vi,vim 文件编辑器命令,用来编辑文件,命令格式:vi/vim 文件名
echo 打印输出文件内容,可以用>或者>> 来覆盖或者追加内容.
命令格式:echo "hi,world">test.txt ---对test.txt文件里面以hi,world覆盖内容
cat 查看文件内容的命令,也可以用cat来创建文件并增加内容,可以配合>>参数使用。
命令格式:cat /tmp/test.txt --查看test.txt文件里面有什么内容。
cat >>test.txt<
hi,world
eof
用cat 创建了test.txt文件,并写入了hi,world字符串到文件中
-n 参数,显示文本的行号
eg:cat -n /date/test.txt ---显示test.txt文本的行号
fdisk 查看硬盘分区的命令
fdisk -l ----查看硬盘分了几个区。
df 目录名 ---可以查看这个目录属于哪个分区
eg: df /home 能显示如下,代表home目录属于第一块硬盘的第三个分区
/dev/sda3 28910460 1541032 25900860 6% /
df ---查看硬盘的使用情况。
ln -s 源文件名 目标文件名 ------创建链接文件(类似与windows的快键方式)
eg: ln -s /home/test.txt /root/a.txt -----把test.txt创建了一个a.txt的链接文件
whereis ---查找命令路径的命令,也可以使用which命令查找,基本格式
eg:whereis ls -----查找出ls命令所在的路径,可以使用which ls 也能实现
whereis 有一些参数,如-b 参数,只显示ls命令的路径,不显示帮组文件的路径
-m 参数,显示ls命令的帮助文件信息。
locate ----查找文件的命令。此命令是查找数据库里面的内容,此数据库每天更新一次,
不是对整个硬盘的文件进行查找。
1:awk命令----用于过滤文本内容(擅长取列数据)
基本语法如下
awk -F "分割符" '{print $1}' 文件名
$1标示第一列,$2标示第二列........$NF(最后一列) $(NF-1)(倒数第二列)
eg: awk -F ":" '{print $1}' /tmp/test.txt 取出test.txt文件内容中的以:号分割的第一列
内容,并打印显示出来
eg:awk 'if (NR<31 && NR>19) {print $1 \n}' test.txt
NR--代表行数 \n---代表回车键,换行
2:grep命令---把想要的或者不想要的内容分隔开,(擅长过滤数据) -V参数,用来标示排除
基本语法如下
grep linux /tmp/test.txt 在test.txt文件内容中取出含linux字符的数据
3:sed命令(stream editor) 擅长取行,替换
基本语法如下
sed -n '/要取的内容/p' test.txt
-n --取消sed的默认输出,否则会重复 /p ---打印出取出的内容 /d ---删除要取的数据内容
不显示
eg:sed -n '/linux/p' test.txt 意思是从test.txt文本中取出含linux字符的数据并打印出来
sed '/linux/d' test.txt 取出test.txt文本中不含linux字符的内容
sed 还可以用来取行数据
语法如下
sed -n '1,2p' /date/test.txt ----标示用sed取test.txt文件下的1和2两行数据,并且
打印出来
sed '1,3d' /date/test.txt -----对test.txt文件里面的1-3行删除
sed '/admin/ixxxxxx' /date/test.txt ------在test.txt文件里面查找含有admin
的行,并向他的上一行插入xxxx字符。
sed '/admin/axxxxxx' /date/test.txt ------在test.txt文件里面查找含有admin的
行,并向他的下一行插入xxxx字符
在插入命令里面,i和a分别表示向上一行插入和向下一行插入
sed '/admin/cxxxxxxx' /date/test.txt -----在test.txt文件里面,查找含有admin
的文件,并把此行换成xxxxxx
sed -f yy xx ------我们可以把对文件的一些操作,写到yy这个文件里面,
之后用-f调用此文件,即可对xx执行文件里面所有
的命令
sed还有替换功能,基本语法如下
sed 's#qinqun#111#g' 文件名 -----把文件中的,qinqun这个字符替换成111字符
此替换只是显示替换,但是文本本身并未被修改,如果要文本本身修改,需要加-i参数
sed -i 's#qinqun#111#g' 文件名 ----把文件中的qinqun替换成111,并写入文件
eg:
sed -i 's#qinqun#111#g' test.txt
如下命令可以取出test.txt的内容,并在内容前加上 I am的字符
sed -r 's#(.*)#I am \1#g' test.txt
find命令,是Linux的查找命令
具体格式如下
4. find /路径 -type f -name "文件名"
! 取反命令
eg:find / -type f -name "test.txt" ---查找根目录下的名字叫test.txt的文件名
find / -type f -name "test.txt"|xargs ls -l
find / !-type f ----查找不是文件
find / -amin -10 ----查找根目录下10分钟内‘存取’过的文件或目录
find / -atime -10 ----查找根目录下10小时内‘存取’过的文件或目录
find / -cmin -10 ----查找根目录下10分钟内‘更改’过的文件或目录
find / -ctime +10 ----查找根目录下10小时前‘更改’过的文件或目录
locate 文件 -----也是查找文件的命令,可以使用locate test.txt ,但是
此查找是查找写入了数据库里面的数据,此数据库
数据一天更新一次,因此无法及时更新。
5.通常企业中,通过SSH来远程连接到Linux机器中,SSH连接分为客户端和服务端两个,
rpm -qa openssh openssl 通过此命令可以查看服务端是否有安装这两个服务
查看进程的命令
ps -ef|grep ssh 查看SSH的进程命令,通常在查询中,用grep命令来过来自己想要的进程
查看端口的命令
netstat -lntup 也可以用grep命令来过来自己想要的进程的端口
关闭防火墙的方法
etc/init.d/iptables stop
6.linux和windows互传文件的方法
可以有ftp/winscp/rz-sz 在secure-CRT软件里面,我们可以用rz-sz进行下载
首先,默认情况下,我们需要安装lrzsz这个软件,可以用Yum install lrzsz -y进行安装
rz 回车,选择需要上传的文件
sz 下载的文件名路径 回车
-y 覆盖
7.linux的关机命令 halt ===shutdown -h now
8.在linux中,我们可以用如下命令来查看相关linux的信息
cat /etc/redhat-release ---查看Linux系统
uname -r ---查看系统的内核
uname -m ---查看系统是32位还是64位
hostname ---查看主机的名字
9.linux是一个多进程,多用户,多任务的系统,可同时让多用户进行登陆操作
useradd 用户名 ---为Linux系统增加一个用户
passwd 用户名 ----为用户设置一个密码
userdel 用户名 ----删除一个用户,如果未加参数,只删除用户名,但是未删除用户文件夹
userdel -r 用户名 ---删除一个用户,并且删除用户的家目录
groupadd 组名 -----添加一个组
useradd -g 组名 用户名 ---增加一个用户,并把用户加入到组中
gpasswd -a 用户名 组名 ----把用户名加入到组当中
eg: gpasswd -a cary.qin sipit ----把cary.qin这个账号加入到sipit这个组当中
gpasswd -d 用户名 组名 ---把用户从组当中移除
whoami ----查看当前登陆的用户
在Linux中,我们可以用su命令进行账号的切换
su - 用户名 ----- -参数切换用户环境变量
从普通用户切换到root,需要使用root的密码,从root切换到普通用户,不需要使用密码
10.linux系统的优化
关闭selinux服务,selinux服务是美国安全局设定的强制访问控制的实现。
selinux的配置文件目录在/etc/selinux/config里面
可以用vim /etc/selinux/config命名修改,把SELINUX=disabled 即可。
getenforce 检查selinux的状态
setenforce 设置selinux的状态 1是启用,0是警告不启用
11.查看当前的运行级别命令
runlevel ---可以查看当前系统运行在什么级别模式
tail /etc/inittab -----可以查看Linux系统有多少种级别模式
一般可以看到七种模式
Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
init ----切换运行级别命令
例如:init 6 ---切换到reboot模式,系统就自行重启了
init 5 ==startx 切换到图行界面,图像界面需要驱动
如果有人设定inittable模式为6,系统将会无限重启,解决此问题
在系统启动进入grub引导界面时,需要选择“e”选项,之后选择
第二行选项,继续选择"e" 再最后输入:空格 1 回车,之后选择“b”
系统 会以单用户模式进入系统,这样就可以修改配置并进行修改密码等
操作了。
12.重要的开机启动服务,一般系统安装好后,只要保留如下几个服务即可
一般需要启动的服务
SSH服务 远程服务
rsyslog服务 系统日志服务
network服务 网络服务
crond服务 定时任务服务
sysstat服务 监控系统性能的一种工具
设置开机服务的几种方法命令
1.可以使用setup 找到system services选项,进去修改
2.用命令进行修改
chkconfig --list -查看系统的服务
chkconfig atd off ---关闭atd服务,默认关闭,2345级别的模式
chkconfig --level 3 atd off ---关闭3模式下的atd服务
13.关闭系统防火墙
/etc/init.d/iptables stop ---关闭系统防火墙
通常在开机自启动里面,需要关闭
chkconfig iptables off
14.linux系统的基本原则
1.安装最小化,能不安装的服务就不安装,开机服务启动最小化
2.操作命令最小化,能不用的参数能不用就不用
3.操作权限最小化,能不用root就不用root登陆,尽量用普通USER登陆操作
4.linux系统目录及文件权限最小化,能不给权限即不给权限
linux下的SSH安全配置
1.默认情况下,SSH使用的端口是22号端口,为了SSH安全,通常修改默认端口
控制SSH的文件路径为 /etc/ssh/sshd_config
通常,我们 vim 此配置文件,修改掉默认知道的基本属性,这样来保证系统登录
的安全
2.切换用户的两个命令
su - 用户名 -----切换到root命令,需要密码才能登陆
例如:su - root 这样就切换到了root用户权限下了。
sudo 命令 ----让普通USER能做root权限才能做的事情,需要先对sudoers文件做相关授权
修改/etc/sudoers文件,把cary.qin这个用户给予root一样的权限,如下
root ALL=(ALL) ALL
cary.qin ALL=(ALL) ALL
这样,我们就可以用sudo在普通用户下面做root权限做的事情了
例如:在普通用户下$: sudo touch /date/test.txt 文件,这样就可以成功创建一个文件
如果直接用touch命令,则创建被拒绝。
3.which ---查找命令所在的路径,搜索范围来着全局变量$PATH
命令格式为
which +命令
例如:which pwd ---则可以查pwd命令所在那个路径
环境变量:
PATH 系统路径变量,执行ls.cp等非内置命令时,(内置命令写在bash里面)系统会首先查找PATH里对应的路径
是否有,如果没有就报告找不到该命令。当执行which ls这些命令时,也是通过
从PATH变量来查找这些命令的。
临时修改PATH变量可以用:export PATH="/tmp:$PATH"命令,这样就把tmp路径加入到了
PATH变量中去了。
4.linux中文显示设置
(1)GBK:定长,双字节,不是国际标准
(2)UTF-8:对应三个字节,普遍使用UTF-8字符集
字符集在/etc/sysconfig/i18n 目录下面,通常我们编辑此文件就可以了
可以用sed -i 's#LANG="en_US.UTF-8#LANG="zh_CN.UTF-8#g' /etc/sysconfig/i18n 即可把此文件修改
如果需要生效,可以使用source /ect/sysconfig/i18n 即刻生效
5.设置linux服务器时间同步
用date来显示系统时间
可以用date -s "2015/11/06 14:48" -----设置系统时间为2015年11月6号
hwclock -----把时间写入系统
在网络中,可以用ntpdate 命令同步互联网时间
ntpdate +时间服务器 即可跟时间服务器的时间进行同步
ntpdate time.nis.com
6.linux超时时间设置
TMOUT 超时时间设置命令
export TMOUT=10 -----表示系统在10秒后退出,需要重新登录
7.linux历史记录数控制及记录文件控制
history -----查看系统使用过的命令记录,默认记录1000条
可以用export history=5 把记录改成5条记录
history -c ---清除所有历史记录
history -d 行数 ----清除某一行的历史记录
8.优化系统内核
文件在/etc/sysctl.conf 目录下面,需要用VIM对这个文件进行编辑
9.visudo 编辑sudo的配置文件,相当于vi /etc/sudoers文件
proc 文件目录,是存储进程信息及内核信息的文件目录
cat /proc/meminfo 查看内存信息
cat /proc/cpuinfo 查看cpu信息
cat /proc/mounts 挂载信息
10.whereis 查找命令,可以把命 令的路径查找出来,如:whereis pwd ---查找出Pwd命令所在的路径
11.less相当于cat命令
linux的目录结构
顶点/,其他所有目录结构都在根下面
FHS 目录程序标准
/dev ---设备目录
/etc ----系统配置及服务配置文件,启动命令的目录
/proc ----显示内核及进程信息的虚拟文件系统
/tmp ----临时文件目录
/home ----普通用户家目录
/root ----超级管理员的家目录
/var ----变化的目录,一般是日志文件,cache目录
/usr ----用户程序,及数据,帮助文件,二进制命令等的目录,类似与windows program目录
/bin ----用来存放基本命令的目录
/sbin ----用来存放管理员权限才能操作的命令
/mnt ----默认挂载光驱和软区的目录
/boot ----默认存放系统引导相关的文件目录
liunx系统的常见压缩命令:
gzip,zcat ---- 通常压缩使用gzip命令
格式:
gzip 文件名 ---这样压缩,原文件被删除了,只剩压缩文件
gzip -c 文件名 >文件名.gz ----加c参数后,可以保留原文件
gzip -d 文件名 -----用-d参数对文件进行解压。
zcat 文件名 -----可以查看gzip压缩的文件。
bzip2,bzcat
格式:
bzip2 文件名 ----压缩文件,原文件也会被删除。
bzip2 -d 文件名 -----解压文件
bzip2 -c 文件名 > 文件名.bz ------压缩文件,保留原文件
bzcat 文件名 ------用来查看bzip2压缩的文件内容。
zip
格式:
zip 压缩后的名字 原文件
eg:zip test.zip test.txt ------- 把test.txt文件压缩成test.zip文件
unzip 文件名 -----解压文件
打包命令:tar -----tar命令没有压缩功能,只能打包,数据大小不会
改变
格式:
tar cvf host.tar 文件名 ----cvf为参数.c标示创建,v显示过程
eg:tar cvf host.tar host.txt ----表示把host.txt文件打包成host.tar文件
默认情况下,tar打包会保留原文件
tar cvf host.tar host.txt --remove-files -----加上--remove-files参数,会
删除原文件
解打包文件
tar xvf host.tar -----对打包文件进行解压。
tar xvf host.tar -C 目录 -----把解档的文件到指定的目录
eg:tar xvf host.tar -C /mnt ----把host.tar文件解档到mnt目录下
由于tar无压缩功能,如果需要打包的时候,同时对数据压缩的话
可以使用参数z ---z参数是调用gzip来压缩
格式:
tar zcvf test.tar.gz test.txt ----------对test.txt文件压缩打包。
如果需要解档文件
tar zxvf test.tar.gz -------------对压缩打包文件解压压缩
如果调用bzip2,可以使用参数j
tar jcvf test.tar.bz test.txt -----bzip2来压缩打包
tar jxvf test.tar.bz -----------对用bzip2的打包压缩文件解压
完整的备份工具
dump
完整备份:每次对硬盘里面的所有数据都备份,会占用资源,很多数据重复备份
差异备份:每次备份全备份后开始增加的数据,如全备份在星期一备份,之后每次增量备份都
备份星期2-下次全备份开始前的数据,都备份,相对来说,还原只需要全备份
后之后最后一次备份的差异备份数据。
增量备份:每次只备份全备份后增加的数据,省空间,但是还原数据需要每次增加的数据,还 原数据比较复杂。
dump -0 ------0这个数字表示备份级别。0表示全备份,数字可以用0-9来表示
可以用这个数字来实现增量和差异备份。每次备份级别小的数据进行备份。
格式为:
dump -0u -f /test/1.dump /dev/sda3 ------把sda3的数据备份到test目录下面命名为 1.dump
恢复的命令
restore -t -f /备份的文件dump -----可以查看这个dump文件包含了哪些内容
restore -r -f /备份的文件目录 -------对备份文件目录的数据进行恢复
参数 -r 表示开始恢复,-f表示指明文件路径参数
restore -i -f /备份好的文件dump文件 -----可用i参数来手动选择进行恢复
eg:restore -i -f /share/1.dump ------手动进行恢复1.dump里面的文件
? 可以用问号查看里面可以用的命令
制作ISO文件的命令
mkisofs命令
格式:
mkisofs -o test.iso(需要制作的ISO文件名) 1.file 2.file 3.file ------把这三个文件 制作成test.iso文件
在linux中,我们可以直接使用iso文件,可以使用命令
monut -o loop iso文件名 /mnt -------把iso文件挂载到mnt下面
cp /dev/cdrom xxx.iso ------可以把光驱里面的文件直接转换成iso文件
linux的其他命令
dd 命令---硬盘对拷命令
dd if=/dev/sda of=/dev/sdb ------意思是把linux下的a硬盘的数据都copy到b硬盘上。
cpio -----备份命令,需要通过管道和查找命令进行备份
find -name *.txt | cpio -o >test.cpio ------把所有的txt文件打包为test.cpio文件
cpio 可以通过 i 参数进行解档文件,参数o 是打包的参数
cpio -iu