题:Linux常用命令掌握


Linux命令

 

man less:查看less的帮助手册 --help

sudo cat /etc/passwd:sudo用于获得ROOT权限而又不用知道ROOT密码

/etc/sudoers 配置sudo权限

 

cd:切换目录

cd ~:切换到/home/zyr/

cd:什么都不带,也是切换到自己的home目录。

cd -:切换到之前的目录

 

history:运行命令的历史

pwd:当前目录

 

ls:简要显示文件

ls -a:显示隐藏文件

ls -l:

ll:列表显示文件 ~/.bashrc中:alias ll='ls -l'

ll -a:列表显示文件,包含隐藏文件

 

zyr@ubuntu:~$ ll 1.txt

- rw- r-- r-- 1 zyr zyr 6 2015-05-25 21:56 1.txt

 

-:普通文件

d:目录

l:链接

b:块设备文件

c:字符设备

s:套接字文件

 

user:group:other的属性

r:-4w:-2x:执行-1

 

 

1:表示占用的i结点数

 

zyr:user

zyr:group

 

6:文件大小

 

创建或修改日期

 

名字

 

 

echo hello > 1.txt

echo world >>1.txt

 

mkdir test:创建test目录

rm -f 1.txt:删除一个文件,不用询问

rm -fr test:删除一个文件夹

cp a b:拷贝文件

mv a b:重命名文件ab

 

 

chown [-R] zyr:zyr 1.txt:1.txt文件改为用户zyr,组:zyr

 

chmod 777 1.txt:1.txt设置为rwx rwx rwx

chmod 666 1.txt:1.txt设置为rw- rw- rw-

 

chmod u=rwx,og=rx 1.txt:user设置为rwx,group,other设置为rx

chmod a+x 1.txt:将所有的加上执行

chmod u-x 1.txt:user取消执行权限

chmod u+s 1.txt:1.txt设置强制位 u-s取消 set-uid

 

 

chattr [+-=][ASaci [文件或者目录名]

+-= :分别为增加、减少、设定

A:增加该属性后,文件或目录的atime将不可被修改;

S:增加该属性后,会将数据同步写入磁盘中;

a:增加该属性后,只能追加不能删除,非root用户不能设定该属性;

c:自动压缩该文件,读取时会自动解压;

i:增加后,使文件不能被删除、重命名、设定连接、写入、新增数据;

 

chattr +i 1.txt:该文件不能被删除等

lsattr 1.txt

 

ln -s /src/path/to/file lnfile:/src/path/to/file 建立一个符号链接lnfile

 

find ~/ -name "*.txt" -print

find ~/ -name "*.txt" -print | xargs grep hello

find /usr/src/linux/include/ -name "*.h"  | xargs grep "daemonize"

 

which passwd:找到passwd的路径

 

cat:全部输出

more:按照比例逐一显示文本,会按照百分比告诉显示了多少内容了,ctrl b/ctrl f可以滚屏

less:不能显示剩余百分比,可用通过 page down page up 上翻下翻页查看已经显示出的内容,而more不具备。可以通过"/" "?"来查找内容

head:显示头部的内容前10

tail:显示尾部10

tail -f:可以跟踪不断的显示最新数据

 

管道:

man less | less

 

 

 

用户管理:

 

/etc/passwd文件结构:

用户名:密码(x替代了,单独放在了/etc/shadow里):uid(0root,1-499保留,500开始为普通):gid(/etc/group里对应):comment(name,phone,address):homepath:shell(/sbin/nologin为禁止该用户登录)

 

/etc/shadow文件结构:

用户名:密码:上次修改密码日期距离1970-1-1:过多少时间才能修改密码,默认0:密码到期时间,99999位不过期:密码到期前警告,如7天前:失效期限:生命周期

 

 

groupadd [-g gid] groupname

useradd [-u uid] [-g gid] [-d home] [-s /bin/bash] username

passwd username

passwd

 

userdel username

 

du -sh:列出文件夹大小总和

du -h:列出各项大小

 

df -h:列出各个磁盘使用情况

 

 

解压缩:

 

压缩打包:

tar zvcf xx.tar.gz xx

tar cvf xxx.tar xxx/ xz –z xxx.tarxxx.tar.xz

zip -r test.zip ./*

 

解压:

.tar.gz tar zvxf xxx.tar.gz

.tar.Z tar zvxf xxx.tar.Z

.tgz tar zvxf xxx.tar.tgz

.bz2 bunzip2  xxx.bz2

.tar.bz2: tar jvxf xxx.tar.bz2

.tar.xz: xz–d xxx.tar.xz tar xvf xxx.tar

.zip: unzip xxx.zip

.tar tar xf xxx.tar

 

软件安装:

1)ubuntu:

sudo apt-get install xxx

sudo apt-get remove xxx

sudo apt-get update xxx

 

 

换源:

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup (表示备份列表)

sudo vim /etc/apt/sources.list

 

deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse

deb-src http://us.archive.ubuntu.com/ubuntu/ lucid multiverse

 

http://us.archive.ubuntu.com/ubuntu/dists/lucid/multiverse/

 

每一行的开头是deb或者deb-src,分别表示直接通过.deb文件进行安装和通过源文件的方式进行安装。

 

deb或者deb-src字段之后,是一段URL,之后是五个用空格隔开的字符串,分别对应相应的目录结构。在浏览器中输入http://archive.ubuntu.com/ubuntu/,并进入dists目录,可以发现有5个目录和前述sources.list文件中的第三列字段相对应。任选其中一个目录进入,可以看到和sources.list后四列相对应的目录结构。

 

mirrors.aliyun.com

http://mirrors.aliyun.com/ubuntu/

 

sudo yum install package -->federo/redhat安装软件

 

 

2)package安装:

  1)下载一个deb格式的软件kismet

 

curl https://www.kismetwireless.net/code/dists/quantal/kismet/binary-i386/kismet-2011.03.2.i386.deb > kismet-2011.03.2.i386.deb

 

  2)安装kismet

 

dpkg -i kismet-2011.03.2.i386.deb

 

3)源代码安装:

 

./configure --prefix=安装路径

make

sudo make install

 

正则式:按行操作 grep, sed, awk

 

grep hello x.txt:x.txt中找hello的行

find ~/ -name "*.txt" -print | xargs grep hello

find /usr/src/linux/include/ -name "*.h"  | xargs grep "daemonize"

 

sed -n '3,10'p test.txt :打印test.txt中的310

sed -n '/root/'p /etc/passwd :打印包含root的行

awk -F':' 'NR>20' test.txt 打印test.txt中大于20的行,-F指定':'为每行中的字段的分隔符。不指定默认为空格或者TAB$0为整行,$1为第一个字段,$2为第二个字段

练习题:

1. awk 打印整个test.txt (以下操作都是用awk工具实现,针对test.txt);

1. awk '{print $0}' test.txt

2. 查找所有包含’bash’的行;

2. awk '/bash/' test.txt

3. 用’:’作为分隔符,查找第三段等于0的行;

3. awk -F':' '$3=="0"' test.txt

4. 用’:’作为分隔符,查找第一段为’root’的行,并把该段的’root’换成’toor(可以连同sed一起使用)

4. awk -F':' '$1=="root"' test.txt |sed 's/root/toor/'

5. 用’:’作为分隔符,打印最后一段;

5. awk -F':' '{print $NF}' test.txt

6. 打印行数大于20的所有行;

6. awk -F':' 'NR>20' test.txt

7. 用’:’作为分隔符,打印所有第三段小于第四段的行;

7. awk -F':' '$3<$4' test.txt

8. 用’:’作为分隔符,打印第一段以及最后一段,并且中间用’@’连接 (例如,第一行应该是这样的形式 root@/bin/bash”;

8. awk -F':' '{print $1"@"$NF}' test.txt

9. 用’:’作为分隔符,把整个文档的第四段相加,求和;

9. awk -F':' '{(sum+=$4)}; END {print sum}' test.txt

10.杀掉nginx进程:

10.sudo kill -KILL `ps aux | grep nginx| awk '{print $2}'`

 

sudo kill -9 `ps aux | grep firefox| awk '{print $2}'`

 

sudo kill -9 pid

进程网络:

cat /proc/meminfo |grep Mem:查看内存

cat /proc/cpuinfo

 

top

free

ps aux |less

a:所有用户进程

u:用户为主的格式显示

x:所有程序

 

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

 

VSZ:該进程使用的虚拟內存量(KB

RSS:該進程占用的固定內存量(KB)(驻留中页的数量)

STATSTAT显示了进程当前的状态"S":进程处在睡眠状态

 

sudo kill -9 pid

 

netstat -anp:a,所有选项,N表示数字显示,P表示进程

 

ifconfig

 

iptables

sudo  iptables -A OUTPUT -p tcp --dport 80 -j DROP

格式:iptables [-t table] COMMAND chain      CRETIRIA       -j ACTION

sudo  iptables            -A      OUTPUT  -p tcp --dport 80 -j DROP 禁止访问80端口

sudo iptables -L -n -v --line-numbers

sudo iptables -D OUTPUT 1

 

 

vim ~/.profile

EDITOR=vim;export EDITOR

source ~/.profile

 

crontab –e/l/r

-e:编辑

*  *  *  *  *  command

分 时 日 月 周 命令

 

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每晚的21:30重启apache

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每月11022日的4 : 45重启apache

 

-l:列出

-r:删除

 

scp

scp /home/daisy/full.tar.gz zyr@172.19.2.75:/home/zyr  a-->b

scp zyr@172.19.2.75:/home/zyr/full.tar.gz /home/daisy/full.tar.gz

ssh/xshell 客户端

wget http://www.mallocfree.com/data/pretalk.rar

 

 

nohup wget url & 该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。

nohup wget http://www.mallocfree.com/data/pretalk.rar &

关机并重启用:sudo shutdown -r now

关机 断电:sudo shutdown -h now

 

panic计算机     root下:echo "c" > /proc/sysrq-trigger

 

立即重启计算机      root下:echo "b" > /proc/sysrq-trigger

 

立即关闭计算机      root下:echo "o" > /proc/sysrq-trigger

 

 

终端:ALT+CTRL+F1 VMALT+CTRL+空格 ALT+CTRL+F1

UIALT+CTRL+F7 VMALT+CTRL+空格 ALT+CTRL+F7



看文字不过瘾?点击我,进入周哥教IT视频教学
麦洛科菲长期致力于IT安全技术的推广与普及,我们更专业!我们的学员已经广泛就职于BAT360等各大IT互联网公司。详情请参考我们的 业界反馈 《周哥教IT.C语言深学活用》视频

我们的微信公众号,敬请关注