linux commands

记一些常用命令和用法,入门级的。

使用管理员身份来执行命令:

sudo 要执行的命令

切换为root用户:

sudo su

返回普通权限:

exit

显示当前用户信息:

id

修改当前用户密码:

passwd

在后台执行程序,只需在命令后加&,例如在后台打开火狐:

firefox &

查看后台程序:

jobs

继续运行后台编号为数字的程序:

bg 数字

把后台编号为数字的程序提到前台:

fg 数字

Ctrl+Z暂停程序,Ctrl+C结束程序。

Tab键可补全或查询命令和文件(夹)名,如输入unam按Tab,会自动不全uname,而输入una按Tab则会列出una开头的所有命令。因为unam开头的只有uname,而una开头的有uname和unalias两个命令。

清屏:

clear

上下键可查询执行过的命令。显示所有执行过的命令,可使用:

history

查询之前使用过的命令,比较实用的是Ctrl+R,随便输入之前命令中的字符即可复用。想复用上一个命令的参数的话,输入命令后,按一下Esc,再按一下.就可以了。

编写脚本时常用到!来调用之前用过的命令。
重复前一个命令:

!!
重复前一个以字符开始的命令:
!字符
重复历史记录中序号为数字的命令:
!数字
重复之前命令中包含字符的命令:
!?字符
重复倒数第数字个的那个命令:
!-数字

复习一下简单的正则表达式。
任意长度字符串:

*
单个字符:
?
一定范围内数字,如0-9:
[0-9]
一定范围内字符,如acd:
[acd]
一定范围之外的字符,如除了acd:
[^acd]


查看当前所在目录print work directory:

pwd

创建文件更新文件的修改时间:

touch

创建目录:

mkdir

列出文件信息:

ls
常用参数:-a显示所有文件,-l显示详细信息,-R递归显示子目录,-ld显示目录和链接信息。

查看文件类型:

file

ssh远程登录:

ssh username@192.168.42.42

scp复制本地文件到远程:

scp local@192.168.42.55:/tmp/target /tmp

mv重命名:

mv myfile mynewfilename     #renames 'myfile' to 'mynewfilename'.
mv myfile ~/myfile          #moves 'myfile' from the current directory to user's home directory.
mv myfile subdir/myfile     #moves 'myfile' to 'subdir/myfile' relative to the current directory.
mv myfile subdir            #same as the previous command, filename is implied to be the same.
mv myfile subdir/myfile2    #moves 'myfile' to 'subdir' named  'myfile2'.
mv be.03 /mnt/bkup/bes      #copies 'be.03' to the mounted volume 'bkup' the 'bes' directory, 
                            #then 'be.03' is removed.
mv afile another /home/yourdir/yourfile mydir 
                            #moves multiple files to directory 'mydir'.
mv /var/log/*z ~/logs       #takes longer than expected if '/var' is on a different file system, 
                            #as it frequently is, since files will be copied & deleted.
mv -- "-old.txt" new.txt    #rename -old.txt

rm删除文件和目录:

rm -rf aFolder

用優盤製作Kali啓動盤:sudo dd bs=512k if=/data/kali-linux-light-2.0-i386.iso of=/dev/sdc && sync

  1. cat 查看文件内容
    more 分屏查看文件内容,查看时空格键下翻页,回车键下一行,q退出
    head -7 a.txt 显示文件的前7行内容
    tail -7 a.txt 显示文件的最后7行内容
    tail -7 -f a.txt 动态显示文件的最后7行内容(当文件发生变动自动更新显示,默认是10行)
    ln -s old new 创建软链接,不加-s可创建硬链接(两个文件同步内容,但删掉一个另一个还在)

  2. chmod 可以用来修改文件和文件夹的权限
    chmod -R 755 directory
    r 4 查看文件内容/列出目录内容
    w 2 修改文件内容/在目录中增加、删除文件
    x 1 执行文件/进入目录
    chown 可以用来修改文件和文件夹的所有者
    chown owner file
    chgrp 可以用来修改文件和文件夹的所有者
    chown group file
    umask 查看新文件默认权限,其值为777的掩码,如得到0002,后三位那777减,得到775,即默认权限。修改时也是用掩码,如
    umask 0022
    注意一点是新建的文件都是没有执行权限的,即使umask设置了。
    useradd username 添加用户

  3. 查找命令所在位置可以用which(同时显示别名)和whereis(同时显示帮助信息位置)
    查找文件用find,格式为find [搜索路径] [关键词]如
    find /etc -name abc* 查找etc目录下文件名开头为abc的文件,?可代替单个字符
    find /etc -size +100 查找etc目录中文件大小大于100×块block大小的文件。如块大小为4k,那么就是查找400K以上的文件
    find /home -user lisa 查找home中lisa为所有者的文件
    ctime, atime,mtime,cmin,amin,mmin 这六个find的选项是时间过滤,time单位是天,min单位是分钟。c是change,表示文件属性(权限,所有者等)被修改过,a是access,表示被读取过,m是modify,表示文件内容被修改过。
    find /home -mmin -120 查找home中1小时内内容被修改过的文件
    find /home -mmin -120 -a -type f 查找home中1小时内内容被修改过的文件(只找文件,不找d文件夹和l软链接)。-a是and,-o是or。
    find /etc -name init* -a -type f -exec ls -l {} ; 后面前面find找到的条目会储存在{}里,然或exec后的命令依此以{}里的条目为参数执行。格式即-exec 命令 {} ;。还有一个和-exec类似的选项是-ok,它会询问每一个条目是否执行。
    find . -inum 42 -exec rm {} ; 找到i节点为42的文件并将其删除

    locate filename 从文件数据库中查找文件速度快能耗小,但是新文件由于数据库未及时可能找不到,updatedb可更新文件数据库。

  4. grep 查找文件中匹配的行,如
    grep tftp /etc/services
    man 查看命令帮助,显示方式和more类似,info也可以查看帮助
    man cp 查看cp命令的帮助
    man 5 passwd 查看passwd命令的配置文件帮助
    获取索引的简短帮助信息可以用whatis和apropos(和man -k类似),makewhatis可以更新帮助信息数据库
    help 获取shall内置命令的帮助信息

  5. file filename file命令可以判断文件类型。
    gzip filename 用gzip压缩文件。gzip只能压缩文件不能压缩文件夹。gzip压缩或解压后会删除原文件。解压gz文件可以用gunzip fileneme.gz 或 gzip -d fileneme.gz。
    tar -zcvf dirname.tar.gz dirname 用tar来打包并压缩文件夹。
    tar -zcvf video.tar.gz –exclude=video/42.mp4 –exclude=video/Death_Silence.mp4 video 打包并压缩video文件夹,且排除两个指定的mp4文件。
    tar -zxvf dirname.tar.gz 用tar来解压并解包压缩文件夹。默认解压到压缩路径,网上下载的包解压到当前目录。z压缩或解压,c打包,x解包,v显示进度,f指定压缩包名。
    tar zxvf dirname.tar.gz -C /home/destination 解压到指定文件夹
    zip filename.zip filename 用zip既可压缩文件也可压缩文件夹(压缩文件夹加-r选项),并且不会删除原文件。
    unzip filename.zip 用unzip解压zip压缩包。加-d /home/destination解压到指定文件夹。
    bzip2 -k filename 用bzip2压缩文件,只能压缩文件但压缩比很高,加上-k选项可保留原文件。
    bunzip2 -k filename.bz2 用bunzip2解压文件并保留压缩包。

  6. ifconfig 查看网络配置信息,IP、MAC等。
    ifconfig eth0 192.168.1.7 临时修改IP地址,重启失效。

  7. 一些bash技巧
    Ctrl+l 清屏。
    Ctrl+u 删除所在行光标前面的字符。
    history 列出之前使用过的命令。!num !加history列表中的序号可执行那条命令。上下方向看最近命令更方便。
    Tab键可补全命令或文件名。

  8. alias 显示已定义的命令别名
    alias copy=cp 定义一个copy的别名。
    alias drm="rm -rf" 定一个直接删除目录的别名,带选项时要加引号。
    unalias copy 删除copy这个别名。
    >和>> 输出重定向,< 输入重定向。 ls -l /tmp > tmp 将/tmp文件夹下的文件列表输出至tmp文件中,若tmp不存在则创建,若有内容则覆盖。
    date >> tmp 将date信息追加到tmp文件尾部。
    wall < tmp 广播tmp中的内容。 cp -R /usr /backup/usr.bak 2> /bak.err 对/usr目录备份,如发生错误则将错误信息输出至bak.err。
    ls -l /etc | grep init | wc -l 首先查看/etc下文件的详情,然后将结果传给grep过滤出包含init的行,最后用wc -l数一下有多少行。
    command1 ; command2 ; command3 三条命令依此执行。
    command1 && command2 1执行成功2才会执行,否则2不执行。
    command1 || command2 1执行成功2不会执行,否则2执行。
    ls -l `which touch` 列出touch的详细信息,其中命令替换符`位于1左边,并不是单引号。

  9. 删除旧内核基本上一个200M的样子
    dpkg –get-selections|grep linux 查看安装的内核
    uname -a 查看当前内核
    sudo apt-get remove linux-image-3.5.0-48-generic 删除不要的内核
    sudo apt-get remove linux-headers-3.5.0-48 删除不要内核的头
    sudo update-grub (选做)更新下grub

  10. 查看端口是否被佔用
    netstat -apn | grep 端口號
    查看pid為2813的程序信息
    ps -aux | grep 2813
    查看iptables狀態
    service iptables status
    編輯iptables配置文件
    nano /etc/sysconfig/iptables
    打開8081端口
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 8081 -j ACCEPT
    重啟iptables
    service iptables restart
    查看本地48000-49000间的开放端口
    nmap -p 48000-49000 127.0.0.1

  11. screen可以在後台執行任務,即使終端被關閉。
    新建screen
    screen -S task1
    現在可以執行需要後台跑的長時任務
    Ctrl+a然後按d即可保留screen並退回當前窗口
    在當前窗口screen -ls可列出screen
    screen -r task1 (or 9642)可恢復screen
    在screen頁面exit可退出screen

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *