Linux知识小记

一般来说著名的linux系统基本上分两大类:

  1. RedHat系列:Redhat、Centos、Fedora等
  2. Debian系列:Debian、Ubuntu等 

RedHat 系列 

  1. 常见的安装包格式 rpm 包,安装 rpm 包的命令是rpm -参数
  2. 包管理工具 yum 
    rpm软件包是为了简化安装的复杂度,而yum仓库是为了解决软件包之间的依赖关系。

Debian系列 

  1. 常见的安装包格式 deb 包,安装 de b包的命令是dpkg -参数
  2. 包管理工具 apt-get 

系统装完之后,可以一一键安装开发编译的工具包:
Debian 上可以使用 apt-get install build-essential
CentOS 上使用 yum groupinstall "Development Tools"


查看文本的方式

cat: 用于将一个文件的内容连续输出在屏幕上
其命令格式: cat [-option] 文件名
常用参数:
-n: 将行号一起显示在屏幕上
-b:将行号一起显示在屏幕上,但空行不算

more:同样用于显示文件内容,会在显示完一屏内容后停下,可以下翻。
其命令格式为: more 文件名
回车键可以单行下翻, Ctrl+f可以整页下翻,若需退出按q键。

less: 和 more 一样,唯一区别就是可以使用 pagedown 和 pageup 进行上翻和下翻,方便一些。 其命令格式为: less 文件名

head: 默认情况下,用于显示文件内容的前10行 其命令格式为: head 文件名
常用参数: -n :指定显示的行数

tail: 与 head 相反,默认情况下显示文件内容的后10行 其命令格式为: tail 文件名
常用参数: -n :指定显示的行数

跳到指定行

200gg 跳到第二百行行首,200G是行尾

显示行号

  • crtl+g可以显示当前光标从所在位置(第几行第几列以及所在位置的百分比)
  • :set nu可以设置全部显示行号 ,:nu 跟crtl+g 一样的效果。

添加到组(附加组)

usermod -g groupname username
usermod -G groupname username
eg: usermod -g root dozedoze加入到root 大写G 是将用户添加到附加组,小写g 是更改用户组

查看用户所属组

groups username 或者 id username 或者 more | /etc/group

删除用户

userdel wang注:删除用户wang,但不删除其家目录(在/var中)及文件; userdel -r wang注:删除用户wang,其家目录及文件一并删除;

查看所有用户

cat /etc/passwd
cat /etc/passwd|grep 用户名 结果显示:strawberry: x:502:0::/home/strawberry:/bin/bash
结果描述:用户名:密码:ID:组ID:备注:根目录:shell所在目录

修改密码

普通用户:passwd,需要旧密码 root用户:passwd username

查看在线用户

who

踢用户下线

root用户才可以使用:  pkill -kill -t pts/0

修改文件或者目录权限

d rwx rwx r-x 目录 主用户 组 其他

1
2
3
4
5
- 常规文件
d 目录
b 块设备特殊(磁盘) 
c 字符特殊设备(终端) 
s 信号灯 
  1. 使用文字 chmod [who] [+ | - | =] [mode] 文件名 操作对象who可是下述字母中的任一个或者它们的组合:
1
2
3
4
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。

1.1. 操作符号可以是:

1
2
3
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)

1.2. 设置mode所表示的权限可用下述字母的任意组合:

1
2
3
4
5
6
7
8
9
r 可读
w 可写
x 可执行
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性
s 在文件执行时把进程的属主或组ID置为该文件的文件属主
t 保存程序的文本到交换设备上
u 与文件属主拥有一样的权限
g 与和文件属主同组的用户拥有一样的权限
o 与其他用户拥有一样的权限。

例:chmod g+r,o+r example 使同组和其他用户对文件example 有读权限。 2. 使用数字 chmod [mode] 文件名 0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限 例: chmod 644 mm.txt


使用ssh密钥登录

安全设置:在配置文件中,禁止root登录,禁止密码登录,

1
2
PasswordAuthentication  no //禁止密码
PermitRootLogin no  //禁止root
  1. 生成密钥:doze用户(su doze)下,进入根目录(/home/doze/ssh-keygen -t rsa 中间有提示可以输入密钥的密码
  2. 将密钥添加到授权文件中(在.ssh目录下操作) cat id_dsa.pub > authorized_keys 此时.ssh下的文件有id_dsaid_dsa.pubauthorized_keys
  3. 设置权限 chmod 600 authorized_keys  chmod 700 .ssh 4.允许用户可以使用ssh密钥登录 sudo vim /etc/ssh/sshd_config 将用户添加到AllowUsers 后边 然后重启sudo service sshd restart。如果少了这一步,报错:该密钥未在远程主机注册
  4. id_dsa传到本地windows上,使用putty生成ppk文件(可以省略,如果使用Xshell登录的话) 然后就可以正常使用密钥登录了。

防火墙的一些含义

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
:INPUT ACCEPT [0:0]
# 该规则表示INPUT表默认策略是ACCEPT
:FORWARD ACCEPT [0:0]
# 该规则表示FORWARD表默认策略是ACCEPT
:OUTPUT ACCEPT [0:0]
# 该规则表示OUTPUT表默认策略是ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 意思是允许进入的数据包只能是刚刚我发出去的数据包的回应,ESTABLISHED:已建立的链接状态。RELATED:该数据包与本机发出的数据包有关。
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
# 这两条的意思是在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包。并且发送一条host prohibited的消息给被拒绝的主机。

查看磁盘容量,查看文件大小

df命令是 Linux 系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl 显示格式为: 

文件系统 容量 已用 可用 已用% 挂载点 

查看文件大小:使用du -a -h -a参数显示子目录和文件大小 -h 带单位显示

find命令参数

http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html

查看文件修改时间

查看文件时间戳命令:stat awk.txt

1
2
3
4
5
6
7
File: `awk.txt'
Size: 20  Blocks: 8  IO Block: 4096  regular file
Device: 801h/2049d  Inode: 380730  Links: 1
Access: (0644/-rw-r--r--) Uid: (  0/  root)  Gid: (  0/  root)
Access: 2008-04-26 01:50:44.000000000 +0800
Modify: 2008-04-26 01:48:18.000000000 +0800
Change: 2008-04-26 01:48:18.000000000 +0800

说明:Access访问时间。Modify修改时间。Change状态改变时间。可以stat *查看这个目录所有文件的状态

压缩以及解压

tar 使用

-c: 压缩 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出

-f 的参数是必须的,且必须是最后一个,后面跟目标文件名

gzip 使用

-c:将输出写到标准输出上,并保留原有文件。 -d :将压缩文件解压。 -l :对每个压缩文件,显示下列字段: 压缩文件的大小 未压缩文件的大小 压缩比 未压缩文件的名字 -r :递归式地查找指定目录并压缩其中的所有文件或者是解压缩。 -t :测试,检查压缩文件是否完整。 -v: 对每一个压缩和解压的文件,显示文件名和压缩比。 -num: 用指定的数字num调整压缩的速度, -1或–fast:表示最快压缩方法(低压缩比), -9或–bes:t表示最慢压缩方法(高压缩比)。系统缺省值为6。

写几个例子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
tar压缩:
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg   //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
tar解压:
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar –xZvf file.tar.Z   //解压tar.Z
gzip压缩就比较简单:
gzip‍ -c src > dst.gz //src压缩之后还保留源文件
gzip解压:
gzip -d  aaa.gz
gunzip aaa.gz

查看linux 启动的服务

chkconfig --list

查看linux版本(适用于redhat和centos系列)

cat /etc/redhat-release 返回类似CentOS release 6.8 (Final)

后台运行神器screen命令的使用

直接使用screen相当于打开一个新的窗口,在窗口里可以执行任意的命令。 也可以在screen 命令后跟上需要执行的命令,但是这样如果命令包含了 > 这种写入上操作,是不会生效的。

  • 退出|screen : ctrl + 小写a + 小写d,Screen会给出detached提示
  • 查看 screen 有哪些任务 screen -ls,可以看出任务的pid
  • 连接 screen 的具体某一个任务: screen -r pid,这儿的pid指的是process id
  • 结束某一个任务:kill -9 pid,pid同上,这样会把该任务设为 dead 状态
  • 清空所有不工作的任务: screen -wipe,会清除掉所有的 dead 状态的任务

文件上传下载

rz 弹出个框框,进行上传 sz filename下载