Linux 基本操作
文章作为个人记录,未作修改,有些杂乱。
2.1.1 Shell 程序
man(info,--help),ls,cp,mv,cd,pwd,mkdir,rm,rmdir,cat,find,touch,tree,chmod,chown, nm, ln,echo, date,alias,gzip,tar,ldd其他
2.1.2 控制台
adduser ,passwd,useradd,userdel
2.1.3 终端
su,sudo
2.2文件和目录
2.2.1挂载卸载文件系统
fdisk,mkfs,mount,umount
2.2.2 路径名
2.2.3 工作目录
cd..
2.2.4 起始目录
ls~
2.3 标准输入、标准输出和标准错误
fdisk,mkfs,mount,umount
2.1.1 Shell 程序
shell是一种具备特殊功能的程序,也是介于用户和Linux内核间的一个接口。Linux系统拥有多种shell,发行版中常用的是名为bash的shell。这种shell不但能执行简单的命令,还能将多个命令、条件和参数编写为程序执行。
常用shell命令及解释
帮助:
(1)man 查看说明
eg:man 1 cd
man 7 man
1 使用者在shell中可以操作的指令或可执行档
2 系統核心可呼叫的函数与工具等 system call
3 一些常用的函数(function)与函数库(library),大部分是C的函数库(libc) library call
4 装置档案的说明,通常在/dev下的档案
5 设定档或者是某些档案的格式
6 游戏(games)
7 惯例与协定等,例如Linux档案系统、网络协定、ASCII code等等的說明
8 系統管理員可用的管理指令
9 跟kernel有关的文件
(2).info
(3).date –help
(4) ls 命令
ls 命令当前工作目录下的文件和目录。
语法: ls [命令开关]… [文件]
显示root目录下的内容:
ls /列出root目录下的内容。
ls -l
获取
- rw- - - - - - - 1 root root 762 07-2918:19 exit
文件属性字段总共有10个字母组成;第一个字符表示文件类型。
第一个字段:- 表示普通文件;d表示dirtectory(目录));c字符设备文件(character);
b设备文件(block) 还有p,l,s等等
- rwx丨rwx丨rwx
分三部分(9个-)分别归:U文件拥有者权限;G组权限;0其他人权限
r表是读 (Read) 、w表示写 (Write) 、x表示执行,通过(eXecute)
前root 为拥有者;后root为组
文件如果没有x 普通用户不能进入
(5) cp(copy)
功能说明:复制文件或目录。EG :cp text/a/b/c/first text/a/b/d/
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
eg:cp -r text/a/b/c/ text/a/b/d
cp a.c b.c
(6) mv移动命令
mv 命令是move的缩写。 用它从一个目录到一个目录移动/重命名文件。 mv命令不同于cp命令,mv命令是完全的从源移动文件并且把文件移动到指定的目录,这里cp命令只是复制文件的内容从一个文件到另一个文件。
语法: mv [-f][-i] 原名称 新名称
命令开关:
-f 在覆盖前不提示(equivalent to相当于 –reply=yes). mv -f 将在没有提示的情况下移动文件(多个文件),即使它将复写存在的目标文件。
-i 在复写另一文件前做出提示
示例:
To Rename / Move a file:
mv file1.txt file2.txt
这个命令重命名file1.txt文件的名字为file2.txt。
To move a directory
移动一个目录
mv hscripts tmp
在上述命令中,如果tmp目录已经存在,mv命令将移动hscripts文件夹/目录下的所有文件,目录和子目录到tmp目录。 如果没有tmp目录,它将重命名hscripts目录为tmp目录。
移动多个文件/更多问价到另一目录
mv file1.txt tmp/file2.txt newdir
这个命令移动当前目录的file1.txt文件和tmp文件夹/目录的file2.txt文件到newdir目录。
(7) cd
cd 命令用来更改目录。
使用方式 : cd[dirName]
说明 : 变换工作目录至 dirName。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home directory (也就是刚 login 时所在的目录)。
另外,"~"也表示为 homedirectory 的意思,"."则是表示目前所在的目录,".."则表示目前目录位置的上一层目录
(8) pwd 命令
pwd –显示工作目录. pwd命令显示当前工作目录的绝对路径名称。
语法: pwd [命令开关]
(9) mkdir命令
mkdir 用于创建一个或多个目录
语法: mkdir [命令开关] 目录
命令开关:
-m 文目录设置操作权限
-p 如果上级目录不存在,同时创建它们。
-v 输出创建的每个目录的信息
示例:
mkdir test
上述命令将创建目录 ‘test’.
创建目录并设置访问权限:
mkdir -m 666 test
上述命令将创建目录 ‘test’并设置读取和写入权限。
(10)rm删除命令
rm linux 命令用来移除/删除目录下的文件。
语法: rm [命令开关..] [文件 | 目录]
命令开关:
-f 不提示用户,删除目录下的所有文件。
-i 交互模式。使用这个选项,rm命令在删除任何文件前提示用户确认。
-r (或) -R 递归的删除参数表中的目录及其子目录。 目录将被清空并且删除。 当删除目录包含的具有写保护的文件时用户通常是被提示的。
示例:
移除/删除文件:
rm file1.txt
这里rm命令将移除/删除文件file1.txt。
删除目录树:
rm -ir tmp
这里rm命令递归的删除tmp目录下所有子目录下内容,对于每个文件的删除都会提示你,然后删除tmp目录本身。
一次删除多个文件。
rm file1.txt file2.txt
rm命令同时删除文件file1.txt 和file2.txt。
详细出处参考:http://www.jb51.net/LINUXjishu/34936.html
(11) rmdir
rmdir 命令用来删除/移除目录及其子目录。
语法:
rmdir [命令开关..] 目录名
rmdir tmp
如果tmp目录是空目录,rmdir 命令将移除/删除tmp目录。
删除目录树:
rm -ir tmp
(12)cat
主要有三大功能:
1.一次显示整个文件。$ cat filename eg: cat Filename
2.从键盘创建一个文件。$ cat > filename
只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file
cat /etc/passwd
cat /ect/shadow
cat /ect/group
(13)find
find [起始目录] 寻找条件 操作
还有种表述方式:findPATH OPTION [-exec COMMAND { } \;]
因为find命令会根据我们给的option,也就是寻找条件从我们给出的目录开始对其中文件及其下子目录中的文件进行递归搜索。
(14)touch
touch fileA
如果fileA存在,使用touch指令可更改这个文件或目录的日期时间,包括存取时间和更改时间;
如果fileA不存在,touch指令会在当前目录下新建一个空白文件fileA
一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件
(15) tree
功能说明:以树状图列出目录的内容。
tree –功能参数
(16)chmod
文件/目录权限设置命令:
语法格式为:chmod[who] [opt] [mode] 文件/目录名
u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限
而mode则代表权限:
r:可读
w:可写
x:可执行
chmod u+x “文件名”(表示在U 加入可执行x)
chmod a+x
或者 还可以通过 进制改 比如 rw - rwx r-- 为674
对文件夹操作
删除 x(a-x)文件夹不能访问
删除 r(a-r)文件夹内部文件不能读出
删除 w(a-w)文件夹内部不能创建文件
(17)chown
1.命令格式:
hown [选项]... [所有者][:[组]] 文件...
2.命令功能:
通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设
置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
chown
实例1:改变拥有者和群组
chown root:root "Filename"
实例2:改变群组
chgrp root "Filename"
或者chown :mail"Filename"
umask 指定在建立文件时预设的权限掩码
-rwx rwx rwx 把w去掉 即 0775
touch mask
修改:umask 0033
(18)nm
nm
编译时候链接:静态链接 静态库
执行时候链接:动态链接 动态库 比静态延时 延时绑定。
gcc -c my_strcpy.c或者两(多)个gcc -c my_strcpy.c fun.c 生成以.o 结尾的文件
nm my_strcpy.o或者两(多)个 nm my_strcpy.o fun.o
nm a.out
T 有实现(T表示Text)
U 没有实现(U表示Undefined)
ldd a.out 判断某条命令需要哪些共享库文件的支持
在 ldd 命令打印的结果中,“=>”左边的表示该程序需要连接的共享库之 so 名称,右边表示由 Linux 的共享库系统找到的对应的共享库在文件系统中的具体位置。默认情况下,/etc/ld.so.conf 文件中包含有默认的共享库搜索路径。
gcc -v test.o my_strcpy.o
(19)ln
ln 链接 ln - makelinks between files
ln -s hello hello.c
ln hello.c target
(20)echo
echo $PATH
echo $USER 显示当前用户
echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
该命令的一般格式为:echo [ -n ] 字符串
其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。
echo是用于在控制台显示信息的命令
$在这里是取得某个变量的值
PATH就是变量名
合起来就是在控制台显示PATH环境变量的值
(21)date
(22) alias
功能说明:设置指令的别名。
语 法:alias[别名]=[指令名称]
alias jl="cat /etc/passwd"
unalia jl
(23)其他
more/less
ctrl alt shift F1~F6 图形界面到文本界面
alt F7 文本到图形
exit
who
fhs 规范
根目录下各个文件说明
bash shell
type ls/cd/more 内部外部命令
file 查看文件属性
(24)
gzip 压缩
gzip -d 解压
bzip2 压缩
tar -cvf etc.tar /etc/* (c--create 建立新的备份文件;--verbose 显示指令执行过程;file=<备份文件>)
tar -tvf etc.tar (显示打包文件t - list)
tar -xvf etc.tar(解压 x-extract)
tar -xvf etc.tar -C /home/Neojan (解压到某文件夹下-C<目的目录> 切换到指定的目录)
tar -xzvf etc.tar.gz -C /home/Neojan(同时解包解压缩)
tar -czvf etc.tar.gz /etc/*(同时打包压缩 z-gzip ,j-zip2压缩)
怎么打包,怎么查看包的内容,怎么把包解压到其他文件夹,怎么删除
2.1.2 控制台
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统,该账号的名称就是登录名。Linux系统通常有多个控制台,进入控制台后可使用shell程序操作计算机。
进入 X Windows 按下 Ctrl+Alt+F2 进入控制台Ctrl+Alt+F1 回去。
adduser [用户名] //创建新用户
passwd [用户名] //为该用户修改密码
终端情况下:
useradd [Name]创建用户
userdel -r [Name]删除用户
2.1.3 终端
终端是X window里访问shell程序的接口。
su - Neojan 切换用户
su 获得根用户权限
Ubuntu 下sudo su 或sudo -s切换到超级用户sudo su NAME 切换到其他用户
sudo
功能说明:以其他身份来执行指令。
语 法:sudo[-bhHpV][-s <shell>][-u <用户>][指令] 或 sudo [-klv]
补充说明:sudo可让用户以其他的身份来执行指定的指令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
2.2文件和目录
2.2.1挂载卸载文件系统
文件系统是在物理存储设备中存放数据的索引格式,文件和目录是数据的逻辑划分形式。在Linux系统中,文件的准确定义是不包含任何其他结构的数据流。Linux系统的文件类型概况起来可分为五种,分别是:普通文件、目录文件、链接文件、设备文件和管道文件。
文件系统是磁盘及其逻辑分区的目录结构,一个磁盘设备可包含一个或多个文件系统,但每个文件系统必须占据硬盘中单独的一个分区,如图2.3所示。
磁道(以光盘为例)
磁柱
扇区(每个扇区512bit字节,64bit为分区信息,16bit为一个,一个硬盘最多分4个主分区,3个主分区+一个逻辑分区……计算机管理-磁盘管理查看)
分区
fdisk -l
dev device
s usb..
a 盘
start 起始柱面
end 结束柱面
fdisk /dev/sda 分区
mkfs -t ext3 /dev/sda5 格式化
mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。
-t<文件系统类型> 指定要建立何种文件系统。
cd /mnt
ls
cd
mount -t ext3 /dev/sda5 /mnt
格式mount –t [文件系统类型] [分区的路径] [挂载点路径]
>mount /what /where
其中what是设备的名称例如u盘,光盘等,where是挂载点,通常是/mnt.
cd /mnt
ls
lost+found
umount /mnt(卸载)
2.2.2 路径名
Linux文件系统采用带链接的树形目录结构,即只有一个根目录
绝对路径:从根目录到目标目录或文件所经过的所有节点名称
相对路径:某一目录到目标目录或文件所经过的所有节点名称
2.2.3 工作目录
控制台或终端在某个时刻总是对应着一个目录,该目录即工作目录。在控制台或终端执行命令或程序,对某个没有指定路径的文件或子目录进行操作,控制台或终端会自动在文件或子目录前加入当前工作目录的路径。例如,执行“ls”命令会将工作目录下的文件和子目录名称显示出来,除非在“ls”命令后输入某一具体的路径名称。工作目录可用“.”表示,工作目录上层父目录用“..”表示。“cd”命令用于改变工作目录。
2.2.4 起始目录
ls ~ //显示起始目录下所有的文件名与子目录名
2.3 标准输入、标准输出和标准错误
按惯例,每当运行一个新程序时,所有的shell都为其打开三个文件描述符:标准输入、标准输出以及标准错误。