Linux常用命令

查看帮助一是man 命令,二是进入www.gnu.org,找到coreutils的帮助文档(更详细)。

一、Linux命令解释程序

    bash是Bourne Again shell的缩写,是一种shell。

    命令执行的过程是先到/etc/environment指定的文件夹中找到命令,例如ls,经过bash解释后传送给操作系统(内核)执行。./ls是只在当前目录下寻找。

    bash,coreutils在www.gnu.org下载。下载后是个解压包,解压后能看到bash和命令的源代码,配置,安装后可使用最新的可执行文件。


二、Linux命令

    -rw-rw-rwx 1 root root 0 Apr 24 07:25 hello -初始linux已经讲过;用户,所属组,其他组对文件的权限;硬链接数,用户名,所属组名;文件大小;最后修改日期;文件名。

    man ls(PageOn下一页,PageOff上一页,上下方向键换行,q退出,Home头,END尾,/word搜索功能)  ls [OPTION]... [FILE]... []表示可选择,...表示可以放很多类似的项,比如放多个File。

    man -a mkdir 得到所有的帮助,帮助分为9类,分别为命令 系统调用,库函数,特殊文件,配置文件,游戏,惯例与协议,系统管理命令(通常需要root权限),内核。

    man 2 mkdir 直接得到系统调用的帮助信息,如果man mkdir,那么则要看see also这个选项。

    man man 得到man的帮助信息 man bash 得到shell脚本的编写帮助。

    su jltxgcy 切换为jltxgcy的用户

    ls *.c ls ?.c  ls ?????.c 列出带有这种通配符的项。

    ls > hello.c(覆盖) 利用输入输出重定向,把ls得到的内容放到hello.c(覆盖)这个文件中。

    ls >> hello.c(追加) 利用输入输出重定向,把ls得到的内容放到hello.c(追加)这个文件中。

    ls -a 包含隐藏文件 ls -l 详细信息 ls -al==ll 前两者的结合。

    ls -h 能够看到以兆为单位的文件 ls -i能够看到索引结点号 ls -R可以看到该目录下所有的信息

    前面5个如果加上具体文件名,就是看具体文件的信息

    ls -d download/ ls -d */ 注意一定要加上目录信息,才能看到目录信息。

    ln hello.c hello1.c 硬链接,hello.c hello1.c的硬链接数都变成了2,他们的索引结点号一样,文件大小一样,内容一样。

    在home/jltxgcy/download/eclipse/eclipse.exe ls -d home/jltxgcy/download/ 硬链接为3,/home/jltxgcy/download home/jltxgcy/download/. home/jltxgcy/download/eclipse/..

    ln -s hello.c hello1.c 软链接,hello1.c比hello.c的文件大小小,相当于一个快捷方式。软链接的两个文件可以不在一个分区。

    cd .. 回到上次目录 cd / 回到根目录 cd ~或者cd 回到主用户名录 cd .当前目录,cd - 回到上次命令所在的目录

    whereis ls 寻找ls命令的位置和帮助文档 whoami 查看当前用户。

    which ls 只寻找ls命令的位置   locate iostream 找到了这个C++头文件

    alias lm='ls -al' unalias lm

    wc hello.c 输入三个分别表示行、字数、字符数

    pwd 列出当前所在的目录 。

    cat hello.c cat -b hello.c 在屏幕上打印出文本中的内容,输出不包含空行,但有行号

    cat -n hello.c 输出有行号,包括空行。

    touch hello.c 建立一个文件或者用vi hello.c

    file /bin/ls 查看文件的类型。

    type echo 能够判断echo是shell内部命令 type ls 能够判断ls是外部命令

    type cd cd也是shell内部命令,不需要安装只要bash安装就能使用,而外部命令必须要用coreutils来安装。

    man cd 也就没有相应的帮助文档,文档在man bash中,type umask也是内部命令

    echo "linux is not unix。"

    mkdir download/ 建立目录 rmdir download/ 删除空目录。

    cp hello.c hello1.c  现在有两个文件,一个是hello.c,另一个是hello1.c。

    cp hello.c ~ 把hello.c移动到主目录。

    cp -r download/ ~  把download文件夹移动到主目录。

    mv hello.c hello1.c  现在只有一个文件hello1.c,内容和hellol.c一样。

    rm hello.c rm -f hello.c 表示删除只读文件。

    rm -rf download/ 删除一个文件夹,递归删除。

    chown root:root hello.c 把hello.c的用户名和所属组变成root。

    chmod 777 hello.c 把hello.c的权限变成了rwx。

    chmod u+r g-w o=rx a+r hello.c u是owner g是group o是other a是all。

    grep -Rni hello *

    find ./ -name "hello.c" 在当前目录下找hello.c这个文件 。

    locate libhello.so 使用前先sudo updatedb(系统管理命令)。  

    tar -xzvf hello.c.tar.gz 解压缩  如果是hello.c.tar.bz2,则用tar -xjvf hello.c.tar.bz2。

    unzip FileName.zip 解压缩zip包

    ps -aux | grep "test" 列出所有进程并寻找其中有test的进程。|为管道。

    ps -ef | less PageOn下一页,PageOff上一页,上下方向键换行,q退出,Home头,END尾

    more 只能向前看,且只能按Enter键

    history  查看最近所有的命令,!n执行第n条命令,!!执行上条命令。

    top  动态监测进程的变化。

    free  内存使用情况。

    clear  清屏 date cal 显示时间日期。

    uname -a 输出系统的全部信息,可以用于看你的操作系统是多少位,也能看操作系统的版本号

    以下多半是系统管理命令,所以要加上sudo

    sudo fdisk -l 查看硬盘分区情况,sda1 sda2 sda5,sd表示scsi型的硬盘,a表示第一块,1表示主分区,2表示扩展分区,5表示扩展分区中的逻辑分区,主分区加上扩展分区最多到4,所以逻辑分区从5开始,另外扩展分区不能使用,必须分为若干逻辑分区。

    df -Th 显示当前的分区,文件系统,挂载点。

    du -sh 显示当前目录文件的大小。

    nautilus ./ 在图形用户界面打开当前目录

    readelf -a libc.so.6  | grep -Rni fopen  读x86平台的动态链接库

    arm-linux-androideabi-nm -D libffmpeg-7neno.so | grep -Rni init //读arm平台的动态链接库

    meld a.c b.c 比较两个文件的不同,如果在svn目录下,可以观看修改 meld a.java

    file 可以查看文件类型,比如file xxx.o file xxx.so file /bin/bash,得到的结果分别为可重定位文件,共享目标文件,可执行文件。

   

三、新建硬盘,建立新的分区,建立文件系统(windows格式化),挂载到目录上

    1、在虚拟机上新建SCSI硬盘,sudo fdisk -l 显示/dev/sdb还没有分区

    2、sudo fdisk /dev/sdb 按照提示,n新建一个主分区,w写入分区表,sudo fdisk -l 显示了/dev/sdb1的分区

    3、sudo mkfs -t ext3 /dev/sdb1 建立文件系统,sudo fdisk -l没有变化,df -Th没有显示

    4、sudo mount -t ext3 /dev/sdb1 /mnt/sdb 挂载到目录(如没有要新建目录)上,df -Th已经可以看到了

    5、cd /mnt/sdb 就是这块硬盘的内容了

    6、sudo umount /mnt/sdb 卸载 df -Th就没有了


四、对于linux的权限的深入理解

    

    

    

    cat /etc/passwd 能够执行,第一,jltxgcy作为其他组对cat也有执行权限,第二,jltxgcy作为其他组有读/etc/passwd的权限。

    cat /etc/shadow 不能执行因为jltxgcy对/etc/shadow没有读权限。

    sudo cat /etc/shadow 这样jltxgcy变成了root,此时才有对/etc/shadow的读权限。


五、linux安装软件包的三种方法

    首先介绍下软件包的优先级:

    Required,该级别的软件是保证系统正常运行所必须的,如果缺失,系统将损坏

    Important,如果缺少该软件包,系统将运行困难

    Standard,linux系统的标准件

    Optional,该软件包是否安装不影响Linux运行

    Extra,该级别可能与高级软件包存在冲突

    软件包依赖情况:

    Depends,依赖哪些软件包 Recommends,一般用户都会装这些软件包,Suggests,锦上添花,Replaces,覆盖某些软件包,Conflict与某些软件包冲突,

    Provides,这些软件已经包括了要装软件包的全部功能

    1、下载deb包,deb包的格式为软件包名称_版本号-修订版本_体系架构.deb,例如aptitude_0.6.3-3.2ubuntu1_i386.deb

       安装aptitude软件包 dpkg -i aptitude_0.6.3-3.2ubuntu1_i386.deb,移除aptitude软件包 dpkg -P aptitude

       查看aptitude软件包的信息包括aptitude软件包的优先级和依赖包等dpkg --info aptitude_0.6.3-3.2ubuntu1_i386.deb

       查看aptitude_0.6.3-3.2ubuntu1_i386.deb的内容dpkg --content aptitude_0.6.3-3.2ubuntu1_i386.deb

       缺点:不能主动从镜像站点获取软件包,安装软件包时不能自动安装相关依赖包

    2、上官网下载源代码,配置./configure,编译make,安装软件包make install,卸载软件包make uninstall

    3、apt-get update 从网上的源更新信息下来,更新到本地索引 apt-get check检查当前apt管理里面的依赖包情况

       apt-get -f install修复依赖关系 apt-get install <package>安装软件包 apt-get install -d <package>只下载deb包

       apt-get remove --purge <package>卸载软件包

       apt-cache show <package>显示软件包信息(优先级和依赖包等)

       apt-cache policy <package> 显示软件包安装状态

       apt-cache depends <package> 显示软件包依赖关系

       apt-cache search <package> 搜索某个名称的软件包 apt-cache search ncurses*

       apt source镜像站点地址存在哪儿/etc/apt/source.list

       apt本地索引存在哪儿/var/lib/apt/list/*

       apt下载的deb包存在哪儿/var/cache/apt/achives

       如果再镜像站点添加了网址,那么要用apt-get update更新本地索引

       此种方法主动从镜像站点获取软件包,安装软件包时自动安装相关依赖包

    4、安装rpm包


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值